[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, &reg);
++		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