diff options
Diffstat (limited to 'drivers/serial/8250.c')
-rw-r--r-- | drivers/serial/8250.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index d9ce8c549416..bc36edff2058 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -2595,15 +2595,11 @@ static int __init serial8250_init(void) | |||
2595 | if (ret) | 2595 | if (ret) |
2596 | goto out; | 2596 | goto out; |
2597 | 2597 | ||
2598 | ret = platform_driver_register(&serial8250_isa_driver); | ||
2599 | if (ret) | ||
2600 | goto unreg_uart_drv; | ||
2601 | |||
2602 | serial8250_isa_devs = platform_device_alloc("serial8250", | 2598 | serial8250_isa_devs = platform_device_alloc("serial8250", |
2603 | PLAT8250_DEV_LEGACY); | 2599 | PLAT8250_DEV_LEGACY); |
2604 | if (!serial8250_isa_devs) { | 2600 | if (!serial8250_isa_devs) { |
2605 | ret = -ENOMEM; | 2601 | ret = -ENOMEM; |
2606 | goto unreg_plat_drv; | 2602 | goto unreg_uart_drv; |
2607 | } | 2603 | } |
2608 | 2604 | ||
2609 | ret = platform_device_add(serial8250_isa_devs); | 2605 | ret = platform_device_add(serial8250_isa_devs); |
@@ -2612,12 +2608,13 @@ static int __init serial8250_init(void) | |||
2612 | 2608 | ||
2613 | serial8250_register_ports(&serial8250_reg, &serial8250_isa_devs->dev); | 2609 | serial8250_register_ports(&serial8250_reg, &serial8250_isa_devs->dev); |
2614 | 2610 | ||
2615 | goto out; | 2611 | ret = platform_driver_register(&serial8250_isa_driver); |
2612 | if (ret == 0) | ||
2613 | goto out; | ||
2616 | 2614 | ||
2615 | platform_device_del(serial8250_isa_devs); | ||
2617 | put_dev: | 2616 | put_dev: |
2618 | platform_device_put(serial8250_isa_devs); | 2617 | platform_device_put(serial8250_isa_devs); |
2619 | unreg_plat_drv: | ||
2620 | platform_driver_unregister(&serial8250_isa_driver); | ||
2621 | unreg_uart_drv: | 2618 | unreg_uart_drv: |
2622 | uart_unregister_driver(&serial8250_reg); | 2619 | uart_unregister_driver(&serial8250_reg); |
2623 | out: | 2620 | out: |