summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/rtlwifi/rtl8192se
diff options
context:
space:
mode:
authorLarry Finger <Larry.Finger@lwfinger.net>2014-04-25 19:05:43 +0400
committerJiri Slaby <jslaby@suse.cz>2014-06-18 13:17:31 +0400
commitbb15aa8c7ad5a323914de79bc8cc6fa47cb34a68 (patch)
tree7a662253cdec4aad6b0f10a97abcbb0cfdafd6ce /drivers/net/wireless/rtlwifi/rtl8192se
parent55d5f044a1fc96a74e4470e318c0a24f27a9ab7e (diff)
downloadlinux-bb15aa8c7ad5a323914de79bc8cc6fa47cb34a68.tar.xz
rtlwifi: rtl8192se: Fix regression due to commit 1bf4bbb
commit 5f9186990ec4579ee5b7a99b3254c29eda479f36 upstream. Beginning with kernel 3.13, this driver fails on some systems. The problem was bisected to: Commit 1bf4bbb4024dcdab5e57634dd8ae1072d42a53ac Author: Felix Fietkau <nbd@openwrt.org> Title: mac80211: send control port protocol frames to the VO queue There is noting wrong with the above commit. The regression occurs because V0 queue on RTL8192SE cards uses priority 6, not the usual 7. The fix is to modify the rtl8192se routine that sets the correct transmit queue. Bug: https://bugzilla.kernel.org/show_bug.cgi?id=74541 Reported-by: Alex Miller <almiller_1@yahoo.co.uk> Tested-by: Alex Miller <almiller_1@yahoo.co.uk> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Stable <stable@vger.kernel.org> [3.13+] Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Diffstat (limited to 'drivers/net/wireless/rtlwifi/rtl8192se')
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/trx.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/trx.c b/drivers/net/wireless/rtlwifi/rtl8192se/trx.c
index 7d0f2e20f1a2..c240b7591cf0 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/trx.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/trx.c
@@ -49,6 +49,12 @@ static u8 _rtl92se_map_hwqueue_to_fwqueue(struct sk_buff *skb, u8 skb_queue)
if (ieee80211_is_nullfunc(fc))
return QSLT_HIGH;
+ /* Kernel commit 1bf4bbb4024dcdab changed EAPOL packets to use
+ * queue V0 at priority 7; however, the RTL8192SE appears to have
+ * that queue at priority 6
+ */
+ if (skb->priority == 7)
+ return QSLT_VO;
return skb->priority;
}