]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 14 Dec 2014 20:14:43 +0000 (12:14 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 14 Dec 2014 20:14:43 +0000 (12:14 -0800)
added patches:
alsa-usb-audio-don-t-resubmit-pending-urbs-at-midi-error-recovery.patch

queue-3.10/alsa-usb-audio-don-t-resubmit-pending-urbs-at-midi-error-recovery.patch [new file with mode: 0644]
queue-3.10/series

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 (file)
index 0000000..9c95b23
--- /dev/null
@@ -0,0 +1,67 @@
+From 66139a48cee1530c91f37c145384b4ee7043f0b7 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+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 <tiwai@suse.de>
+
+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:
+  [<c0205df6>] try_stack_unwind+0x156/0x170
+  [<c020482a>] dump_trace+0x5a/0x1b0
+  [<c0205e56>] show_trace_log_lvl+0x46/0x50
+  [<c02049d1>] show_stack_log_lvl+0x51/0xe0
+  [<c0205eb7>] show_stack+0x27/0x50
+  [<c078deaf>] dump_stack+0x45/0x65
+  [<c024c884>] warn_slowpath_common+0x84/0xa0
+  [<c024c8d3>] warn_slowpath_fmt+0x33/0x40
+  [<c061ac4f>] usb_submit_urb+0x5f/0x70
+  [<f7974104>] snd_usbmidi_submit_urb+0x14/0x60 [snd_usbmidi_lib]
+  [<f797483a>] snd_usbmidi_error_timer+0x6a/0xa0 [snd_usbmidi_lib]
+  [<c02570c0>] call_timer_fn+0x30/0x130
+  [<c0257442>] run_timer_softirq+0x1c2/0x260
+  [<c0251493>] __do_softirq+0xc3/0x270
+  [<c0204732>] do_softirq_own_stack+0x22/0x30
+  [<c025186d>] irq_exit+0x8d/0xa0
+  [<c0795228>] smp_apic_timer_interrupt+0x38/0x50
+  [<c0794a3c>] apic_timer_interrupt+0x34/0x3c
+  [<c0673d9e>] cpuidle_enter_state+0x3e/0xd0
+  [<c028bb8d>] cpu_idle_loop+0x29d/0x3e0
+  [<c028bd23>] cpu_startup_entry+0x53/0x60
+  [<c0bfac1e>] start_kernel+0x415/0x41a
+
+For avoiding these errors, check the pending URBs and skip
+resubmitting such ones.
+
+Reported-and-tested-by: Stefan Seyfried <stefan.seyfried@googlemail.com>
+Acked-by: Clemens Ladisch <clemens@ladisch.de>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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);
+                       }
index 54a1fa65bfdc9701729ff48a2fcd31291a0437aa..2a08d5adcf91e20827f80023332cd3af610c873f 100644 (file)
@@ -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