mwifiex: fix empty TX ring check for PCIe8897 while unloading driver
authorAvinash Patil <patila@marvell.com>
Sat, 16 Feb 2013 05:37:54 +0000 (21:37 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 18 Feb 2013 20:30:39 +0000 (15:30 -0500)
While unloading driver, we free all pending TX packets by flushing
TX ring. There is unhandled case for PCIE8897 while checking for
ring empty condition.

This patch adds the handling by calling mwifiex_pcie_txbd_empty().

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mwifiex/pcie.c

index 492655c048d1c44ee069e27508bb5e1fd9db6efb..4b54bcf382f379abdf0360f5a7b50347538d24c6 100644 (file)
@@ -1023,10 +1023,7 @@ static int mwifiex_pcie_send_data_complete(struct mwifiex_adapter *adapter)
                adapter->data_sent = false;
 
        if (card->txbd_flush) {
-               if (((card->txbd_wrptr & reg->tx_mask) ==
-                    (card->txbd_rdptr & reg->tx_mask)) &&
-                   ((card->txbd_wrptr & reg->tx_rollover_ind) !=
-                    (card->txbd_rdptr & reg->tx_rollover_ind)))
+               if (mwifiex_pcie_txbd_empty(card, card->txbd_rdptr))
                        card->txbd_flush = 0;
                else
                        mwifiex_clean_pcie_ring_buf(adapter);