Messages in this thread | | | Date | Thu, 15 Jan 2015 07:14:02 +0100 | From | Takashi Iwai <> | Subject | Re: [alsa-devel] unload Audio drivers while playback stream is active case kernel crash |
| |
At Thu, 15 Jan 2015 13:40:49 +0900, jiwang wrote: > > Hi > On 01/14/2015 10:43 PM, Fabio Estevam wrote: > > On Wed, Jan 14, 2015 at 10:57 AM, Lars-Peter Clausen <lars@metafoo.de> wrote: > > > >> 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. > > Thanks, Lars_Peter. This fixes the issue: > > > > root@freescale /$ modprobe -r snd_soc_imx_wm8962 > > modprobe: can't unload module snd_soc_imx_wm8962: Resource temporarily > > unavailable > > > > Will send a patch with your suggestion soon. > I think by set owner field in imx_wm8962 machine driver can fix the > crash I saw on sabreSD board, > but as this is a generic issue which I suppose should exist on other > boards with different > machine drivers. > > Can we have a more generic fix to this issue? > Or shall we set owner field for all machine drivers?
This is two folds. The lack of card's owner field is a bug of each driver. Another is the missing of a hotplug-safe cleanup in ASoC core.
Takashi
| |