• U
    ALSA: Fix section for snd-aica platform driver · 418c8f89
    Uwe Kleine-König 提交于
    Don't use __init but __devinit to define probe function.  A pointer to
    snd_aica_probe is passed to the core via platform_driver_register and so the
    function must not disappear after the module is loaded.  Using __init
    and having HOTPLUG=y and SND_AICA=m the following probably oopses:
    
    	echo -n AICA > /sys/bus/platform/driver/AICA/unbind
    	echo -n AICA > /sys/bus/platform/driver/AICA/bind
    
    Strange enough add_aicamixer_controls which is only called by
    snd_aica_probe was already using __devinit.
    
    While at it move the remove function to .devexit.text section.
    Signed-off-by: NUwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
    Cc: Adrian McMenamin <adrian@mcmen.demon.co.uk>
    Cc: Paul Mundt <lethal@linux-sh.org>
    Cc: Jaroslav Kysela <perex@perex.cz>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NTakashi Iwai <tiwai@suse.de>
    Signed-off-by: NJaroslav Kysela <perex@perex.cz>
    418c8f89
aica.c 18.5 KB