]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
rtlwifi: rtl_pci: Fix the bug when inactiveps is enabled.
authorTsang-Shian Lin <thlin@realtek.com>
Sat, 9 Dec 2017 17:37:10 +0000 (11:37 -0600)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 14 Dec 2017 12:43:03 +0000 (14:43 +0200)
Reset the driver current tx read/write index to zero when inactiveps
nic out of sync with HW state. Wrong driver tx read/write index will
cause Tx fail.

Signed-off-by: Tsang-Shian Lin <thlin@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Yan-Hsuan Chuang <yhchuang@realtek.com>
Cc: Birming Chiu <birming@realtek.com>
Cc: Shaofu <shaofu@realtek.com>
Cc: Steven Ting <steventing@realtek.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/realtek/rtlwifi/pci.c

index 8ae36a263426df4950e33e1ba3d835a0e353d2a4..4013394fac330d84e839e7e1060fb7ead25933d6 100644 (file)
@@ -1555,7 +1555,14 @@ int rtl_pci_reset_trx_ring(struct ieee80211_hw *hw)
                                dev_kfree_skb_irq(skb);
                                ring->idx = (ring->idx + 1) % ring->entries;
                        }
+
+                       if (rtlpriv->use_new_trx_flow) {
+                               rtlpci->tx_ring[i].cur_tx_rp = 0;
+                               rtlpci->tx_ring[i].cur_tx_wp = 0;
+                       }
+
                        ring->idx = 0;
+                       ring->entries = rtlpci->txringcount[i];
                }
        }
        spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags);