[alsa-devel] unload Audio drivers while playback stream is active case kernel crash

Takashi Iwai tiwai at suse.de
Wed Jan 14 14:06:52 CET 2015


At Wed, 14 Jan 2015 13:57:03 +0100,
Lars-Peter Clausen wrote:
> 
> On 01/14/2015 01:02 PM, Mark Brown wrote:
> [...]
> >>> I don't think that we need to prevent module unload when a stream is active.
> >>>   From a framework point of view is not different from hot-unplug. I don't
> >>> see a reason why we'd jump through hoops to actively forbid removing the
> >>> module once it works just fine.
> >
> >> Well, the module unload means a more drastic cleanup.  Even if you
> >> unbind, the code and data are still there while module unload may
> >> clean them up all.
> >
> >> Above all, disallowing the module unload while using is the common
> >> behavior of any other drivers.  Why do we have to be a rebel against
> >> all civil manner? :)
> >
> > That's not true for everything and for ASoC I'd tend to assume that the
> > user knows what they're doing and has a good reason for it; it's
> > certainly something that can be helpful in development.
> 
> 
> My personal opinion on this is that disallowing module removal while a 
> driver registered by the module when is in use, while there is no technical 
> reason to do so, is a anti-feature. Whether in ALSA or elsewhere.
> 
> But looking at the source it seems that this is a core feature of ALSA and 
> at least for the card module itself it will do the ref-counting when a 
> stream is started/stopped. And we even support setting the owner of a card 
> in ASoC. It's just that pretty much no ASoC card driver bothers to set the 
> owner field in the snd_soc_card struct. So this particular problem can be 
> fixed by updating the imx-wm8962 driver to set the owner field.

Right, and that's what I wanted to hear.  My concern was about the
missing piece in the existing core part.

The rest of hotplug fix is of course a thing to be done in anyway.


Takashi


More information about the Alsa-devel mailing list