47 mwifiex_get_priv_by_id(adapter, rx_info->
bss_num,
50 struct rxpd *local_rx_pd;
53 u8 rfc1042_eth_hdr[
ETH_ALEN] = { 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00 };
55 local_rx_pd = (
struct rxpd *) (skb->
data);
57 rx_pkt_hdr = (
void *)local_rx_pd +
61 rfc1042_eth_hdr,
sizeof(rfc1042_eth_hdr))) {
71 eth_hdr = (
struct ethhdr *)
86 hdr_chop = (
u8 *) eth_hdr - (
u8 *) local_rx_pd;
103 dev_err(adapter->
dev,
"recv packet failed\n");
124 struct rxpd *local_rx_pd;
128 u16 rx_pkt_type, rx_pkt_offset, rx_pkt_length,
seq_num;
130 mwifiex_get_priv_by_id(adapter, rx_info->
bss_num,
136 local_rx_pd = (
struct rxpd *) (skb->
data);
142 rx_pkt_hdr = (
void *)local_rx_pd + rx_pkt_offset;
144 if ((rx_pkt_offset + rx_pkt_length) > (
u16) skb->
len) {
146 "wrong rx packet: len=%d, rx_pkt_offset=%d, rx_pkt_length=%d\n",
147 skb->
len, rx_pkt_offset, rx_pkt_length);
148 priv->
stats.rx_dropped++;
150 if (adapter->
if_ops.data_complete)
151 adapter->
if_ops.data_complete(adapter, skb);
162 __skb_queue_head_init(&list);
168 priv->
wdev->iftype, 0,
false);
170 while (!skb_queue_empty(&list)) {
171 rx_skb = __skb_dequeue(&list);
180 dev_err(adapter->
dev,
"Rx of mgmt packet failed");
195 if (mwifiex_queuing_ra_based(priv)) {
206 ta, (
u8) rx_pkt_type, skb);
209 if (adapter->
if_ops.data_complete)
210 adapter->
if_ops.data_complete(adapter, skb);
216 priv->
stats.rx_dropped++;