• Sam Ravnborg's avatar
    [SPARC64]: Fix section error in sparcspkr · 2ad913ba
    Sam Ravnborg authored
    With a sparc64 defconfig modified to set CONFIG_HOTPLUG=n
    the following error happened during link of vmlinux:
    
    local symbol 0: discarded in section `.devexit.text' from drivers/built-in.o
    local symbol 1: discarded in section `.devexit.text' from drivers/built-in.o
    
    (The error message above is from kbuild.git but it happens in mainline too)
    
    The error happens becase there is a reference from .text/.data to a
    function marked __devexit. With CONFIG_HOTPLUG=n all code marked
    __devexit are discarded and the linker complains.
    
    It was tracked down to sparcspkr.c which were missing __devexit_p()
    around the function pointers.
    
    Unfortunately modpost did not catch this since modpost do not warn
    about references from .data to .devexit from variables named *_driver.
    Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2ad913ba
sparcspkr.c 5.79 KB