]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 Dec 2013 17:50:31 +0000 (09:50 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 Dec 2013 17:50:31 +0000 (09:50 -0800)
added patches:
drm-radeon-fix-n-cts-clock-matching-for-audio.patch
drm-radeon-re-enable-sw-acr-support-on-pre-dce4.patch
drm-radeon-use-64-bit-math-to-calculate-cts-values-for-audio-v2.patch
drm-radeon-use-hw-generated-cts-n-values-for-audio.patch
hid-apple-option-to-swap-the-option-alt-and-command-flag-keys.patch
hid-enable-mayflash-usb-gamecube-adapter.patch
hid-roccat-add-missing-special-driver-declarations.patch
hid-roccat-add-new-device-return-value.patch
hid-roccat-fix-coverity-cid-141438.patch
iwl3945-better-skb-management-in-rx-path.patch
iwl4965-better-skb-management-in-rx-path.patch
iwlwifi-don-t-warn-on-host-commands-sent-when-firmware-is-dead.patch
media-cx23885-fix-tevii-s471-regression-since-introduction-of-ts2020.patch
netfilter-nf_conntrack-use-rcu-safe-kfree-for-conntrack-extensions.patch

15 files changed:
queue-3.10/drm-radeon-fix-n-cts-clock-matching-for-audio.patch [new file with mode: 0644]
queue-3.10/drm-radeon-re-enable-sw-acr-support-on-pre-dce4.patch [new file with mode: 0644]
queue-3.10/drm-radeon-use-64-bit-math-to-calculate-cts-values-for-audio-v2.patch [new file with mode: 0644]
queue-3.10/drm-radeon-use-hw-generated-cts-n-values-for-audio.patch [new file with mode: 0644]
queue-3.10/hid-apple-option-to-swap-the-option-alt-and-command-flag-keys.patch [new file with mode: 0644]
queue-3.10/hid-enable-mayflash-usb-gamecube-adapter.patch [new file with mode: 0644]
queue-3.10/hid-roccat-add-missing-special-driver-declarations.patch [new file with mode: 0644]
queue-3.10/hid-roccat-add-new-device-return-value.patch [new file with mode: 0644]
queue-3.10/hid-roccat-fix-coverity-cid-141438.patch [new file with mode: 0644]
queue-3.10/iwl3945-better-skb-management-in-rx-path.patch [new file with mode: 0644]
queue-3.10/iwl4965-better-skb-management-in-rx-path.patch [new file with mode: 0644]
queue-3.10/iwlwifi-don-t-warn-on-host-commands-sent-when-firmware-is-dead.patch [new file with mode: 0644]
queue-3.10/media-cx23885-fix-tevii-s471-regression-since-introduction-of-ts2020.patch [new file with mode: 0644]
queue-3.10/netfilter-nf_conntrack-use-rcu-safe-kfree-for-conntrack-extensions.patch [new file with mode: 0644]
queue-3.10/series

diff --git a/queue-3.10/drm-radeon-fix-n-cts-clock-matching-for-audio.patch b/queue-3.10/drm-radeon-fix-n-cts-clock-matching-for-audio.patch
new file mode 100644 (file)
index 0000000..3debcad
--- /dev/null
@@ -0,0 +1,44 @@
+From e7d12c2f98ae1e68c7298e5028048d150fa553a1 Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Fri, 27 Sep 2013 18:19:42 -0400
+Subject: drm/radeon: fix N/CTS clock matching for audio
+
+From: Alex Deucher <alexander.deucher@amd.com>
+
+commit e7d12c2f98ae1e68c7298e5028048d150fa553a1 upstream.
+
+The drm code that calculates the 1001 clocks rounds up
+rather than truncating.  This allows the table to match
+properly on those modes.
+
+See bug:
+https://bugs.freedesktop.org/show_bug.cgi?id=69675
+
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/r600_hdmi.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/r600_hdmi.c
++++ b/drivers/gpu/drm/radeon/r600_hdmi.c
+@@ -57,15 +57,15 @@ enum r600_hdmi_iec_status_bits {
+ static const struct radeon_hdmi_acr r600_hdmi_predefined_acr[] = {
+     /*             32kHz        44.1kHz       48kHz    */
+     /* Clock      N     CTS      N     CTS      N     CTS */
+-    {  25174,  4576,  28125,  7007,  31250,  6864,  28125 }, /*  25,20/1.001 MHz */
++    {  25175,  4576,  28125,  7007,  31250,  6864,  28125 }, /*  25,20/1.001 MHz */
+     {  25200,  4096,  25200,  6272,  28000,  6144,  25200 }, /*  25.20       MHz */
+     {  27000,  4096,  27000,  6272,  30000,  6144,  27000 }, /*  27.00       MHz */
+     {  27027,  4096,  27027,  6272,  30030,  6144,  27027 }, /*  27.00*1.001 MHz */
+     {  54000,  4096,  54000,  6272,  60000,  6144,  54000 }, /*  54.00       MHz */
+     {  54054,  4096,  54054,  6272,  60060,  6144,  54054 }, /*  54.00*1.001 MHz */
+-    {  74175, 11648, 210937, 17836, 234375, 11648, 140625 }, /*  74.25/1.001 MHz */
++    {  74176, 11648, 210937, 17836, 234375, 11648, 140625 }, /*  74.25/1.001 MHz */
+     {  74250,  4096,  74250,  6272,  82500,  6144,  74250 }, /*  74.25       MHz */
+-    { 148351, 11648, 421875,  8918, 234375,  5824, 140625 }, /* 148.50/1.001 MHz */
++    { 148352, 11648, 421875,  8918, 234375,  5824, 140625 }, /* 148.50/1.001 MHz */
+     { 148500,  4096, 148500,  6272, 165000,  6144, 148500 }, /* 148.50       MHz */
+     {      0,  4096,      0,  6272,      0,  6144,      0 }  /* Other */
+ };
diff --git a/queue-3.10/drm-radeon-re-enable-sw-acr-support-on-pre-dce4.patch b/queue-3.10/drm-radeon-re-enable-sw-acr-support-on-pre-dce4.patch
new file mode 100644 (file)
index 0000000..106a64f
--- /dev/null
@@ -0,0 +1,30 @@
+From b852c985010a77c850b7548d64bbb964ca462b02 Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Thu, 10 Oct 2013 11:47:01 -0400
+Subject: drm/radeon: re-enable sw ACR support on pre-DCE4
+
+From: Alex Deucher <alexander.deucher@amd.com>
+
+commit b852c985010a77c850b7548d64bbb964ca462b02 upstream.
+
+HW ACR support may have issues on some older chips, so
+use SW ACR for now until we've tested further.
+
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+CC: Rafał Miłecki <zajec5@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/r600_hdmi.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/gpu/drm/radeon/r600_hdmi.c
++++ b/drivers/gpu/drm/radeon/r600_hdmi.c
+@@ -320,6 +320,7 @@ void r600_hdmi_setmode(struct drm_encode
+       }
+       WREG32(HDMI0_ACR_PACKET_CONTROL + offset,
++             HDMI0_ACR_SOURCE | /* select SW CTS value - XXX verify that hw CTS works on all families */
+              HDMI0_ACR_AUTO_SEND); /* allow hw to sent ACR packets when required */
+       WREG32(HDMI0_VBI_PACKET_CONTROL + offset,
diff --git a/queue-3.10/drm-radeon-use-64-bit-math-to-calculate-cts-values-for-audio-v2.patch b/queue-3.10/drm-radeon-use-64-bit-math-to-calculate-cts-values-for-audio-v2.patch
new file mode 100644 (file)
index 0000000..9e57bf2
--- /dev/null
@@ -0,0 +1,41 @@
+From 062c2e4363451d49ef840232fe65e8bff0dde2a5 Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Fri, 27 Sep 2013 18:09:54 -0400
+Subject: drm/radeon: use 64-bit math to calculate CTS values for audio (v2)
+
+From: Alex Deucher <alexander.deucher@amd.com>
+
+commit 062c2e4363451d49ef840232fe65e8bff0dde2a5 upstream.
+
+Avoid losing precision.  See bug:
+https://bugs.freedesktop.org/show_bug.cgi?id=69675
+
+v2: fix math as per Anssi's comments.
+
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/r600_hdmi.c |   11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/r600_hdmi.c
++++ b/drivers/gpu/drm/radeon/r600_hdmi.c
+@@ -75,8 +75,15 @@ static const struct radeon_hdmi_acr r600
+  */
+ static void r600_hdmi_calc_cts(uint32_t clock, int *CTS, int N, int freq)
+ {
+-      if (*CTS == 0)
+-              *CTS = clock * N / (128 * freq) * 1000;
++      u64 n;
++      u32 d;
++
++      if (*CTS == 0) {
++              n = (u64)clock * (u64)N * 1000ULL;
++              d = 128 * freq;
++              do_div(n, d);
++              *CTS = n;
++      }
+       DRM_DEBUG("Using ACR timing N=%d CTS=%d for frequency %d\n",
+                 N, *CTS, freq);
+ }
diff --git a/queue-3.10/drm-radeon-use-hw-generated-cts-n-values-for-audio.patch b/queue-3.10/drm-radeon-use-hw-generated-cts-n-values-for-audio.patch
new file mode 100644 (file)
index 0000000..c52f674
--- /dev/null
@@ -0,0 +1,49 @@
+From ee0fec312a1c4e26f255955da942562cd8908a4b Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Fri, 27 Sep 2013 18:22:15 -0400
+Subject: drm/radeon: use hw generated CTS/N values for audio
+
+From: Alex Deucher <alexander.deucher@amd.com>
+
+commit ee0fec312a1c4e26f255955da942562cd8908a4b upstream.
+
+Use the hw generated values rather than calculating
+them in the driver.  There may be some older r6xx
+asics where this doesn't work correctly.  This remains
+to be seen.
+
+See bug:
+https://bugs.freedesktop.org/show_bug.cgi?id=69675
+
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/evergreen_hdmi.c |    3 +--
+ drivers/gpu/drm/radeon/r600_hdmi.c      |    3 +--
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/evergreen_hdmi.c
++++ b/drivers/gpu/drm/radeon/evergreen_hdmi.c
+@@ -219,8 +219,7 @@ void evergreen_hdmi_setmode(struct drm_e
+       /* fglrx clears sth in AFMT_AUDIO_PACKET_CONTROL2 here */
+       WREG32(HDMI_ACR_PACKET_CONTROL + offset,
+-             HDMI_ACR_AUTO_SEND | /* allow hw to sent ACR packets when required */
+-             HDMI_ACR_SOURCE); /* select SW CTS value */
++             HDMI_ACR_AUTO_SEND); /* allow hw to sent ACR packets when required */
+       evergreen_hdmi_update_ACR(encoder, mode->clock);
+--- a/drivers/gpu/drm/radeon/r600_hdmi.c
++++ b/drivers/gpu/drm/radeon/r600_hdmi.c
+@@ -320,8 +320,7 @@ void r600_hdmi_setmode(struct drm_encode
+       }
+       WREG32(HDMI0_ACR_PACKET_CONTROL + offset,
+-             HDMI0_ACR_AUTO_SEND | /* allow hw to sent ACR packets when required */
+-             HDMI0_ACR_SOURCE); /* select SW CTS value */
++             HDMI0_ACR_AUTO_SEND); /* allow hw to sent ACR packets when required */
+       WREG32(HDMI0_VBI_PACKET_CONTROL + offset,
+              HDMI0_NULL_SEND | /* send null packets when required */
diff --git a/queue-3.10/hid-apple-option-to-swap-the-option-alt-and-command-flag-keys.patch b/queue-3.10/hid-apple-option-to-swap-the-option-alt-and-command-flag-keys.patch
new file mode 100644 (file)
index 0000000..005dd29
--- /dev/null
@@ -0,0 +1,68 @@
+From 43c831468b3d26dbe8f2e061ccaf1abaf9cc1b8b Mon Sep 17 00:00:00 2001
+From: Nanno Langstraat <langstr@gmail.com>
+Date: Mon, 14 Oct 2013 16:07:15 +0200
+Subject: HID: apple: option to swap the 'Option' ("Alt") and 'Command' ("Flag") keys.
+
+From: Nanno Langstraat <langstr@gmail.com>
+
+commit 43c831468b3d26dbe8f2e061ccaf1abaf9cc1b8b upstream.
+
+Use case: people who use both Apple and PC keyboards regularly, and desire to
+keep&use their PC muscle memory.
+
+A particular use case: an Apple compact external keyboard connected to a PC
+laptop. (This use case can't be covered well by X.org key remappings etc.)
+
+Signed-off-by: Nanno Langstraat <langstr@gmail.com>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/hid-apple.c |   22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+--- a/drivers/hid/hid-apple.c
++++ b/drivers/hid/hid-apple.c
+@@ -46,6 +46,12 @@ module_param(iso_layout, uint, 0644);
+ MODULE_PARM_DESC(iso_layout, "Enable/Disable hardcoded ISO-layout of the keyboard. "
+               "(0 = disabled, [1] = enabled)");
++static unsigned int swap_opt_cmd = 0;
++module_param(swap_opt_cmd, uint, 0644);
++MODULE_PARM_DESC(swap_opt_cmd, "Swap the Option (\"Alt\") and Command (\"Flag\") keys. "
++              "(For people who want to keep Windows PC keyboard muscle memory. "
++              "[0] = as-is, Mac layout. 1 = swapped, Windows layout.)");
++
+ struct apple_sc {
+       unsigned long quirks;
+       unsigned int fn_on;
+@@ -150,6 +156,14 @@ static const struct apple_key_translatio
+       { }
+ };
++static const struct apple_key_translation swapped_option_cmd_keys[] = {
++      { KEY_LEFTALT,  KEY_LEFTMETA },
++      { KEY_LEFTMETA, KEY_LEFTALT },
++      { KEY_RIGHTALT, KEY_RIGHTMETA },
++      { KEY_RIGHTMETA,KEY_RIGHTALT },
++      { }
++};
++
+ static const struct apple_key_translation *apple_find_translation(
+               const struct apple_key_translation *table, u16 from)
+ {
+@@ -242,6 +256,14 @@ static int hidinput_apple_event(struct h
+               }
+       }
++      if (swap_opt_cmd) {
++              trans = apple_find_translation(swapped_option_cmd_keys, usage->code);
++              if (trans) {
++                      input_event(input, usage->type, trans->to, value);
++                      return 1;
++              }
++      }
++
+       return 0;
+ }
diff --git a/queue-3.10/hid-enable-mayflash-usb-gamecube-adapter.patch b/queue-3.10/hid-enable-mayflash-usb-gamecube-adapter.patch
new file mode 100644 (file)
index 0000000..0eeaf49
--- /dev/null
@@ -0,0 +1,51 @@
+From e17f5d7667c5414b8f12a93ef14aae0824bd2beb Mon Sep 17 00:00:00 2001
+From: Tristan Rice <rice@outerearth.net>
+Date: Tue, 12 Nov 2013 19:06:23 +0100
+Subject: HID: enable Mayflash USB Gamecube Adapter
+
+From: Tristan Rice <rice@outerearth.net>
+
+commit e17f5d7667c5414b8f12a93ef14aae0824bd2beb upstream.
+
+This is a patch that adds the new Mayflash Gamecube Controller to USB adapter
+(ID 1a34:f705 ACRUX) to the ACRUX driver (drivers/hid/hid-axff.c) with full
+force feedback support.
+
+Signed-off-by: Tristan Rice <rice@outerearth.net>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/hid-axff.c |    3 ++-
+ drivers/hid/hid-core.c |    1 +
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/hid/hid-axff.c
++++ b/drivers/hid/hid-axff.c
+@@ -95,7 +95,7 @@ static int axff_init(struct hid_device *
+               }
+       }
+-      if (field_count < 4) {
++      if (field_count < 4 && hid->product != 0xf705) {
+               hid_err(hid, "not enough fields in the report: %d\n",
+                       field_count);
+               return -ENODEV;
+@@ -180,6 +180,7 @@ static void ax_remove(struct hid_device
+ static const struct hid_device_id ax_devices[] = {
+       { HID_USB_DEVICE(USB_VENDOR_ID_ACRUX, 0x0802), },
++      { HID_USB_DEVICE(USB_VENDOR_ID_ACRUX, 0xf705), },
+       { }
+ };
+ MODULE_DEVICE_TABLE(hid, ax_devices);
+--- a/drivers/hid/hid-core.c
++++ b/drivers/hid/hid-core.c
+@@ -1562,6 +1562,7 @@ static const struct hid_device_id hid_ha
+       { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_X5_005D) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_RP_649) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ACRUX, 0x0802) },
++      { HID_USB_DEVICE(USB_VENDOR_ID_ACRUX, 0xf705) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MIGHTYMOUSE) },
+       { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICMOUSE) },
+       { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICTRACKPAD) },
diff --git a/queue-3.10/hid-roccat-add-missing-special-driver-declarations.patch b/queue-3.10/hid-roccat-add-missing-special-driver-declarations.patch
new file mode 100644 (file)
index 0000000..60f0c17
--- /dev/null
@@ -0,0 +1,37 @@
+From e078809df5611600965f4d3420c3256260fc3e3d Mon Sep 17 00:00:00 2001
+From: Stefan Achatz <erazor_de@users.sourceforge.net>
+Date: Fri, 8 Nov 2013 14:12:00 +0100
+Subject: HID: roccat: add missing special driver declarations
+
+From: Stefan Achatz <erazor_de@users.sourceforge.net>
+
+commit e078809df5611600965f4d3420c3256260fc3e3d upstream.
+
+Forgot two special driver declarations and sorted the list.
+
+Signed-off-by: Stefan Achatz <erazor_de@users.sourceforge.net>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/hid-core.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/hid/hid-core.c
++++ b/drivers/hid/hid-core.c
+@@ -1751,12 +1751,14 @@ static const struct hid_device_id hid_ha
+       { HID_USB_DEVICE(USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_KEYBOARD) },
+ #if IS_ENABLED(CONFIG_HID_ROCCAT)
+-      { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONE) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_ARVO) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_ISKU) },
++      { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_ISKUFX) },
++      { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONE) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEPLUS) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEPURE) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEPURE_OPTICAL) },
++      { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEXTD) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KOVAPLUS) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_LUA) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_PYRA_WIRED) },
diff --git a/queue-3.10/hid-roccat-add-new-device-return-value.patch b/queue-3.10/hid-roccat-add-new-device-return-value.patch
new file mode 100644 (file)
index 0000000..5f0f1ea
--- /dev/null
@@ -0,0 +1,53 @@
+From 14fc4290df2fb94a28f39dab9ed32feaa5527bef Mon Sep 17 00:00:00 2001
+From: Stefan Achatz <erazor_de@users.sourceforge.net>
+Date: Mon, 28 Oct 2013 18:52:03 +0100
+Subject: HID: roccat: add new device return value
+
+From: Stefan Achatz <erazor_de@users.sourceforge.net>
+
+commit 14fc4290df2fb94a28f39dab9ed32feaa5527bef upstream.
+
+Ryos uses a new return value for critical errors, others have been
+confirmed.
+
+Signed-off-by: Stefan Achatz <erazor_de@users.sourceforge.net>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/hid-roccat-common.c |   12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/drivers/hid/hid-roccat-common.c
++++ b/drivers/hid/hid-roccat-common.c
+@@ -65,10 +65,11 @@ int roccat_common2_send(struct usb_devic
+ EXPORT_SYMBOL_GPL(roccat_common2_send);
+ enum roccat_common2_control_states {
+-      ROCCAT_COMMON_CONTROL_STATUS_OVERLOAD = 0,
++      ROCCAT_COMMON_CONTROL_STATUS_CRITICAL = 0,
+       ROCCAT_COMMON_CONTROL_STATUS_OK = 1,
+       ROCCAT_COMMON_CONTROL_STATUS_INVALID = 2,
+-      ROCCAT_COMMON_CONTROL_STATUS_WAIT = 3,
++      ROCCAT_COMMON_CONTROL_STATUS_BUSY = 3,
++      ROCCAT_COMMON_CONTROL_STATUS_CRITICAL_NEW = 4,
+ };
+ static int roccat_common2_receive_control_status(struct usb_device *usb_dev)
+@@ -88,13 +89,12 @@ static int roccat_common2_receive_contro
+               switch (control.value) {
+               case ROCCAT_COMMON_CONTROL_STATUS_OK:
+                       return 0;
+-              case ROCCAT_COMMON_CONTROL_STATUS_WAIT:
++              case ROCCAT_COMMON_CONTROL_STATUS_BUSY:
+                       msleep(500);
+                       continue;
+               case ROCCAT_COMMON_CONTROL_STATUS_INVALID:
+-
+-              case ROCCAT_COMMON_CONTROL_STATUS_OVERLOAD:
+-                      /* seems to be critical - replug necessary */
++              case ROCCAT_COMMON_CONTROL_STATUS_CRITICAL:
++              case ROCCAT_COMMON_CONTROL_STATUS_CRITICAL_NEW:
+                       return -EINVAL;
+               default:
+                       dev_err(&usb_dev->dev,
diff --git a/queue-3.10/hid-roccat-fix-coverity-cid-141438.patch b/queue-3.10/hid-roccat-fix-coverity-cid-141438.patch
new file mode 100644 (file)
index 0000000..928837d
--- /dev/null
@@ -0,0 +1,35 @@
+From 7be63f20b00840a6f1c718dcee00855688d64acd Mon Sep 17 00:00:00 2001
+From: Stefan Achatz <erazor_de@users.sourceforge.net>
+Date: Sun, 3 Nov 2013 06:25:33 +0100
+Subject: HID: roccat: fix Coverity CID 141438
+
+From: Stefan Achatz <erazor_de@users.sourceforge.net>
+
+commit 7be63f20b00840a6f1c718dcee00855688d64acd upstream.
+
+Add missing switch breaks.
+
+Signed-off-by: Stefan Achatz <erazor_de@users.sourceforge.net>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/hid-roccat-kovaplus.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/hid/hid-roccat-kovaplus.c
++++ b/drivers/hid/hid-roccat-kovaplus.c
+@@ -577,9 +577,13 @@ static void kovaplus_keep_values_up_to_d
+               break;
+       case KOVAPLUS_MOUSE_REPORT_BUTTON_TYPE_CPI:
+               kovaplus->actual_cpi = kovaplus_convert_event_cpi(button_report->data1);
++              break;
+       case KOVAPLUS_MOUSE_REPORT_BUTTON_TYPE_SENSITIVITY:
+               kovaplus->actual_x_sensitivity = button_report->data1;
+               kovaplus->actual_y_sensitivity = button_report->data2;
++              break;
++      default:
++              break;
+       }
+ }
diff --git a/queue-3.10/iwl3945-better-skb-management-in-rx-path.patch b/queue-3.10/iwl3945-better-skb-management-in-rx-path.patch
new file mode 100644 (file)
index 0000000..33a54a7
--- /dev/null
@@ -0,0 +1,101 @@
+From 45fe142cefa864b685615bcb930159f6749c3667 Mon Sep 17 00:00:00 2001
+From: Eric Dumazet <edumazet@google.com>
+Date: Fri, 28 Jun 2013 08:05:06 -0700
+Subject: iwl3945: better skb management in rx path
+
+From: Eric Dumazet <edumazet@google.com>
+
+commit 45fe142cefa864b685615bcb930159f6749c3667 upstream.
+
+Steinar reported reallocations of skb->head with IPv6, leading to
+a warning in skb_try_coalesce()
+
+It turns out iwl3945 has several problems :
+
+1) skb->truesize is underestimated.
+   We really consume PAGE_SIZE bytes for a fragment,
+   not the frame length.
+2) 128 bytes of initial headroom is a bit low and forces reallocations.
+3) We can avoid consuming a full page for small enough frames.
+
+Reported-by: Steinar H. Gunderson <sesse@google.com>
+Signed-off-by: Eric Dumazet <edumazet@google.com>
+Cc: Paul Stewart <pstew@google.com>
+Acked-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/iwlegacy/3945.c |   31 +++++++++++++++++++------------
+ 1 file changed, 19 insertions(+), 12 deletions(-)
+
+--- a/drivers/net/wireless/iwlegacy/3945.c
++++ b/drivers/net/wireless/iwlegacy/3945.c
+@@ -462,6 +462,8 @@ il3945_is_network_packet(struct il_priv
+       }
+ }
++#define SMALL_PACKET_SIZE 256
++
+ static void
+ il3945_pass_packet_to_mac80211(struct il_priv *il, struct il_rx_buf *rxb,
+                              struct ieee80211_rx_status *stats)
+@@ -470,14 +472,13 @@ il3945_pass_packet_to_mac80211(struct il
+       struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)IL_RX_DATA(pkt);
+       struct il3945_rx_frame_hdr *rx_hdr = IL_RX_HDR(pkt);
+       struct il3945_rx_frame_end *rx_end = IL_RX_END(pkt);
+-      u16 len = le16_to_cpu(rx_hdr->len);
++      u32 len = le16_to_cpu(rx_hdr->len);
+       struct sk_buff *skb;
+       __le16 fc = hdr->frame_control;
++      u32 fraglen = PAGE_SIZE << il->hw_params.rx_page_order;
+       /* We received data from the HW, so stop the watchdog */
+-      if (unlikely
+-          (len + IL39_RX_FRAME_SIZE >
+-           PAGE_SIZE << il->hw_params.rx_page_order)) {
++      if (unlikely(len + IL39_RX_FRAME_SIZE > fraglen)) {
+               D_DROP("Corruption detected!\n");
+               return;
+       }
+@@ -488,26 +489,32 @@ il3945_pass_packet_to_mac80211(struct il
+               return;
+       }
+-      skb = dev_alloc_skb(128);
++      skb = dev_alloc_skb(SMALL_PACKET_SIZE);
+       if (!skb) {
+               IL_ERR("dev_alloc_skb failed\n");
+               return;
+       }
+       if (!il3945_mod_params.sw_crypto)
+-              il_set_decrypted_flag(il, (struct ieee80211_hdr *)rxb_addr(rxb),
++              il_set_decrypted_flag(il, (struct ieee80211_hdr *)pkt,
+                                     le32_to_cpu(rx_end->status), stats);
+-      skb_add_rx_frag(skb, 0, rxb->page,
+-                      (void *)rx_hdr->payload - (void *)pkt, len,
+-                      len);
+-
++      /* If frame is small enough to fit into skb->head, copy it
++       * and do not consume a full page
++       */
++      if (len <= SMALL_PACKET_SIZE) {
++              memcpy(skb_put(skb, len), rx_hdr->payload, len);
++      } else {
++              skb_add_rx_frag(skb, 0, rxb->page,
++                              (void *)rx_hdr->payload - (void *)pkt, len,
++                              fraglen);
++              il->alloc_rxb_page--;
++              rxb->page = NULL;
++      }
+       il_update_stats(il, false, fc, len);
+       memcpy(IEEE80211_SKB_RXCB(skb), stats, sizeof(*stats));
+       ieee80211_rx(il->hw, skb);
+-      il->alloc_rxb_page--;
+-      rxb->page = NULL;
+ }
+ #define IL_DELAY_NEXT_SCAN_AFTER_ASSOC (HZ*6)
diff --git a/queue-3.10/iwl4965-better-skb-management-in-rx-path.patch b/queue-3.10/iwl4965-better-skb-management-in-rx-path.patch
new file mode 100644 (file)
index 0000000..169be27
--- /dev/null
@@ -0,0 +1,73 @@
+From c1de4a9557d9e25e41fc4ba034b9659152205539 Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Mon, 1 Jul 2013 14:19:30 +0200
+Subject: iwl4965: better skb management in rx path
+
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+
+commit c1de4a9557d9e25e41fc4ba034b9659152205539 upstream.
+
+4965 version of Eric patch "iwl3945: better skb management in rx path".
+It fixes several problems :
+
+1) skb->truesize is underestimated.
+   We really consume PAGE_SIZE bytes for a fragment,
+   not the frame length.
+2) 128 bytes of initial headroom is a bit low and forces reallocations.
+3) We can avoid consuming a full page for small enough frames.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Acked-by: Eric Dumazet <edumazet@google.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/iwlegacy/4965-mac.c |   18 ++++++++++++------
+ 1 file changed, 12 insertions(+), 6 deletions(-)
+
+--- a/drivers/net/wireless/iwlegacy/4965-mac.c
++++ b/drivers/net/wireless/iwlegacy/4965-mac.c
+@@ -574,9 +574,11 @@ il4965_translate_rx_status(struct il_pri
+       return decrypt_out;
+ }
++#define SMALL_PACKET_SIZE 256
++
+ static void
+ il4965_pass_packet_to_mac80211(struct il_priv *il, struct ieee80211_hdr *hdr,
+-                             u16 len, u32 ampdu_status, struct il_rx_buf *rxb,
++                             u32 len, u32 ampdu_status, struct il_rx_buf *rxb,
+                              struct ieee80211_rx_status *stats)
+ {
+       struct sk_buff *skb;
+@@ -593,21 +595,25 @@ il4965_pass_packet_to_mac80211(struct il
+           il_set_decrypted_flag(il, hdr, ampdu_status, stats))
+               return;
+-      skb = dev_alloc_skb(128);
++      skb = dev_alloc_skb(SMALL_PACKET_SIZE);
+       if (!skb) {
+               IL_ERR("dev_alloc_skb failed\n");
+               return;
+       }
+-      skb_add_rx_frag(skb, 0, rxb->page, (void *)hdr - rxb_addr(rxb), len,
+-                      len);
++      if (len <= SMALL_PACKET_SIZE) {
++              memcpy(skb_put(skb, len), hdr, len);
++      } else {
++              skb_add_rx_frag(skb, 0, rxb->page, (void *)hdr - rxb_addr(rxb),
++                              len, PAGE_SIZE << il->hw_params.rx_page_order);
++              il->alloc_rxb_page--;
++              rxb->page = NULL;
++      }
+       il_update_stats(il, false, fc, len);
+       memcpy(IEEE80211_SKB_RXCB(skb), stats, sizeof(*stats));
+       ieee80211_rx(il->hw, skb);
+-      il->alloc_rxb_page--;
+-      rxb->page = NULL;
+ }
+ /* Called for N_RX (legacy ABG frames), or
diff --git a/queue-3.10/iwlwifi-don-t-warn-on-host-commands-sent-when-firmware-is-dead.patch b/queue-3.10/iwlwifi-don-t-warn-on-host-commands-sent-when-firmware-is-dead.patch
new file mode 100644 (file)
index 0000000..6558bac
--- /dev/null
@@ -0,0 +1,36 @@
+From 8ca95995e64f5d270889badb3e449dca91106a2b Mon Sep 17 00:00:00 2001
+From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Date: Sun, 15 Sep 2013 11:37:17 +0300
+Subject: iwlwifi: don't WARN on host commands sent when firmware is dead
+
+From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+
+commit 8ca95995e64f5d270889badb3e449dca91106a2b upstream.
+
+This triggers automatic bug reports and add no valuable
+information. Print a simple error instead and drop the
+host command.
+
+Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/iwlwifi/iwl-trans.h |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/iwlwifi/iwl-trans.h
++++ b/drivers/net/wireless/iwlwifi/iwl-trans.h
+@@ -605,8 +605,10 @@ static inline int iwl_trans_send_cmd(str
+ {
+       int ret;
+-      WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
+-                "%s bad state = %d", __func__, trans->state);
++      if (trans->state != IWL_TRANS_FW_ALIVE) {
++              IWL_ERR(trans, "%s bad state = %d", __func__, trans->state);
++              return -EIO;
++      }
+       if (!(cmd->flags & CMD_ASYNC))
+               lock_map_acquire_read(&trans->sync_cmd_lockdep_map);
diff --git a/queue-3.10/media-cx23885-fix-tevii-s471-regression-since-introduction-of-ts2020.patch b/queue-3.10/media-cx23885-fix-tevii-s471-regression-since-introduction-of-ts2020.patch
new file mode 100644 (file)
index 0000000..a70fe6b
--- /dev/null
@@ -0,0 +1,33 @@
+From b43ea8068d2090cb1e44632c8a938ab40d2c7419 Mon Sep 17 00:00:00 2001
+From: Johannes Koch <johannes@ortsraum.de>
+Date: Wed, 17 Jul 2013 14:28:16 -0300
+Subject: media: cx23885: Fix TeVii S471 regression since introduction of ts2020
+
+From: Johannes Koch <johannes@ortsraum.de>
+
+commit b43ea8068d2090cb1e44632c8a938ab40d2c7419 upstream.
+
+Patch to make TeVii S471 cards use the ts2020 tuner, since ds3000 driver no
+longer contains tuning code.
+
+Signed-off-by: Johannes Koch <johannes@ortsraum.de>
+Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/media/pci/cx23885/cx23885-dvb.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/media/pci/cx23885/cx23885-dvb.c
++++ b/drivers/media/pci/cx23885/cx23885-dvb.c
+@@ -1249,6 +1249,10 @@ static int dvb_register(struct cx23885_t
+               fe0->dvb.frontend = dvb_attach(ds3000_attach,
+                                       &tevii_ds3000_config,
+                                       &i2c_bus->i2c_adap);
++              if (fe0->dvb.frontend != NULL) {
++                      dvb_attach(ts2020_attach, fe0->dvb.frontend,
++                              &tevii_ts2020_config, &i2c_bus->i2c_adap);
++              }
+               break;
+       case CX23885_BOARD_PROF_8000:
+               i2c_bus = &dev->i2c_bus[0];
diff --git a/queue-3.10/netfilter-nf_conntrack-use-rcu-safe-kfree-for-conntrack-extensions.patch b/queue-3.10/netfilter-nf_conntrack-use-rcu-safe-kfree-for-conntrack-extensions.patch
new file mode 100644 (file)
index 0000000..1fa0996
--- /dev/null
@@ -0,0 +1,35 @@
+From c13a84a830a208fb3443628773c8ca0557773cc7 Mon Sep 17 00:00:00 2001
+From: Michal Kubecek <mkubecek@suse.cz>
+Date: Wed, 11 Sep 2013 10:17:27 +0200
+Subject: netfilter: nf_conntrack: use RCU safe kfree for conntrack extensions
+
+From: Michal Kubecek <mkubecek@suse.cz>
+
+commit c13a84a830a208fb3443628773c8ca0557773cc7 upstream.
+
+Commit 68b80f11 (netfilter: nf_nat: fix RCU races) introduced
+RCU protection for freeing extension data when reallocation
+moves them to a new location. We need the same protection when
+freeing them in nf_ct_ext_free() in order to prevent a
+use-after-free by other threads referencing a NAT extension data
+via bysource list.
+
+Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
+Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ include/net/netfilter/nf_conntrack_extend.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/include/net/netfilter/nf_conntrack_extend.h
++++ b/include/net/netfilter/nf_conntrack_extend.h
+@@ -80,7 +80,7 @@ static inline void nf_ct_ext_destroy(str
+ static inline void nf_ct_ext_free(struct nf_conn *ct)
+ {
+       if (ct->ext)
+-              kfree(ct->ext);
++              kfree_rcu(ct->ext, rcu);
+ }
+ /* Add this type, returns pointer to data or NULL. */
index 69e47b1cdf1e8ca2a723b27611f11ee2ac23a95d..92f8e3a56164a0437c4a8ead8b2e6e3c17e45b2b 100644 (file)
@@ -156,3 +156,17 @@ media-dvb-frontends-don-t-use-dynamic-static-allocation.patch
 media-dvb-frontends-again-don-t-use-dynamic-static-allocation.patch
 media-s5h1420-don-t-use-dynamic-static-allocation.patch
 x.509-remove-certificate-date-checks.patch
+hid-roccat-add-new-device-return-value.patch
+hid-roccat-fix-coverity-cid-141438.patch
+hid-roccat-add-missing-special-driver-declarations.patch
+hid-enable-mayflash-usb-gamecube-adapter.patch
+hid-apple-option-to-swap-the-option-alt-and-command-flag-keys.patch
+drm-radeon-use-64-bit-math-to-calculate-cts-values-for-audio-v2.patch
+drm-radeon-fix-n-cts-clock-matching-for-audio.patch
+drm-radeon-use-hw-generated-cts-n-values-for-audio.patch
+drm-radeon-re-enable-sw-acr-support-on-pre-dce4.patch
+iwlwifi-don-t-warn-on-host-commands-sent-when-firmware-is-dead.patch
+netfilter-nf_conntrack-use-rcu-safe-kfree-for-conntrack-extensions.patch
+media-cx23885-fix-tevii-s471-regression-since-introduction-of-ts2020.patch
+iwl3945-better-skb-management-in-rx-path.patch
+iwl4965-better-skb-management-in-rx-path.patch