Skip to content

Commit

Permalink
ioc3/ioc4: fix error path on driver registration
Browse files Browse the repository at this point in the history
Two IOC3 and IOC4 drivers have broken error paths on registration.  Fix
them.

Signed-off-by: Jean Delvare <[email protected]>
Cc: Pat Gefre <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Jean Delvare authored and torvalds committed Dec 15, 2009
1 parent 2ea5d35 commit 9385565
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 4 deletions.
16 changes: 13 additions & 3 deletions drivers/serial/ioc4_serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -2913,17 +2913,27 @@ static int __init ioc4_serial_init(void)
printk(KERN_WARNING
"%s: Couldn't register rs232 IOC4 serial driver\n",
__func__);
return ret;
goto out;
}
if ((ret = uart_register_driver(&ioc4_uart_rs422)) < 0) {
printk(KERN_WARNING
"%s: Couldn't register rs422 IOC4 serial driver\n",
__func__);
return ret;
goto out_uart_rs232;
}

/* register with IOC4 main module */
return ioc4_register_submodule(&ioc4_serial_submodule);
ret = ioc4_register_submodule(&ioc4_serial_submodule);
if (ret)
goto out_uart_rs422;
return 0;

out_uart_rs422:
uart_unregister_driver(&ioc4_uart_rs422);
out_uart_rs232:
uart_unregister_driver(&ioc4_uart_rs232);
out:
return ret;
}

static void __exit ioc4_serial_exit(void)
Expand Down
2 changes: 1 addition & 1 deletion drivers/sn/ioc3.c
Original file line number Diff line number Diff line change
Expand Up @@ -820,7 +820,7 @@ static int __init ioc3_init(void)
{
if (ia64_platform_is("sn2"))
return pci_register_driver(&ioc3_driver);
return 0;
return -ENODEV;
}

/* Module unload */
Expand Down

0 comments on commit 9385565

Please sign in to comment.