From: Greg Kroah-Hartman Date: Fri, 12 Apr 2013 19:52:53 +0000 (-0700) Subject: 3.8-stable patches X-Git-Tag: v3.0.74~22 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=72c0f505ad0d609dab38da294ad39335c4454783;p=thirdparty%2Fkernel%2Fstable-queue.git 3.8-stable patches added patches: alsa-usb-audio-fix-endianness-bug-in-snd_nativeinstruments_.patch --- diff --git a/queue-3.8/alsa-usb-audio-fix-endianness-bug-in-snd_nativeinstruments_.patch b/queue-3.8/alsa-usb-audio-fix-endianness-bug-in-snd_nativeinstruments_.patch new file mode 100644 index 00000000000..d940327c2a2 --- /dev/null +++ b/queue-3.8/alsa-usb-audio-fix-endianness-bug-in-snd_nativeinstruments_.patch @@ -0,0 +1,74 @@ +From 889d66848b12d891248b03abcb2a42047f8e172a Mon Sep 17 00:00:00 2001 +From: Eldad Zack +Date: Fri, 5 Apr 2013 20:49:46 +0200 +Subject: ALSA: usb-audio: fix endianness bug in snd_nativeinstruments_* + +From: Eldad Zack + +commit 889d66848b12d891248b03abcb2a42047f8e172a upstream. + +The usb_control_msg() function expects __u16 types and performs +the endianness conversions by itself. +However, in three places, a conversion is performed before it is +handed over to usb_control_msg(), which leads to a double conversion +(= no conversion): +* snd_usb_nativeinstruments_boot_quirk() +* snd_nativeinstruments_control_get() +* snd_nativeinstruments_control_put() + +Caught by sparse: + +sound/usb/mixer_quirks.c:512:38: warning: incorrect type in argument 6 (different base types) +sound/usb/mixer_quirks.c:512:38: expected unsigned short [unsigned] [usertype] index +sound/usb/mixer_quirks.c:512:38: got restricted __le16 [usertype] +sound/usb/mixer_quirks.c:543:35: warning: incorrect type in argument 5 (different base types) +sound/usb/mixer_quirks.c:543:35: expected unsigned short [unsigned] [usertype] value +sound/usb/mixer_quirks.c:543:35: got restricted __le16 [usertype] +sound/usb/mixer_quirks.c:543:56: warning: incorrect type in argument 6 (different base types) +sound/usb/mixer_quirks.c:543:56: expected unsigned short [unsigned] [usertype] index +sound/usb/mixer_quirks.c:543:56: got restricted __le16 [usertype] +sound/usb/quirks.c:502:35: warning: incorrect type in argument 5 (different base types) +sound/usb/quirks.c:502:35: expected unsigned short [unsigned] [usertype] value +sound/usb/quirks.c:502:35: got restricted __le16 [usertype] + +Signed-off-by: Eldad Zack +Acked-by: Daniel Mack +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/usb/mixer_quirks.c | 4 ++-- + sound/usb/quirks.c | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +--- a/sound/usb/mixer_quirks.c ++++ b/sound/usb/mixer_quirks.c +@@ -509,7 +509,7 @@ static int snd_nativeinstruments_control + else + ret = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), bRequest, + USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, +- 0, cpu_to_le16(wIndex), ++ 0, wIndex, + &tmp, sizeof(tmp), 1000); + up_read(&mixer->chip->shutdown_rwsem); + +@@ -540,7 +540,7 @@ static int snd_nativeinstruments_control + else + ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), bRequest, + USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT, +- cpu_to_le16(wValue), cpu_to_le16(wIndex), ++ wValue, wIndex, + NULL, 0, 1000); + up_read(&mixer->chip->shutdown_rwsem); + +--- a/sound/usb/quirks.c ++++ b/sound/usb/quirks.c +@@ -486,7 +486,7 @@ static int snd_usb_nativeinstruments_boo + { + int ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), + 0xaf, USB_TYPE_VENDOR | USB_RECIP_DEVICE, +- cpu_to_le16(1), 0, NULL, 0, 1000); ++ 1, 0, NULL, 0, 1000); + + if (ret < 0) + return ret; diff --git a/queue-3.8/series b/queue-3.8/series new file mode 100644 index 00000000000..b51adad3dde --- /dev/null +++ b/queue-3.8/series @@ -0,0 +1 @@ +alsa-usb-audio-fix-endianness-bug-in-snd_nativeinstruments_.patch