Hi Paul, On Thu, Jan 16, 2014 at 11:15 PM, Paul Gortmaker <paul.gortma...@windriver.com> wrote: > The rtc.o is built for obj-y, i.e. always built in. It will > never be modular, so using module_init as an alias for __initcall > can be somewhat misleading. > > Fix this up now, so that we can relocate module_init from > init.h into module.h in the future. If we don't do this, we'd > have to add module.h to obviously non-modular code, and that > would be a worse thing.
The word "module" has different meanings: it can be a "loadable kernel module", or just a "code module". include/linux/init.h seems to agree with this: /** * module_init() - driver initialization entry point * @x: function to be run at kernel boot time or module insertion * * module_init() will either be called during do_initcalls() (if * builtin) or at module insertion time (if a module). There can only * be one per module. */ #define module_init(x) __initcall(x); I can understand you want to restrict "module_init()" to real loadable modules, but "device_initcall()" sounds like a real bad name or this. Furthermore, many places that contain always compiled-in code and currently only use module_init() should probably start using module_exit() as well, to do the proper cleanups to make kexec work. So I'm not really convinced this is the way we want to go... > Note that direct use of __initcall is discouraged, vs. one > of the priority categorized subgroups. As __initcall gets > mapped onto device_initcall, our use of device_initcall > directly in this change means that the runtime impact is > zero -- it will remain at level 6 in initcall ordering. > > Cc: Geert Uytterhoeven <ge...@linux-m68k.org> > Cc: linux-m...@lists.linux-m68k.org > Signed-off-by: Paul Gortmaker <paul.gortma...@windriver.com> > > diff --git a/arch/m68k/mvme16x/rtc.c b/arch/m68k/mvme16x/rtc.c > index 6ef7a81a3b12..1755e2f7137d 100644 > --- a/arch/m68k/mvme16x/rtc.c > +++ b/arch/m68k/mvme16x/rtc.c > @@ -161,4 +161,4 @@ static int __init rtc_MK48T08_init(void) > printk(KERN_INFO "MK48T08 Real Time Clock Driver v%s\n", RTC_VERSION); > return misc_register(&rtc_dev); > } > -module_init(rtc_MK48T08_init); > +device_initcall(rtc_MK48T08_init); Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/