On Tuesday 20 of December 2011 at 21:40:46, Russell King - ARM Linux wrote:
On Tue, Dec 20, 2011 at 12:28:32AM +0100, Janusz Krzysztofik wrote:
quoted
diff --git a/drivers/input/serio/ams_delta_serio.c b/drivers/input/serio/ams_delta_serio.c
index d4d08bd..56ffd7c 100644
--- a/drivers/input/serio/ams_delta_serio.c
+++ b/drivers/input/serio/ams_delta_serio.c
@@ -165,6 +165,9 @@ serio:
kfree(ams_delta_serio);
return err;
}
+#ifndef MODULE
+late_initcall(ams_delta_serio_init);
+#else
module_init(ams_delta_serio_init);
static void __exit ams_delta_serio_exit(void)
@@ -175,3 +178,4 @@ static void __exit ams_delta_serio_exit(void)
gpio_free(AMS_DELTA_GPIO_PIN_KEYBRD_DATA);
}
module_exit(ams_delta_serio_exit);
+#endif
It's worth noting:
#ifndef MODULE
#define late_initcall(fn) __define_initcall("7",fn,7)
#else /* MODULE */
#define late_initcall(fn) module_init(fn)
So really, all these ifndefs aren't required. Just change the module_init()
to late_initcall().
Thanks, I'll follow your pattern. My reason for using those ifdefery was
a comment still found in include/linux/init.h:
#else /* MODULE */
/* Don't use these in modules, but some people do... */
#define early_initcall(fn) module_init(fn)
#define core_initcall(fn) module_init(fn)
...
#define late_initcall(fn) module_init(fn)
Thanks,
Janusz