Ack: [Precise SRU][PATCH] ALSA: usb-audio: Fix regression by disconnection-race-fix patch
Brad Figg
brad.figg at canonical.com
Wed Jan 30 15:50:15 UTC 2013
On 01/30/2013 07:22 AM, Chris J Arges wrote:
> From: Takashi Iwai <tiwai at suse.de>
>
> BugLink: http://bugs.launchpad.net/bugs/1097396
>
> [NOTE: the regression below is found only in 3.2-3.4 stable trees, so
> there is no upstream commit corresponding to this patch]
>
> The recent fix for the race at disconnection of usb-audio devices
> (upstream commit 978520b7) triggers Oops when a device is unplugged
> while playing on 3.2 and 3.4 kernels. The culprit is that the
> shutdown flag check was wrongly added around the urb deactivation code
> snippet. The urb deactivation code has to be performed even after the
> device disconnected. Otherwise it remains undead and pokes the wild
> access in the end.
>
> The regression fix is simply reverting the shutdown flag check in that
> code.
>
> Reported-and-tested-by: Chris J Arges <christopherarges at gmail.com>
> Signed-off-by: Takashi Iwai <tiwai at suse.de>
> Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
>
> (cherry picked from commit 115b96e58609cff057d22d0e6118dae093763461)
>
> Signed-off-by: Chris J Arges <chris.j.arges at canonical.com>
> ---
> sound/usb/endpoint.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c
> index 24c5114..9ab2b3e 100644
> --- a/sound/usb/endpoint.c
> +++ b/sound/usb/endpoint.c
> @@ -148,10 +148,8 @@ void snd_usb_release_substream_urbs(struct snd_usb_substream *subs, int force)
> int i;
>
> /* stop urbs (to be sure) */
> - if (!subs->stream->chip->shutdown) {
> - deactivate_urbs(subs, force, 1);
> - wait_clear_urbs(subs);
> - }
> + deactivate_urbs(subs, force, 1);
> + wait_clear_urbs(subs);
>
> for (i = 0; i < MAX_URBS; i++)
> release_urb_ctx(&subs->dataurb[i]);
>
--
Brad Figg brad.figg at canonical.com http://www.canonical.com
More information about the kernel-team
mailing list