Author: nbd
Date: 2014-06-12 16:44:23 +0200 (Thu, 12 Jun 2014)
New Revision: 41161

Modified:
   trunk/package/kernel/mac80211/patches/300-pending_work.patch
Log:
rt2x00: fix crash when using TKIP on USB devices

Signed-off-by: Felix Fietkau <[email protected]>

Modified: trunk/package/kernel/mac80211/patches/300-pending_work.patch
===================================================================
--- trunk/package/kernel/mac80211/patches/300-pending_work.patch        
2014-06-12 14:35:09 UTC (rev 41160)
+++ trunk/package/kernel/mac80211/patches/300-pending_work.patch        
2014-06-12 14:44:23 UTC (rev 41161)
@@ -1,3 +1,41 @@
+commit 1186edbef91f15722e5bdf56326ce0abc2935ce7
+Author: Stanislaw Gruszka <[email protected]>
+Date:   Tue Jun 10 12:51:06 2014 +0200
+
+    rt2x00: disable TKIP on USB
+    
+    On USB we can not get atomically TKIP key. We have to disable support
+    for TKIP acceleration on USB hardware to avoid bug as showed bellow.
+    
+    [  860.827243] BUG: scheduling while atomic: hostapd/3397/0x00000002
+    <snip>
+    [  860.827280] Call Trace:
+    [  860.827282]  [<ffffffff81682ea6>] dump_stack+0x4d/0x66
+    [  860.827284]  [<ffffffff8167eb9b>] __schedule_bug+0x47/0x55
+    [  860.827285]  [<ffffffff81685bb3>] __schedule+0x733/0x7b0
+    [  860.827287]  [<ffffffff81685c59>] schedule+0x29/0x70
+    [  860.827289]  [<ffffffff81684f8a>] schedule_timeout+0x15a/0x2b0
+    [  860.827291]  [<ffffffff8105ac50>] ? ftrace_raw_event_tick_stop+0xc0/0xc0
+    [  860.827294]  [<ffffffff810c13c2>] ? __module_text_address+0x12/0x70
+    [  860.827296]  [<ffffffff81686823>] wait_for_completion_timeout+0xb3/0x140
+    [  860.827298]  [<ffffffff81080fc0>] ? wake_up_state+0x20/0x20
+    [  860.827301]  [<ffffffff814d5b3d>] usb_start_wait_urb+0x7d/0x150
+    [  860.827303]  [<ffffffff814d5cd5>] usb_control_msg+0xc5/0x110
+    [  860.827305]  [<ffffffffa02fb0c6>] rt2x00usb_vendor_request+0xc6/0x160  
[rt2x00usb]
+    [  860.827307]  [<ffffffffa02fb215>] 
rt2x00usb_vendor_req_buff_lock+0x75/0x150 [rt2x00usb]
+    [  860.827309]  [<ffffffffa02fb393>] 
rt2x00usb_vendor_request_buff+0xa3/0xe0 [rt2x00usb]
+    [  860.827311]  [<ffffffffa023d1a3>] 
rt2x00usb_register_multiread+0x33/0x40 [rt2800usb]
+    [  860.827314]  [<ffffffffa05805f9>] rt2800_get_tkip_seq+0x39/0x50  
[rt2800lib]
+    [  860.827321]  [<ffffffffa0480f88>] ieee80211_get_key+0x218/0x2a0  
[mac80211]
+    [  860.827322]  [<ffffffff815cc68c>] ? __nlmsg_put+0x6c/0x80
+    [  860.827329]  [<ffffffffa051b02e>] nl80211_get_key+0x22e/0x360 [cfg80211]
+    
+    Cc: [email protected]
+    Reported-and-tested-by: Peter Wu <[email protected]>
+    Reported-and-tested-by: Pontus Fuchs <[email protected]>
+    Signed-off-by: Stanislaw Gruszka <[email protected]>
+    Signed-off-by: John W. Linville <[email protected]>
+
 commit 5f313a15da92dda80ac4c9a137bc42d7d0b49adf
 Author: Rafał Miłecki <[email protected]>
 Date:   Thu Jun 12 09:28:38 2014 +0200
@@ -1243,7 +1281,16 @@
  void rt2x00lib_beacondone(struct rt2x00_dev *rt2x00dev)
 --- a/drivers/net/wireless/rt2x00/rt2x00mac.c
 +++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
-@@ -624,25 +624,24 @@ void rt2x00mac_bss_info_changed(struct i
+@@ -487,6 +487,8 @@ int rt2x00mac_set_key(struct ieee80211_h
+       crypto.cipher = rt2x00crypto_key_to_cipher(key);
+       if (crypto.cipher == CIPHER_NONE)
+               return -EOPNOTSUPP;
++      if (crypto.cipher == CIPHER_TKIP && rt2x00_is_usb(rt2x00dev))
++              return -EOPNOTSUPP;
+ 
+       crypto.cmd = cmd;
+ 
+@@ -624,25 +626,24 @@ void rt2x00mac_bss_info_changed(struct i
         * Start/stop beaconing.
         */
        if (changes & BSS_CHANGED_BEACON_ENABLED) {
@@ -1276,7 +1323,7 @@
                } else if (bss_conf->enable_beacon && !intf->enable_beacon) {
                        rt2x00dev->intf_beaconing++;
                        intf->enable_beacon = true;
-@@ -658,11 +657,10 @@ void rt2x00mac_bss_info_changed(struct i
+@@ -658,11 +659,10 @@ void rt2x00mac_bss_info_changed(struct i
                                 * First beaconing interface enabled
                                 * -> start beacon queue.
                                 */
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to