[kernel] r16886 - in dists/squeeze/linux-2.6/debian: . patches/bugfix/all patches/series
Ben Hutchings
benh at alioth.debian.org
Mon Feb 14 23:40:57 UTC 2011
Author: benh
Date: Mon Feb 14 23:40:50 2011
New Revision: 16886
Log:
rt2500usb: Fall back to SW encryption for TKIP+AES (Closes: #611390)
Added:
dists/squeeze/linux-2.6/debian/patches/bugfix/all/rt2500usb-fallback-to-SW-encryption-for-TKIP-AES.patch
Modified:
dists/squeeze/linux-2.6/debian/changelog
dists/squeeze/linux-2.6/debian/patches/series/31
Modified: dists/squeeze/linux-2.6/debian/changelog
==============================================================================
--- dists/squeeze/linux-2.6/debian/changelog Mon Feb 14 23:24:45 2011 (r16885)
+++ dists/squeeze/linux-2.6/debian/changelog Mon Feb 14 23:40:50 2011 (r16886)
@@ -15,6 +15,7 @@
* linux-base: Convert LILO entries for /boot/vmlinuz, /boot/vmlinuz.old
(Closes: #613200)
* aufs: Fix VM race leading to kernel panic (Closes: #607879)
+ * rt2500usb: Fall back to SW encryption for TKIP+AES (Closes: #611390)
[ dann frazier ]
* xfs: fix information leak using stale NFS handle (CVE-2010-2943)
Added: dists/squeeze/linux-2.6/debian/patches/bugfix/all/rt2500usb-fallback-to-SW-encryption-for-TKIP-AES.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze/linux-2.6/debian/patches/bugfix/all/rt2500usb-fallback-to-SW-encryption-for-TKIP-AES.patch Mon Feb 14 23:40:50 2011 (r16886)
@@ -0,0 +1,59 @@
+From 75f64dd54a185150ebfc45e99351c890d4a2252f Mon Sep 17 00:00:00 2001
+From: Ondrej Zary <linux at rainbow-software.org>
+Date: Wed, 23 Jun 2010 12:57:15 +0200
+Subject: [PATCH] rt2500usb: fallback to SW encryption for TKIP+AES
+
+HW crypto in rt2500usb does not seem to support keys with different ciphers,
+which breaks TKIP+AES mode. Fall back to software encryption to fix it.
+
+This should fix long-standing problems with rt2500usb and WPA, such as:
+http://rt2x00.serialmonkey.com/phpBB/viewtopic.php?f=4&t=4834
+https://bugzilla.redhat.com/show_bug.cgi?id=484888
+
+Also tested that it does not break WEP, TKIP-only and AES-only modes.
+
+Signed-off-by: Ondrej Zary <linux at rainbow-software.org>
+Acked-by: Gertjan van Wingerde <gwingerde at gmail.com>
+Signed-off-by: John W. Linville <linville at tuxdriver.com>
+---
+ drivers/net/wireless/rt2x00/rt2500usb.c | 10 ++++++++++
+ 1 files changed, 10 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c
+index 002db64..963238c 100644
+--- a/drivers/net/wireless/rt2x00/rt2500usb.c
++++ b/drivers/net/wireless/rt2x00/rt2500usb.c
+@@ -347,6 +347,7 @@ static int rt2500usb_config_key(struct rt2x00_dev *rt2x00dev,
+ {
+ u32 mask;
+ u16 reg;
++ enum cipher curr_cipher;
+
+ if (crypto->cmd == SET_KEY) {
+ /*
+@@ -357,6 +358,7 @@ static int rt2500usb_config_key(struct rt2x00_dev *rt2x00dev,
+ mask = TXRX_CSR0_KEY_ID.bit_mask;
+
+ rt2500usb_register_read(rt2x00dev, TXRX_CSR0, ®);
++ curr_cipher = rt2x00_get_field16(reg, TXRX_CSR0_ALGORITHM);
+ reg &= mask;
+
+ if (reg && reg == mask)
+@@ -365,6 +367,14 @@ static int rt2500usb_config_key(struct rt2x00_dev *rt2x00dev,
+ reg = rt2x00_get_field16(reg, TXRX_CSR0_KEY_ID);
+
+ key->hw_key_idx += reg ? ffz(reg) : 0;
++ /*
++ * Hardware requires that all keys use the same cipher
++ * (e.g. TKIP-only, AES-only, but not TKIP+AES).
++ * If this is not the first key, compare the cipher with the
++ * first one and fall back to SW crypto if not the same.
++ */
++ if (key->hw_key_idx > 0 && crypto->cipher != curr_cipher)
++ return -EOPNOTSUPP;
+
+ rt2500usb_register_multiwrite(rt2x00dev, reg,
+ crypto->key, sizeof(crypto->key));
+--
+1.7.2.3
+
Modified: dists/squeeze/linux-2.6/debian/patches/series/31
==============================================================================
--- dists/squeeze/linux-2.6/debian/patches/series/31 Mon Feb 14 23:24:45 2011 (r16885)
+++ dists/squeeze/linux-2.6/debian/patches/series/31 Mon Feb 14 23:40:50 2011 (r16886)
@@ -18,3 +18,4 @@
+ features/all/aufs2/Revert-aufs-bugfix-unlock-mmap_sem-temporary-using-B.patch
+ features/all/aufs2/aufs-bugfix-another-approach-to-keep-the-lock-order-.patch
+ features/all/aufs2/aufs-bugfix-separate-the-workqueue-for-preprocessing.patch
++ bugfix/all/rt2500usb-fallback-to-SW-encryption-for-TKIP-AES.patch
More information about the Kernel-svn-changes
mailing list