[PATCH v3 net-next] staging: irda: fix init level for irda core

From: Greg KH
Date: Wed Aug 30 2017 - 07:16:51 EST


When moving the IRDA code out of net/ into drivers/staging/irda/net, the
link order changes when IRDA is built into the kernel. That causes a
kernel crash at boot time as netfilter isn't initialized yet.

To fix this, move the init call level of the irda core to be
device_initcall() as the link order keeps this being initialized at the
correct time.

Reported-by: kernel test robot <fengguang.wu@xxxxxxxxx>
Reported-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---

v3 - just change the initcall level, works so much simpler, thanks to
DaveM for the idea.
v2 - don't force irda to be a module, make the Makefiles put irda back
where it was before in the link order.

drivers/staging/irda/net/irmod.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/irda/net/irmod.c b/drivers/staging/irda/net/irmod.c
index c5e35b85c477..4319f4ff66b0 100644
--- a/drivers/staging/irda/net/irmod.c
+++ b/drivers/staging/irda/net/irmod.c
@@ -190,7 +190,7 @@ static void __exit irda_cleanup(void)
*
* Jean II
*/
-subsys_initcall(irda_init);
+device_initcall(irda_init);
module_exit(irda_cleanup);

MODULE_AUTHOR("Dag Brattli <dagb@xxxxxxxxx> & Jean Tourrilhes <jt@xxxxxxxxxx>");
--
2.14.1