Loading drivers/input/joystick/adi.c +9 −1 Original line number Diff line number Diff line Loading @@ -521,11 +521,19 @@ static int adi_connect(struct gameport *gameport, struct gameport_driver *drv) for (i = 0; i < 2; i++) if (port->adi[i].length > 0) { adi_init_center(port->adi + i); input_register_device(port->adi[i].dev); err = input_register_device(port->adi[i].dev); if (err) goto fail3; } return 0; fail3: while (--i >= 0) { if (port->adi[i].length > 0) { input_unregister_device(port->adi[i].dev); port->adi[i].dev = NULL; } } fail2: for (i = 0; i < 2; i++) if (port->adi[i].dev) input_free_device(port->adi[i].dev); Loading drivers/input/joystick/amijoy.c +5 −1 Original line number Diff line number Diff line Loading @@ -147,7 +147,11 @@ static int __init amijoy_init(void) amijoy_dev[i]->absmax[ABS_X + j] = 1; } input_register_device(amijoy_dev[i]); err = input_register_device(amijoy_dev[i]); if (err) { input_free_device(amijoy_dev[i]); goto fail; } } return 0; Loading drivers/input/joystick/analog.c +8 −2 Original line number Diff line number Diff line Loading @@ -434,6 +434,7 @@ static int analog_init_device(struct analog_port *port, struct analog *analog, i { struct input_dev *input_dev; int i, j, t, v, w, x, y, z; int error; analog_name(analog); snprintf(analog->phys, sizeof(analog->phys), Loading Loading @@ -505,7 +506,11 @@ static int analog_init_device(struct analog_port *port, struct analog *analog, i analog_decode(analog, port->axes, port->initial, port->buttons); input_register_device(analog->dev); error = input_register_device(analog->dev); if (error) { input_free_device(analog->dev); return error; } return 0; } Loading Loading @@ -668,6 +673,7 @@ static int analog_connect(struct gameport *gameport, struct gameport_driver *drv return 0; fail3: while (--i >= 0) if (port->analog[i].mask) input_unregister_device(port->analog[i].dev); fail2: gameport_close(gameport); fail1: gameport_set_drvdata(gameport, NULL); Loading drivers/input/joystick/cobra.c +5 −2 Original line number Diff line number Diff line Loading @@ -223,12 +223,15 @@ static int cobra_connect(struct gameport *gameport, struct gameport_driver *drv) for (j = 0; cobra_btn[j]; j++) set_bit(cobra_btn[j], input_dev->keybit); input_register_device(cobra->dev[i]); err = input_register_device(cobra->dev[i]); if (err) goto fail4; } return 0; fail3: for (i = 0; i < 2; i++) fail4: input_free_device(cobra->dev[i]); fail3: while (--i >= 0) if (cobra->dev[i]) input_unregister_device(cobra->dev[i]); fail2: gameport_close(gameport); Loading drivers/input/joystick/gf2k.c +3 −1 Original line number Diff line number Diff line Loading @@ -341,7 +341,9 @@ static int gf2k_connect(struct gameport *gameport, struct gameport_driver *drv) input_dev->absflat[gf2k_abs[i]] = (i < 2) ? 24 : 0; } input_register_device(gf2k->dev); err = input_register_device(gf2k->dev); if (err) goto fail2; return 0; Loading Loading
drivers/input/joystick/adi.c +9 −1 Original line number Diff line number Diff line Loading @@ -521,11 +521,19 @@ static int adi_connect(struct gameport *gameport, struct gameport_driver *drv) for (i = 0; i < 2; i++) if (port->adi[i].length > 0) { adi_init_center(port->adi + i); input_register_device(port->adi[i].dev); err = input_register_device(port->adi[i].dev); if (err) goto fail3; } return 0; fail3: while (--i >= 0) { if (port->adi[i].length > 0) { input_unregister_device(port->adi[i].dev); port->adi[i].dev = NULL; } } fail2: for (i = 0; i < 2; i++) if (port->adi[i].dev) input_free_device(port->adi[i].dev); Loading
drivers/input/joystick/amijoy.c +5 −1 Original line number Diff line number Diff line Loading @@ -147,7 +147,11 @@ static int __init amijoy_init(void) amijoy_dev[i]->absmax[ABS_X + j] = 1; } input_register_device(amijoy_dev[i]); err = input_register_device(amijoy_dev[i]); if (err) { input_free_device(amijoy_dev[i]); goto fail; } } return 0; Loading
drivers/input/joystick/analog.c +8 −2 Original line number Diff line number Diff line Loading @@ -434,6 +434,7 @@ static int analog_init_device(struct analog_port *port, struct analog *analog, i { struct input_dev *input_dev; int i, j, t, v, w, x, y, z; int error; analog_name(analog); snprintf(analog->phys, sizeof(analog->phys), Loading Loading @@ -505,7 +506,11 @@ static int analog_init_device(struct analog_port *port, struct analog *analog, i analog_decode(analog, port->axes, port->initial, port->buttons); input_register_device(analog->dev); error = input_register_device(analog->dev); if (error) { input_free_device(analog->dev); return error; } return 0; } Loading Loading @@ -668,6 +673,7 @@ static int analog_connect(struct gameport *gameport, struct gameport_driver *drv return 0; fail3: while (--i >= 0) if (port->analog[i].mask) input_unregister_device(port->analog[i].dev); fail2: gameport_close(gameport); fail1: gameport_set_drvdata(gameport, NULL); Loading
drivers/input/joystick/cobra.c +5 −2 Original line number Diff line number Diff line Loading @@ -223,12 +223,15 @@ static int cobra_connect(struct gameport *gameport, struct gameport_driver *drv) for (j = 0; cobra_btn[j]; j++) set_bit(cobra_btn[j], input_dev->keybit); input_register_device(cobra->dev[i]); err = input_register_device(cobra->dev[i]); if (err) goto fail4; } return 0; fail3: for (i = 0; i < 2; i++) fail4: input_free_device(cobra->dev[i]); fail3: while (--i >= 0) if (cobra->dev[i]) input_unregister_device(cobra->dev[i]); fail2: gameport_close(gameport); Loading
drivers/input/joystick/gf2k.c +3 −1 Original line number Diff line number Diff line Loading @@ -341,7 +341,9 @@ static int gf2k_connect(struct gameport *gameport, struct gameport_driver *drv) input_dev->absflat[gf2k_abs[i]] = (i < 2) ? 24 : 0; } input_register_device(gf2k->dev); err = input_register_device(gf2k->dev); if (err) goto fail2; return 0; Loading