From 950d115023e50209374c688b2670c89c86571c68 Mon Sep 17 00:00:00 2001 From: Yang Yingliang Date: Thu, 21 Dec 2023 09:28:19 +0000 Subject: [PATCH] mbigen: fix mbigen driver defer probe hulk inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I8QD38 CVE: N/A ------------------------------------------------- Current mbigen driver uses module_platform_driver() to call init function, but pl011 driver uses arch_initcall(). So pl011 driver will init earlier than mbigen driver and pl011 will get irq failed. This will happen on Hi1616. Fix this problem by using arch_initcall in mbigen driver. Signed-off-by: Yang Yingliang Reviewed-by: Hanjun Guo Signed-off-by: zhangyi (F) Signed-off-by: Yi Yang Reviewed-by: Wang Weiyang Signed-off-by: Zheng Zengkai Signed-off-by: Yuntao Liu --- drivers/irqchip/irq-mbigen.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/irqchip/irq-mbigen.c b/drivers/irqchip/irq-mbigen.c index 5101a3fb11df..d2b67e64021e 100644 --- a/drivers/irqchip/irq-mbigen.c +++ b/drivers/irqchip/irq-mbigen.c @@ -393,7 +393,18 @@ static struct platform_driver mbigen_platform_driver = { .probe = mbigen_device_probe, }; -module_platform_driver(mbigen_platform_driver); +static int __init mbigen_init(void) +{ + return platform_driver_register(&mbigen_platform_driver); +} + +static void __exit mbigen_exit(void) +{ + platform_driver_unregister(&mbigen_platform_driver); +} + +arch_initcall(mbigen_init); +module_exit(mbigen_exit); MODULE_AUTHOR("Jun Ma "); MODULE_AUTHOR("Yun Wu "); -- Gitee