diff options
Diffstat (limited to 'drivers/net/wireless/mwifiex/sta_rx.c')
-rw-r--r-- | drivers/net/wireless/mwifiex/sta_rx.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/net/wireless/mwifiex/sta_rx.c b/drivers/net/wireless/mwifiex/sta_rx.c index 750b695aca12..02ce3b77d3e7 100644 --- a/drivers/net/wireless/mwifiex/sta_rx.c +++ b/drivers/net/wireless/mwifiex/sta_rx.c | |||
@@ -145,7 +145,12 @@ int mwifiex_process_sta_rx_packet(struct mwifiex_adapter *adapter, | |||
145 | " rx_pkt_offset=%d, rx_pkt_length=%d\n", skb->len, | 145 | " rx_pkt_offset=%d, rx_pkt_length=%d\n", skb->len, |
146 | local_rx_pd->rx_pkt_offset, local_rx_pd->rx_pkt_length); | 146 | local_rx_pd->rx_pkt_offset, local_rx_pd->rx_pkt_length); |
147 | priv->stats.rx_dropped++; | 147 | priv->stats.rx_dropped++; |
148 | dev_kfree_skb_any(skb); | 148 | |
149 | if (adapter->if_ops.data_complete) | ||
150 | adapter->if_ops.data_complete(adapter, skb); | ||
151 | else | ||
152 | dev_kfree_skb_any(skb); | ||
153 | |||
149 | return ret; | 154 | return ret; |
150 | } | 155 | } |
151 | 156 | ||
@@ -196,8 +201,12 @@ int mwifiex_process_sta_rx_packet(struct mwifiex_adapter *adapter, | |||
196 | (u8) local_rx_pd->rx_pkt_type, | 201 | (u8) local_rx_pd->rx_pkt_type, |
197 | skb); | 202 | skb); |
198 | 203 | ||
199 | if (ret || (rx_pkt_type == PKT_TYPE_BAR)) | 204 | if (ret || (rx_pkt_type == PKT_TYPE_BAR)) { |
200 | dev_kfree_skb_any(skb); | 205 | if (adapter->if_ops.data_complete) |
206 | adapter->if_ops.data_complete(adapter, skb); | ||
207 | else | ||
208 | dev_kfree_skb_any(skb); | ||
209 | } | ||
201 | 210 | ||
202 | if (ret) | 211 | if (ret) |
203 | priv->stats.rx_dropped++; | 212 | priv->stats.rx_dropped++; |