• Arnd Bergmann's avatar
    gpio: em: do not discard em_gio_irq_domain_cleanup · 38eaed32
    Arnd Bergmann authored
    The newly added gpio-em driver marks its em_gio_irq_domain_cleanup
    function as __devexit, which would lead to that function being
    discarded in case CONFIG_HOTPLUG is disabled. However, the function
    is also called by the error handling logic em_gio_probe, which
    would cause a jump into a NULL pointer if it was removed from the
    kernel or module.
    
    Without this patch, building kzm9d_defconfig results in:
    
    WARNING: drivers/gpio/built-in.o(.devinit.text+0x330): Section mismatch in reference from the function em_gio_probe() to the function .devexit.text:em_gio_irq_domain_cleanup()
    The function __devinit em_gio_probe() references
    a function __devexit em_gio_irq_domain_cleanup().
    This is often seen when error handling in the init function
    uses functionality in the exit path.
    The fix is often to remove the __devexit annotation of
    em_gio_irq_domain_cleanup() so it may be used outside an exit section.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Cc: Magnus Damm <damm@opensource.se>
    Cc: Linus Walleij <linus.walleij@linaro.org>
    Cc: Rafael J. Wysocki <rjw@sisk.pl>
    38eaed32
gpio-em.c 10.6 KB