From: Dmitry Torokhov Date: Mon, 30 Jan 2006 02:51:21 +0000 (-0500) Subject: Input: grip - handle errors from input_register_device() X-Git-Tag: v2.6.16-rc2~171^2~11 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0399addd71565b27eae27821fa04dad44f8644fe;p=linux-2.6 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: Dmitry Torokhov --- diff --git a/drivers/input/joystick/grip.c b/drivers/input/joystick/grip.c index 330c6717c1..20cb98ac2d 100644 --- a/drivers/input/joystick/grip.c +++ b/drivers/input/joystick/grip.c @@ -384,12 +384,15 @@ static int grip_connect(struct gameport *gameport, struct gameport_driver *drv) if (t > 0) 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; - fail3: for (i = 0; i < 2; i++) + fail4: input_free_device(grip->dev[i]); + fail3: while (--i >= 0) if (grip->dev[i]) input_unregister_device(grip->dev[i]); fail2: gameport_close(gameport); @@ -414,6 +417,7 @@ static void grip_disconnect(struct gameport *gameport) static struct gameport_driver grip_drv = { .driver = { .name = "grip", + .owner = THIS_MODULE, }, .description = DRIVER_DESC, .connect = grip_connect,