diff options
Diffstat (limited to 'drivers/net/wireless/mwifiex/util.c')
-rw-r--r-- | drivers/net/wireless/mwifiex/util.c | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/drivers/net/wireless/mwifiex/util.c b/drivers/net/wireless/mwifiex/util.c index ae88f80cf86b..0982375ba3b1 100644 --- a/drivers/net/wireless/mwifiex/util.c +++ b/drivers/net/wireless/mwifiex/util.c | |||
@@ -146,20 +146,16 @@ int mwifiex_get_debug_info(struct mwifiex_private *priv, | |||
146 | * to the kernel. | 146 | * to the kernel. |
147 | */ | 147 | */ |
148 | int | 148 | int |
149 | mwifiex_process_mgmt_packet(struct mwifiex_adapter *adapter, | 149 | mwifiex_process_mgmt_packet(struct mwifiex_private *priv, |
150 | struct sk_buff *skb) | 150 | struct sk_buff *skb) |
151 | { | 151 | { |
152 | struct rxpd *rx_pd; | 152 | struct rxpd *rx_pd; |
153 | struct mwifiex_private *priv; | ||
154 | u16 pkt_len; | 153 | u16 pkt_len; |
155 | 154 | ||
156 | if (!skb) | 155 | if (!skb) |
157 | return -1; | 156 | return -1; |
158 | 157 | ||
159 | rx_pd = (struct rxpd *)skb->data; | 158 | rx_pd = (struct rxpd *)skb->data; |
160 | priv = mwifiex_get_priv_by_id(adapter, rx_pd->bss_num, rx_pd->bss_type); | ||
161 | if (!priv) | ||
162 | return -1; | ||
163 | 159 | ||
164 | skb_pull(skb, le16_to_cpu(rx_pd->rx_pkt_offset)); | 160 | skb_pull(skb, le16_to_cpu(rx_pd->rx_pkt_offset)); |
165 | skb_pull(skb, sizeof(pkt_len)); | 161 | skb_pull(skb, sizeof(pkt_len)); |
@@ -190,20 +186,11 @@ mwifiex_process_mgmt_packet(struct mwifiex_adapter *adapter, | |||
190 | * the function creates a blank SKB, fills it with the data from the | 186 | * the function creates a blank SKB, fills it with the data from the |
191 | * received buffer and then sends this new SKB to the kernel. | 187 | * received buffer and then sends this new SKB to the kernel. |
192 | */ | 188 | */ |
193 | int mwifiex_recv_packet(struct mwifiex_adapter *adapter, struct sk_buff *skb) | 189 | int mwifiex_recv_packet(struct mwifiex_private *priv, struct sk_buff *skb) |
194 | { | 190 | { |
195 | struct mwifiex_rxinfo *rx_info; | ||
196 | struct mwifiex_private *priv; | ||
197 | |||
198 | if (!skb) | 191 | if (!skb) |
199 | return -1; | 192 | return -1; |
200 | 193 | ||
201 | rx_info = MWIFIEX_SKB_RXCB(skb); | ||
202 | priv = mwifiex_get_priv_by_id(adapter, rx_info->bss_num, | ||
203 | rx_info->bss_type); | ||
204 | if (!priv) | ||
205 | return -1; | ||
206 | |||
207 | skb->dev = priv->netdev; | 194 | skb->dev = priv->netdev; |
208 | skb->protocol = eth_type_trans(skb, priv->netdev); | 195 | skb->protocol = eth_type_trans(skb, priv->netdev); |
209 | skb->ip_summed = CHECKSUM_NONE; | 196 | skb->ip_summed = CHECKSUM_NONE; |
@@ -225,7 +212,7 @@ int mwifiex_recv_packet(struct mwifiex_adapter *adapter, struct sk_buff *skb) | |||
225 | * fragments. Currently we fail the Filesndl-ht.scr script | 212 | * fragments. Currently we fail the Filesndl-ht.scr script |
226 | * for UDP, hence this fix | 213 | * for UDP, hence this fix |
227 | */ | 214 | */ |
228 | if ((adapter->iface_type == MWIFIEX_USB) && | 215 | if ((priv->adapter->iface_type == MWIFIEX_USB) && |
229 | (skb->truesize > MWIFIEX_RX_DATA_BUF_SIZE)) | 216 | (skb->truesize > MWIFIEX_RX_DATA_BUF_SIZE)) |
230 | skb->truesize += (skb->len - MWIFIEX_RX_DATA_BUF_SIZE); | 217 | skb->truesize += (skb->len - MWIFIEX_RX_DATA_BUF_SIZE); |
231 | 218 | ||