Fix error handling

legacy
Markus Koch 2019-05-01 14:34:12 +02:00
parent dcc9841d93
commit a701882fd5
1 changed files with 4 additions and 2 deletions

View File

@ -197,7 +197,8 @@ static int fsia6b_serio_connect(struct serio *serio, struct serio_driver *drv)
(switch_config[i] > '3')) {
dev_err(&fsia6b->dev->dev,
"Invalid switch configuration supplied for fsia6b.\n");
return -EINVAL;
err = -EINVAL;
goto fail3;
}
for (j = '1'; j <= switch_config[i]; ++j) {
@ -209,10 +210,11 @@ static int fsia6b_serio_connect(struct serio *serio, struct serio_driver *drv)
err = input_register_device(fsia6b->dev);
if (err)
goto fail2;
goto fail3;
return 0;
fail3: input_free_device(input_dev);
fail2: serio_close(serio);
fail1: serio_set_drvdata(serio, NULL);
kfree(fsia6b);