提交 bc965a7f 编写于 作者: R Russell King 提交者: Russell King

[SERIAL] Fix serial8250 driver initialisation ordering

Commit 7493a314 changed the ordering
of the registration of the platform device driver vs the 8250 drivers
internal initialisation.  This led to the probe function being called
before the driver had finished its internal initialisation, causing
mayhem.  Revert the ordering change.
Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
上级 7eb9b2f5
......@@ -2595,15 +2595,11 @@ static int __init serial8250_init(void)
if (ret)
goto out;
ret = platform_driver_register(&serial8250_isa_driver);
if (ret)
goto unreg_uart_drv;
serial8250_isa_devs = platform_device_alloc("serial8250",
PLAT8250_DEV_LEGACY);
if (!serial8250_isa_devs) {
ret = -ENOMEM;
goto unreg_plat_drv;
goto unreg_uart_drv;
}
ret = platform_device_add(serial8250_isa_devs);
......@@ -2612,12 +2608,13 @@ static int __init serial8250_init(void)
serial8250_register_ports(&serial8250_reg, &serial8250_isa_devs->dev);
goto out;
ret = platform_driver_register(&serial8250_isa_driver);
if (ret == 0)
goto out;
platform_device_del(serial8250_isa_devs);
put_dev:
platform_device_put(serial8250_isa_devs);
unreg_plat_drv:
platform_driver_unregister(&serial8250_isa_driver);
unreg_uart_drv:
uart_unregister_driver(&serial8250_reg);
out:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册