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:
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