aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwifiex/pcie.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/mwifiex/pcie.c')
-rw-r--r--drivers/net/wireless/mwifiex/pcie.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/net/wireless/mwifiex/pcie.c b/drivers/net/wireless/mwifiex/pcie.c
index 2ada1b709778..1504b16e248e 100644
--- a/drivers/net/wireless/mwifiex/pcie.c
+++ b/drivers/net/wireless/mwifiex/pcie.c
@@ -1233,6 +1233,7 @@ static int mwifiex_pcie_process_recv_data(struct mwifiex_adapter *adapter)
1233 struct sk_buff *skb_tmp = NULL; 1233 struct sk_buff *skb_tmp = NULL;
1234 struct mwifiex_pcie_buf_desc *desc; 1234 struct mwifiex_pcie_buf_desc *desc;
1235 struct mwifiex_pfu_buf_desc *desc2; 1235 struct mwifiex_pfu_buf_desc *desc2;
1236 unsigned long flags;
1236 1237
1237 if (!mwifiex_pcie_ok_to_access_hw(adapter)) 1238 if (!mwifiex_pcie_ok_to_access_hw(adapter))
1238 mwifiex_pm_wakeup_card(adapter); 1239 mwifiex_pm_wakeup_card(adapter);
@@ -1283,7 +1284,16 @@ static int mwifiex_pcie_process_recv_data(struct mwifiex_adapter *adapter)
1283 "info: RECV DATA: Rd=%#x, Wr=%#x, Len=%d\n", 1284 "info: RECV DATA: Rd=%#x, Wr=%#x, Len=%d\n",
1284 card->rxbd_rdptr, wrptr, rx_len); 1285 card->rxbd_rdptr, wrptr, rx_len);
1285 skb_pull(skb_data, INTF_HEADER_LEN); 1286 skb_pull(skb_data, INTF_HEADER_LEN);
1286 mwifiex_handle_rx_packet(adapter, skb_data); 1287 if (adapter->rx_work_enabled) {
1288 spin_lock_irqsave(&adapter->rx_q_lock, flags);
1289 skb_queue_tail(&adapter->rx_data_q, skb_data);
1290 spin_unlock_irqrestore(&adapter->rx_q_lock,
1291 flags);
1292 adapter->data_received = true;
1293 atomic_inc(&adapter->rx_pending);
1294 } else {
1295 mwifiex_handle_rx_packet(adapter, skb_data);
1296 }
1287 } 1297 }
1288 1298
1289 skb_tmp = dev_alloc_skb(MWIFIEX_RX_DATA_BUF_SIZE); 1299 skb_tmp = dev_alloc_skb(MWIFIEX_RX_DATA_BUF_SIZE);