[alsa-devel] usb audio race at disconnect time

Takashi Iwai tiwai at suse.de
Tue Oct 16 18:04:41 CEST 2012


At Tue, 16 Oct 2012 18:01:13 +0200,
Matthieu CASTET wrote:
> 
> Takashi Iwai a écrit :
> > At Mon, 15 Oct 2012 19:41:40 +0200,
> > Matthieu CASTET wrote:
> >> Hi Takashi,
> >>
> >> But I believe I found other races in the alsa char device handling. With the
> >> attached patch, if you disconnect the usb audio device between "msleep o" and
> >> "msleep o+", you will free the card resource (snd_card_do_free) and then use it [1].
> >>
> >> I did in in snd_ctl_open, but the same thing could be done in snd_pcm_open, ...
> > 
> > OK, we'd need a generic open/close protection.
> > For PCM, there is already a fix in my last patchset, so it should
> > work, but for other devices, the paths are still uncovered.
> > 
> I don't think it will work for pcm : the begin of snd_pcm_open is not protected
> by any lock even with your patch
> In snd_open we release sound_mutex before calling file->f_op->open.
> 
> The snd_lookup_minor_data and snd_card_file_add should be protected by a lock.
> Attached a patch (pcm.crash) that help to trigger [1].

Check out my latest patches in topic/usb-disconnect-fix branch.
It's been fixed there.


Takashi


More information about the Alsa-devel mailing list