diff options
| -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 330c6717c149..20cb98ac2d79 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, |
