Hi Vinod > > 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. Very easy pseudo code is like this rtd->card = card; rtd->cpu = cpu; rtd->codec = codec; rtd->platform = platform Here, card/cpu/codec/platform are SoC device/driver, and "ALSA sound card" is using this rtd. Now, I can unbind/rmmod each of them (for example codec). But rtd (= ALSA sound card) doesn't know about it. Thus, rtd will access to invalid pointer after unbind/rmmod.