On Tue, Jan 13, 2015 at 06:24:44PM +0100, Takashi Iwai wrote:
Wang, Jiada (ESD) wrote:
I am using i.MX6Q sabreSD board, which have imx_wm892 machine driver, wm8962 codec and SSI CPU DAI,
I got Kernel crash when unloading audio drivers (playback stream is active) modprobe -r snd_soc_imx_wm8962 modprobe -r snd_soc_fsl_ssi modprobe -r snd_soc_wm8962
The root problem is that you can unload the module while playing. The corresponding module refcounts should have been increased during used.
Do we miss [try_]module_get() somewhere in ASoC?
That doesn't help, users can still forcibly unbind the driver at runtime without loading the module - and there's always the potential for actually hotpluggable hardware. The teardown paths should be able to cope somewhat gracefully.