[PATCH 1/1] usb: ulpi: ulpi_init should be used in subsys_initcall

From: Lu Baolu
Date: Thu May 21 2015 - 01:40:58 EST


The intention of this change is to fix below kernel panic when
USB_ULPI_BUS was configured as buildin.

[0.746856] kernel BUG at drivers/base/driver.c:153!
[0.752418] invalid opcode: 0000 [#1] PREEMPT SMP
[0.757804] Modules linked in:
[0.893985] Call Trace:
[0.896729] [<ffffffff81870cb1>] ? ulpi_register_driver+0x21/0x30
[0.903654] [<ffffffff823d5cac>] tusb1210_driver_init+0x10/0x12
[0.910386] [<ffffffff81000318>] do_one_initcall+0xd8/0x200
[0.916729] [<ffffffff8239b094>] kernel_init_freeable+0x196/0x21e
[0.923655] [<ffffffff81affed0>] ? rest_init+0x90/0x90
[0.929509] [<ffffffff81affede>] kernel_init+0xe/0xf0
[0.935266] [<ffffffff81b0f442>] ret_from_fork+0x42/0x70
[0.941315] [<ffffffff81affed0>] ? rest_init+0x90/0x90

Reported-by: Zhuo Qiuxu <qiuxu.zhuo@xxxxxxxxx>
Signed-off-by: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx>
---
drivers/usb/common/ulpi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/common/ulpi.c b/drivers/usb/common/ulpi.c
index 0e6f968..01c0c04 100644
--- a/drivers/usb/common/ulpi.c
+++ b/drivers/usb/common/ulpi.c
@@ -242,7 +242,7 @@ static int __init ulpi_init(void)
{
return bus_register(&ulpi_bus);
}
-module_init(ulpi_init);
+subsys_initcall(ulpi_init);

static void __exit ulpi_exit(void)
{
--
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/