From: Greg Kroah-Hartman Date: Sun, 14 Dec 2014 20:14:43 +0000 (-0800) Subject: 3.10-stable patches X-Git-Tag: v3.10.63~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=da102420ec0641a24391d54dd44ecddd707422fa;p=thirdparty%2Fkernel%2Fstable-queue.git 3.10-stable patches added patches: alsa-usb-audio-don-t-resubmit-pending-urbs-at-midi-error-recovery.patch --- diff --git a/queue-3.10/alsa-usb-audio-don-t-resubmit-pending-urbs-at-midi-error-recovery.patch b/queue-3.10/alsa-usb-audio-don-t-resubmit-pending-urbs-at-midi-error-recovery.patch new file mode 100644 index 00000000000..9c95b232c27 --- /dev/null +++ b/queue-3.10/alsa-usb-audio-don-t-resubmit-pending-urbs-at-midi-error-recovery.patch @@ -0,0 +1,67 @@ +From 66139a48cee1530c91f37c145384b4ee7043f0b7 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Sat, 6 Dec 2014 18:02:55 +0100 +Subject: ALSA: usb-audio: Don't resubmit pending URBs at MIDI error recovery + +From: Takashi Iwai + +commit 66139a48cee1530c91f37c145384b4ee7043f0b7 upstream. + +In snd_usbmidi_error_timer(), the driver tries to resubmit MIDI input +URBs to reactivate the MIDI stream, but this causes the error when +some of URBs are still pending like: + + WARNING: CPU: 0 PID: 0 at ../drivers/usb/core/urb.c:339 usb_submit_urb+0x5f/0x70() + URB ef705c40 submitted while active + CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.16.6-2-desktop #1 + Hardware name: FOXCONN TPS01/TPS01, BIOS 080015 03/23/2010 + c0984bfa f4009ed4 c078deaf f4009ee4 c024c884 c09a135c f4009f00 00000000 + c0984bfa 00000153 c061ac4f c061ac4f 00000009 00000001 ef705c40 e854d1c0 + f4009eec c024c8d3 00000009 f4009ee4 c09a135c f4009f00 f4009f04 c061ac4f + Call Trace: + [] try_stack_unwind+0x156/0x170 + [] dump_trace+0x5a/0x1b0 + [] show_trace_log_lvl+0x46/0x50 + [] show_stack_log_lvl+0x51/0xe0 + [] show_stack+0x27/0x50 + [] dump_stack+0x45/0x65 + [] warn_slowpath_common+0x84/0xa0 + [] warn_slowpath_fmt+0x33/0x40 + [] usb_submit_urb+0x5f/0x70 + [] snd_usbmidi_submit_urb+0x14/0x60 [snd_usbmidi_lib] + [] snd_usbmidi_error_timer+0x6a/0xa0 [snd_usbmidi_lib] + [] call_timer_fn+0x30/0x130 + [] run_timer_softirq+0x1c2/0x260 + [] __do_softirq+0xc3/0x270 + [] do_softirq_own_stack+0x22/0x30 + [] irq_exit+0x8d/0xa0 + [] smp_apic_timer_interrupt+0x38/0x50 + [] apic_timer_interrupt+0x34/0x3c + [] cpuidle_enter_state+0x3e/0xd0 + [] cpu_idle_loop+0x29d/0x3e0 + [] cpu_startup_entry+0x53/0x60 + [] start_kernel+0x415/0x41a + +For avoiding these errors, check the pending URBs and skip +resubmitting such ones. + +Reported-and-tested-by: Stefan Seyfried +Acked-by: Clemens Ladisch +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/usb/midi.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/sound/usb/midi.c ++++ b/sound/usb/midi.c +@@ -364,6 +364,8 @@ static void snd_usbmidi_error_timer(unsi + if (in && in->error_resubmit) { + in->error_resubmit = 0; + for (j = 0; j < INPUT_URBS; ++j) { ++ if (atomic_read(&in->urbs[j]->use_count)) ++ continue; + in->urbs[j]->dev = umidi->dev; + snd_usbmidi_submit_urb(in->urbs[j], GFP_ATOMIC); + } diff --git a/queue-3.10/series b/queue-3.10/series index 54a1fa65bfd..2a08d5adcf9 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -21,3 +21,4 @@ ext2-fix-oops-in-ext2_get_block-called-from-ext2_quota_write.patch igb-bring-link-up-when-phy-is-powered-up.patch arm-sched_clock-load-cycle-count-after-epoch-stabilizes.patch powerpc-32-bit-getcpu-vdso-function-uses-64-bit-instructions.patch +alsa-usb-audio-don-t-resubmit-pending-urbs-at-midi-error-recovery.patch