aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwifiex/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/mwifiex/util.c')
-rw-r--r--drivers/net/wireless/mwifiex/util.c19
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 */
148int 148int
149mwifiex_process_mgmt_packet(struct mwifiex_adapter *adapter, 149mwifiex_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 */
193int mwifiex_recv_packet(struct mwifiex_adapter *adapter, struct sk_buff *skb) 189int 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