From 9621055fbbb190264cb6a8182b70e3f0f917d770 Mon Sep 17 00:00:00 2001 From: Jurgen Kramer Date: Fri, 7 Dec 2012 10:26:43 +0100 Subject: [PATCH] ALSA: usb6fire: prevent driver panic state when stopping The patch below prevents the 6fire usb driver going into panic state when stopping playing. On some systems the urb in handler (usb6fire_pcm_in_urb_handler) is being called while urbs are being killed off, this causes the driver to set panic state and can result in the kernel warning 'URB %p submitted while active'. Signed-off-by: Jurgen Kramer Signed-off-by: Takashi Iwai --- sound/usb/6fire/pcm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sound/usb/6fire/pcm.c b/sound/usb/6fire/pcm.c index cabedb416fc4..e2ca12fe92e9 100644 --- a/sound/usb/6fire/pcm.c +++ b/sound/usb/6fire/pcm.c @@ -135,6 +135,9 @@ static void usb6fire_pcm_stream_stop(struct pcm_runtime *rt) struct control_runtime *ctrl_rt = rt->chip->control; if (rt->stream_state != STREAM_DISABLED) { + + rt->stream_state = STREAM_STOPPING; + for (i = 0; i < PCM_N_URBS; i++) { usb_kill_urb(&rt->in_urbs[i].instance); usb_kill_urb(&rt->out_urbs[i].instance);