Re: ALSA: usb-audio: fix oops due to cleanup race when disconnecting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 22, 2011 at 02:18:41PM -0600, pl bossart wrote:
> >> When a USB audio device is disconnected, snd_usb_audio_disconnect()
> >> kills all audio URBs.  At the same time, the application, after being
> >> notified of the disconnection, might close the device, in which case
> >> ALSA calls the .hw_free callback, which should free the URBs too.
> >>
> >> Commit de1b8b93a0ba prevented snd_usb_hw_free() from freeing the URBs to
> >> avoid a hang that resulted from this race, but this introduced another
> >> race because the URB callbacks could now be executed after
> >> snd_usb_hw_free() has returned, and try to access already freed data.
> >>
> >> Fix the first race by introducing a mutex to serialize the disconnect
> >> callback and all PCM callbacks that manage URBs (hw_free and hw_params).
> >>
> >> Reported-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxx>
> >> [CL: also serialize hw_params callback]
> >> Signed-off-by: Clemens Ladisch <clemens@xxxxxxxxxx>
> >
> > Ah, I forgot to put my sign-off since I was waiting for any test
> > result...  Has anyone tried it?
> 
> Doesn't work for me. same oops as before. Either I made a mistake when
> merging this patch manually (there were some rejects), or the problem
> is still there.

Which kernel version were you trying to patch?  Was it a vanilla kernel,
or did you have some other changes applied?

Sarah Sharp
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux