diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c index c81c79d..a31b866 100644 --- a/drivers/input/evdev.c +++ b/drivers/input/evdev.c @@ -1425,6 +1425,7 @@ static int evdev_connect(struct input_handler *handler, struct input_dev *dev, if (error) goto err_cleanup_evdev; + evdev_open_device(evdev); return 0; err_cleanup_evdev: @@ -1445,6 +1446,7 @@ static void evdev_disconnect(struct input_handle *handle) evdev_cleanup(evdev); input_free_minor(MINOR(evdev->dev.devt)); input_unregister_handle(handle); + mutex_destroy(&evdev->mutex); put_device(&evdev->dev); } @@ -1456,8 +1458,7 @@ static const struct input_device_id evdev_ids[] = { MODULE_DEVICE_TABLE(input, evdev_ids); static struct input_handler evdev_handler = { - .event = evdev_event, - .events = evdev_events, + .event = genode_evdev_event, .connect = evdev_connect, .disconnect = evdev_disconnect, .legacy_minors = true,