aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial/ioc4_serial.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/serial/ioc4_serial.c')
-rw-r--r--drivers/serial/ioc4_serial.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/drivers/serial/ioc4_serial.c b/drivers/serial/ioc4_serial.c
index 2e02c3026d24..8ad28fc64926 100644
--- a/drivers/serial/ioc4_serial.c
+++ b/drivers/serial/ioc4_serial.c
@@ -22,6 +22,7 @@
22#include <linux/pci.h> 22#include <linux/pci.h>
23#include <linux/ioc4.h> 23#include <linux/ioc4.h>
24#include <linux/serial_core.h> 24#include <linux/serial_core.h>
25#include <linux/slab.h>
25 26
26/* 27/*
27 * interesting things about the ioc4 28 * interesting things about the ioc4
@@ -2904,7 +2905,7 @@ static struct ioc4_submodule ioc4_serial_submodule = {
2904/** 2905/**
2905 * ioc4_serial_init - module init 2906 * ioc4_serial_init - module init
2906 */ 2907 */
2907int ioc4_serial_init(void) 2908static int __init ioc4_serial_init(void)
2908{ 2909{
2909 int ret; 2910 int ret;
2910 2911
@@ -2913,20 +2914,30 @@ int ioc4_serial_init(void)
2913 printk(KERN_WARNING 2914 printk(KERN_WARNING
2914 "%s: Couldn't register rs232 IOC4 serial driver\n", 2915 "%s: Couldn't register rs232 IOC4 serial driver\n",
2915 __func__); 2916 __func__);
2916 return ret; 2917 goto out;
2917 } 2918 }
2918 if ((ret = uart_register_driver(&ioc4_uart_rs422)) < 0) { 2919 if ((ret = uart_register_driver(&ioc4_uart_rs422)) < 0) {
2919 printk(KERN_WARNING 2920 printk(KERN_WARNING
2920 "%s: Couldn't register rs422 IOC4 serial driver\n", 2921 "%s: Couldn't register rs422 IOC4 serial driver\n",
2921 __func__); 2922 __func__);
2922 return ret; 2923 goto out_uart_rs232;
2923 } 2924 }
2924 2925
2925 /* register with IOC4 main module */ 2926 /* register with IOC4 main module */
2926 return ioc4_register_submodule(&ioc4_serial_submodule); 2927 ret = ioc4_register_submodule(&ioc4_serial_submodule);
2928 if (ret)
2929 goto out_uart_rs422;
2930 return 0;
2931
2932out_uart_rs422:
2933 uart_unregister_driver(&ioc4_uart_rs422);
2934out_uart_rs232:
2935 uart_unregister_driver(&ioc4_uart_rs232);
2936out:
2937 return ret;
2927} 2938}
2928 2939
2929static void __devexit ioc4_serial_exit(void) 2940static void __exit ioc4_serial_exit(void)
2930{ 2941{
2931 ioc4_unregister_submodule(&ioc4_serial_submodule); 2942 ioc4_unregister_submodule(&ioc4_serial_submodule);
2932 uart_unregister_driver(&ioc4_uart_rs232); 2943 uart_unregister_driver(&ioc4_uart_rs232);