diff options
author | Dmitry Torokhov <dtor_core@ameritech.net> | 2006-01-29 21:51:21 -0500 |
---|---|---|
committer | Dmitry Torokhov <dtor_core@ameritech.net> | 2006-01-29 21:51:21 -0500 |
commit | 0399addd71565b27eae27821fa04dad44f8644fe (patch) | |
tree | 893ed1f7ff62692175bbd922e9bcf6eb56e92876 | |
parent | 3575c3410071dc778d2d9c6002493a5dce73ec0b (diff) |
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 <dtor@mail.ru>
-rw-r--r-- | drivers/input/joystick/grip.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/input/joystick/grip.c b/drivers/input/joystick/grip.c index 330c6717c14..20cb98ac2d7 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) | |||
384 | if (t > 0) | 384 | if (t > 0) |
385 | set_bit(t, input_dev->keybit); | 385 | set_bit(t, input_dev->keybit); |
386 | 386 | ||
387 | input_register_device(grip->dev[i]); | 387 | err = input_register_device(grip->dev[i]); |
388 | if (err) | ||
389 | goto fail4; | ||
388 | } | 390 | } |
389 | 391 | ||
390 | return 0; | 392 | return 0; |
391 | 393 | ||
392 | fail3: for (i = 0; i < 2; i++) | 394 | fail4: input_free_device(grip->dev[i]); |
395 | fail3: while (--i >= 0) | ||
393 | if (grip->dev[i]) | 396 | if (grip->dev[i]) |
394 | input_unregister_device(grip->dev[i]); | 397 | input_unregister_device(grip->dev[i]); |
395 | fail2: gameport_close(gameport); | 398 | fail2: gameport_close(gameport); |
@@ -414,6 +417,7 @@ static void grip_disconnect(struct gameport *gameport) | |||
414 | static struct gameport_driver grip_drv = { | 417 | static struct gameport_driver grip_drv = { |
415 | .driver = { | 418 | .driver = { |
416 | .name = "grip", | 419 | .name = "grip", |
420 | .owner = THIS_MODULE, | ||
417 | }, | 421 | }, |
418 | .description = DRIVER_DESC, | 422 | .description = DRIVER_DESC, |
419 | .connect = grip_connect, | 423 | .connect = grip_connect, |