[PATCH] Irq/mbigen:Promote the mbigen driver register timing

Subsystems: irqchip drivers, the rest

STALE3812d

2 messages, 2 authors, 2016-02-22 · open the first message on its own page

[PATCH] Irq/mbigen:Promote the mbigen driver register timing

From: MaJun <hidden>
Date: 2016-02-22 11:01:59

From: Ma Jun <redacted>

Using module_platform_driver() to register mbigen driver is
too late for some driver to apply irq, because the mbigen irq
domain is not created yet. 

Signed-off-by: Ma Jun <redacted>
---
 drivers/irqchip/irq-mbigen.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/drivers/irqchip/irq-mbigen.c b/drivers/irqchip/irq-mbigen.c
index 4dd3eb8..4df359c 100644
--- a/drivers/irqchip/irq-mbigen.c
+++ b/drivers/irqchip/irq-mbigen.c
@@ -289,7 +289,14 @@ static struct platform_driver mbigen_platform_driver = {
 	.probe			= mbigen_device_probe,
 };
 
-module_platform_driver(mbigen_platform_driver);
+static __init int mbigen_init(void)
+
+{
+	return platform_driver_register(&mbigen_platform_driver);
+
+}
+
+arch_initcall(mbigen_init);
 
 MODULE_AUTHOR("Jun Ma <majun258@huawei.com>");
 MODULE_AUTHOR("Yun Wu <wuyun.wu@huawei.com>");
-- 
1.7.1

Re: [PATCH] Irq/mbigen:Promote the mbigen driver register timing

From: Marc Zyngier <hidden>
Date: 2016-02-22 11:24:12

On 22/02/16 11:00, MaJun wrote:
quoted hunk
From: Ma Jun <redacted>

Using module_platform_driver() to register mbigen driver is
too late for some driver to apply irq, because the mbigen irq
domain is not created yet. 

Signed-off-by: Ma Jun <redacted>
---
 drivers/irqchip/irq-mbigen.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/drivers/irqchip/irq-mbigen.c b/drivers/irqchip/irq-mbigen.c
index 4dd3eb8..4df359c 100644
--- a/drivers/irqchip/irq-mbigen.c
+++ b/drivers/irqchip/irq-mbigen.c
@@ -289,7 +289,14 @@ static struct platform_driver mbigen_platform_driver = {
 	.probe			= mbigen_device_probe,
 };
 
-module_platform_driver(mbigen_platform_driver);
+static __init int mbigen_init(void)
+
+{
+	return platform_driver_register(&mbigen_platform_driver);
+
+}
+
+arch_initcall(mbigen_init);
 
 MODULE_AUTHOR("Jun Ma <majun258@huawei.com>");
 MODULE_AUTHOR("Yun Wu <wuyun.wu@huawei.com>");
I don't believe this is a proper fix, and already said so when reviewing
this code:

http://www.spinics.net/lists/linux-pci/msg46534.html

Short of actually solving the dependencies, it is likely that you will
only move the problem somewhere else.

I suggest you engage will people that are working on a proper solution,
and/or fix the drivers to gracefully defer their probing if their IRQs
are not available.

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help