On Fri, Sep 28, 2012 at 11:36:16PM +0200, Arnd Bergmann wrote: > The samsung pinctrl driver has a probe function that is > __devinit and that calls a lot of other functions that are > marked __init, which kbuild complains about. > > Marking everything __devinit means that the code does not > discarded when CONFIG_HOTPLUG is set, which is a little > more wasteful, but also more consistent > > Without this patch, building exynos_defconfig results in: > > WARNING: drivers/pinctrl/built-in.o(.devinit.text+0x124): Section mismatch in > reference from the function samsung_pinctrl_probe() to the function > .init.text:samsung_gpiolib_register() > The function __devinit samsung_pinctrl_probe() references > a function __init samsung_gpiolib_register(). > If samsung_gpiolib_register is only used by samsung_pinctrl_probe then > annotate samsung_gpiolib_register with a matching annotation.
Note that work is underway to remove HOTPLUG altogether (see commit 45f035a, "CONFIG_HOTPLUG should be always on" in linux-next), so it may make more sense to just drop the __init markings. Thierry
pgpACkKEQKFhN.pgp
Description: PGP signature