|
@@ -38,14 +38,10 @@
|
|
|
*
|
|
|
* The completion callback is called after processing in complete.
|
|
|
*/
|
|
|
-int mwifiex_process_rx_packet(struct mwifiex_adapter *adapter,
|
|
|
+int mwifiex_process_rx_packet(struct mwifiex_private *priv,
|
|
|
struct sk_buff *skb)
|
|
|
{
|
|
|
int ret;
|
|
|
- struct mwifiex_rxinfo *rx_info = MWIFIEX_SKB_RXCB(skb);
|
|
|
- struct mwifiex_private *priv =
|
|
|
- mwifiex_get_priv_by_id(adapter, rx_info->bss_num,
|
|
|
- rx_info->bss_type);
|
|
|
struct rx_packet_hdr *rx_pkt_hdr;
|
|
|
struct rxpd *local_rx_pd;
|
|
|
int hdr_chop;
|
|
@@ -98,9 +94,9 @@ int mwifiex_process_rx_packet(struct mwifiex_adapter *adapter,
|
|
|
|
|
|
priv->rxpd_htinfo = local_rx_pd->ht_info;
|
|
|
|
|
|
- ret = mwifiex_recv_packet(adapter, skb);
|
|
|
+ ret = mwifiex_recv_packet(priv, skb);
|
|
|
if (ret == -1)
|
|
|
- dev_err(adapter->dev, "recv packet failed\n");
|
|
|
+ dev_err(priv->adapter->dev, "recv packet failed\n");
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
@@ -117,21 +113,15 @@ int mwifiex_process_rx_packet(struct mwifiex_adapter *adapter,
|
|
|
*
|
|
|
* The completion callback is called after processing in complete.
|
|
|
*/
|
|
|
-int mwifiex_process_sta_rx_packet(struct mwifiex_adapter *adapter,
|
|
|
+int mwifiex_process_sta_rx_packet(struct mwifiex_private *priv,
|
|
|
struct sk_buff *skb)
|
|
|
{
|
|
|
+ struct mwifiex_adapter *adapter = priv->adapter;
|
|
|
int ret = 0;
|
|
|
struct rxpd *local_rx_pd;
|
|
|
- struct mwifiex_rxinfo *rx_info = MWIFIEX_SKB_RXCB(skb);
|
|
|
struct rx_packet_hdr *rx_pkt_hdr;
|
|
|
u8 ta[ETH_ALEN];
|
|
|
u16 rx_pkt_type, rx_pkt_offset, rx_pkt_length, seq_num;
|
|
|
- struct mwifiex_private *priv =
|
|
|
- mwifiex_get_priv_by_id(adapter, rx_info->bss_num,
|
|
|
- rx_info->bss_type);
|
|
|
-
|
|
|
- if (!priv)
|
|
|
- return -1;
|
|
|
|
|
|
local_rx_pd = (struct rxpd *) (skb->data);
|
|
|
rx_pkt_type = le16_to_cpu(local_rx_pd->rx_pkt_type);
|
|
@@ -169,13 +159,13 @@ int mwifiex_process_sta_rx_packet(struct mwifiex_adapter *adapter,
|
|
|
|
|
|
while (!skb_queue_empty(&list)) {
|
|
|
rx_skb = __skb_dequeue(&list);
|
|
|
- ret = mwifiex_recv_packet(adapter, rx_skb);
|
|
|
+ ret = mwifiex_recv_packet(priv, rx_skb);
|
|
|
if (ret == -1)
|
|
|
dev_err(adapter->dev, "Rx of A-MSDU failed");
|
|
|
}
|
|
|
return 0;
|
|
|
} else if (rx_pkt_type == PKT_TYPE_MGMT) {
|
|
|
- ret = mwifiex_process_mgmt_packet(adapter, skb);
|
|
|
+ ret = mwifiex_process_mgmt_packet(priv, skb);
|
|
|
if (ret)
|
|
|
dev_err(adapter->dev, "Rx of mgmt packet failed");
|
|
|
dev_kfree_skb_any(skb);
|
|
@@ -188,7 +178,7 @@ int mwifiex_process_sta_rx_packet(struct mwifiex_adapter *adapter,
|
|
|
*/
|
|
|
if (!IS_11N_ENABLED(priv) ||
|
|
|
memcmp(priv->curr_addr, rx_pkt_hdr->eth803_hdr.h_dest, ETH_ALEN)) {
|
|
|
- mwifiex_process_rx_packet(adapter, skb);
|
|
|
+ mwifiex_process_rx_packet(priv, skb);
|
|
|
return ret;
|
|
|
}
|
|
|
|