Skip to content
  • Tony Lindgren's avatar
    init.h: Update initcall_sync variants to fix build errors · 451ef1ca
    Tony Lindgren authored
    
    
    We are getting randconfig build errors on device drivers with
    tristate Kconfig option if they are using custom initcall
    levels. Rather than add ifdeffery into the drivers, let's add
    the missing initcall_sync variants.
    
    As the comment in init.h has kept people from updating the
    list of initcalls that can be just module_init when the driver
    is loaded as a loadable module, let's also update the comment
    a bit to describe valid use cases custom initcall levels.
    
    While most drivers should nowadays use just regular module_init
    because of the deferred probe, we do have quite a few custom
    initcall levels left that we cannot remove until tested properly.
    
    There are also still few valid cases where a custom initcall
    level might make sense that I'm aware of.
    
    For example a bus snooping driver can provide information about
    invalid bus access and is handy loader early when built in. But
    there's no hard dependency to have it necessarily built in and
    a loadable module is a valid option.
    
    Another example is a driver implementing a Linux framework like
    pinctrl framework. That driver may be needed early on some
    platforms because of legacy reasons, while it can be just a
    regular module_init on most platforms.
    
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    451ef1ca