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

From: Lars-Peter Clausen
Date: Wed Jan 14 2015 - 07:57:15 EST


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.

- Lars

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/