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

From: Takashi Iwai
Date: Thu Jan 15 2015 - 01:14:13 EST


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@xxxxxxxxxx> 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
--
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/