Hi Takashi-san Thank you for your help
> > > My current headache is ALSA SoC's each modules (= Card/Codec/CPU/Platform) > > > doesn't care about "unbind/rmmod". > > > For example, if someone unbinded/rmmoded "Codec", Card or other modules > > > doesn't know about it. Thus, user can continue to use this sound card, > > > and kernel will be Oops. > > > > Are you sure about this? Have you tried removing a module? > > > > During card probe, asoc will hold a reference to the component. See the > > calls to try_module_get(). This will prevent from unloading under normal > > cases. > > For unloading the module, yes, it should have been prevented by > managing the module refcount. However, unbinding can't be stopped by > that. It's a known problem. > > Morimoto-san, do you see the issue really via module unloading, or is > it only via unbinding? I tried, I thought this issue was for both unload/unbind, but it was only for unbinding. is this correct ? # insmod cpu driver > insmod home/snd-soc-rcar.ko [ 94.853449] asoc-simple-graph-dpcm-card asoc-simple-graph-dpcm-card.0.auto: snd-soc-dummy-dai <-> rsnd-dai.0 mapping ok [ 94.864466] asoc-simple-graph-dpcm-card asoc-simple-graph-dpcm-card.0.auto: snd-soc-dummy-dai <-> rsnd-dai.1 mapping ok [ 94.876047] asoc-simple-graph-dpcm-card asoc-simple-graph-dpcm-card.0.auto: ak4642-hifi <-> snd-soc-dummy-dai mapping ok [ 94.888157] rcar_sound ec500000.sound: probed # check it > lsmod Module Size Used by Not tainted snd_soc_rcar 47695 2 ... # try rmmod > rmmod snd_soc_rcar rmmod: can't unload 'snd_soc_rcar': Resource temporarily unavailable # try playback, it still working > aplay xxxx.wav # try unbind > echo ec500000.sound > /sys/devices/platform/ec500000.sound/driver/unbind # sound card will die > aplay xxxx.wav [ 230.236466] Unable to handle kernel NULL pointer dereference at virtual address 00000014 [ 230.244580] pgd = eea60000 [ 230.247320] [00000014] *pgd=6e9a3835, *pte=00000000, *ppte=00000000 [ 230.253628] Internal error: Oops: 17 [#1] SMP ARM [ 230.258335] Modules linked in: snd_soc_rcar regmap_mmio ... [ 230.607462] 1fe0: 00000005 bed645b0 b6e2745d b6e28b86 60000030 bed64600 0645484d 82551041 [ 230.615643] Backtrace: [ 230.618105] [<c02eab58>] (pinctrl_select_state) from [<c02ead14>] (pinctrl_pm_select_state+0x28/0x58) [ 230.627330] r9:ee814f00 r8:ee8b8b98 r7:00000000 r6:ee927900 r5:ef2ba410 r4:ee8c9000 [ 230.635131] [<c02eacec>] (pinctrl_pm_select_state) from [<c02ead64>] (pinctrl_pm_select_default_state+0x20/0x2c) [ 230.645311] r7:00000000 r6:ee88b200 r5:ef378800 r4:ee8c9000 [ 230.651016] [<c02ead44>] (pinctrl_pm_select_default_state) from [<c040ab90>] (soc_pcm_open+0x34/0x798) [ 230.660331] [<c040ab5c>] (soc_pcm_open) from [<c040c0e4>] (dpcm_fe_dai_open+0xbc/0x524) [ 230.668340] r10:ee8c9000 r9:ee8b8bb0 r8:ee8b8b98 r7:00000280 r6:ee8c9000 r5:00000001 [ 230.676222] r4:ef378800 ...