| From 5f9186990ec4579ee5b7a99b3254c29eda479f36 Mon Sep 17 00:00:00 2001 |
| From: Larry Finger <Larry.Finger@lwfinger.net> |
| Date: Fri, 25 Apr 2014 10:05:43 -0500 |
| Subject: rtlwifi: rtl8192se: Fix regression due to commit 1bf4bbb |
| |
| From: Larry Finger <Larry.Finger@lwfinger.net> |
| |
| 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> |
| Signed-off-by: John W. Linville <linville@tuxdriver.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/wireless/rtlwifi/rtl8192se/trx.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| --- 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_fwqueu |
| 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; |
| } |
| |