diff options
Diffstat (limited to 'drivers/input/joystick/sidewinder.c')
| -rw-r--r-- | drivers/input/joystick/sidewinder.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/input/joystick/sidewinder.c b/drivers/input/joystick/sidewinder.c index 78dd163cd702..2b2ec1057dee 100644 --- a/drivers/input/joystick/sidewinder.c +++ b/drivers/input/joystick/sidewinder.c | |||
| @@ -736,7 +736,7 @@ static int sw_connect(struct gameport *gameport, struct gameport_driver *drv) | |||
| 736 | sprintf(sw->name, "Microsoft SideWinder %s", sw_name[sw->type]); | 736 | sprintf(sw->name, "Microsoft SideWinder %s", sw_name[sw->type]); |
| 737 | sprintf(sw->phys[i], "%s/input%d", gameport->phys, i); | 737 | sprintf(sw->phys[i], "%s/input%d", gameport->phys, i); |
| 738 | 738 | ||
| 739 | input_dev = input_allocate_device(); | 739 | sw->dev[i] = input_dev = input_allocate_device(); |
| 740 | if (!input_dev) { | 740 | if (!input_dev) { |
| 741 | err = -ENOMEM; | 741 | err = -ENOMEM; |
| 742 | goto fail3; | 742 | goto fail3; |
| @@ -771,12 +771,15 @@ static int sw_connect(struct gameport *gameport, struct gameport_driver *drv) | |||
| 771 | 771 | ||
| 772 | dbg("%s%s [%d-bit id %d data %d]\n", sw->name, comment, m, l, k); | 772 | dbg("%s%s [%d-bit id %d data %d]\n", sw->name, comment, m, l, k); |
| 773 | 773 | ||
| 774 | input_register_device(sw->dev[i]); | 774 | err = input_register_device(sw->dev[i]); |
| 775 | if (err) | ||
| 776 | goto fail4; | ||
| 775 | } | 777 | } |
| 776 | 778 | ||
| 777 | return 0; | 779 | return 0; |
| 778 | 780 | ||
| 779 | fail3: while (--i >= 0) | 781 | fail4: input_free_device(sw->dev[i]); |
| 782 | fail3: while (--i >= 0) | ||
| 780 | input_unregister_device(sw->dev[i]); | 783 | input_unregister_device(sw->dev[i]); |
| 781 | fail2: gameport_close(gameport); | 784 | fail2: gameport_close(gameport); |
| 782 | fail1: gameport_set_drvdata(gameport, NULL); | 785 | fail1: gameport_set_drvdata(gameport, NULL); |
| @@ -801,6 +804,7 @@ static void sw_disconnect(struct gameport *gameport) | |||
| 801 | static struct gameport_driver sw_drv = { | 804 | static struct gameport_driver sw_drv = { |
| 802 | .driver = { | 805 | .driver = { |
| 803 | .name = "sidewinder", | 806 | .name = "sidewinder", |
| 807 | .owner = THIS_MODULE, | ||
| 804 | }, | 808 | }, |
| 805 | .description = DRIVER_DESC, | 809 | .description = DRIVER_DESC, |
| 806 | .connect = sw_connect, | 810 | .connect = sw_connect, |
