Commit 0399addd authored by Dmitry Torokhov's avatar Dmitry Torokhov

Input: grip - handle errors from input_register_device()

Also set .owner in driver structure so we'll have a link between
module and driver in sysfs.
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent 3575c341
...@@ -384,12 +384,15 @@ static int grip_connect(struct gameport *gameport, struct gameport_driver *drv) ...@@ -384,12 +384,15 @@ static int grip_connect(struct gameport *gameport, struct gameport_driver *drv)
if (t > 0) if (t > 0)
set_bit(t, input_dev->keybit); set_bit(t, input_dev->keybit);
input_register_device(grip->dev[i]); err = input_register_device(grip->dev[i]);
if (err)
goto fail4;
} }
return 0; return 0;
fail3: for (i = 0; i < 2; i++) fail4: input_free_device(grip->dev[i]);
fail3: while (--i >= 0)
if (grip->dev[i]) if (grip->dev[i])
input_unregister_device(grip->dev[i]); input_unregister_device(grip->dev[i]);
fail2: gameport_close(gameport); fail2: gameport_close(gameport);
...@@ -414,6 +417,7 @@ static void grip_disconnect(struct gameport *gameport) ...@@ -414,6 +417,7 @@ static void grip_disconnect(struct gameport *gameport)
static struct gameport_driver grip_drv = { static struct gameport_driver grip_drv = {
.driver = { .driver = {
.name = "grip", .name = "grip",
.owner = THIS_MODULE,
}, },
.description = DRIVER_DESC, .description = DRIVER_DESC,
.connect = grip_connect, .connect = grip_connect,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment