On Wed, Jul 27, 2016 at 07:57:05AM +0200, Takashi Iwai wrote:
On Wed, 27 Jul 2016 05:21:11 +0200, Vinod Koul wrote:
On Tue, Jul 26, 2016 at 05:41:56AM +0000, Kuninori Morimoto wrote:
Hi ALSA SoC
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.
Oh yes, unload is an issue. Are these any solutions to prevent this?
In core, should we de-register the card if one of the components exits. The .remove should be called for the driver, thus triggering unregister?