diff options
Diffstat (limited to 'drivers/net/wireless/libertas/rx.c')
-rw-r--r-- | drivers/net/wireless/libertas/rx.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/drivers/net/wireless/libertas/rx.c b/drivers/net/wireless/libertas/rx.c index 65f02cc6752f..784dae714705 100644 --- a/drivers/net/wireless/libertas/rx.c +++ b/drivers/net/wireless/libertas/rx.c | |||
@@ -2,9 +2,10 @@ | |||
2 | * This file contains the handling of RX in wlan driver. | 2 | * This file contains the handling of RX in wlan driver. |
3 | */ | 3 | */ |
4 | #include <linux/etherdevice.h> | 4 | #include <linux/etherdevice.h> |
5 | #include <linux/slab.h> | ||
5 | #include <linux/types.h> | 6 | #include <linux/types.h> |
6 | 7 | ||
7 | #include "hostcmd.h" | 8 | #include "host.h" |
8 | #include "radiotap.h" | 9 | #include "radiotap.h" |
9 | #include "decl.h" | 10 | #include "decl.h" |
10 | #include "dev.h" | 11 | #include "dev.h" |
@@ -160,15 +161,8 @@ int lbs_process_rxed_packet(struct lbs_private *priv, struct sk_buff *skb) | |||
160 | p_rx_pd = (struct rxpd *) skb->data; | 161 | p_rx_pd = (struct rxpd *) skb->data; |
161 | p_rx_pkt = (struct rxpackethdr *) ((u8 *)p_rx_pd + | 162 | p_rx_pkt = (struct rxpackethdr *) ((u8 *)p_rx_pd + |
162 | le32_to_cpu(p_rx_pd->pkt_ptr)); | 163 | le32_to_cpu(p_rx_pd->pkt_ptr)); |
163 | if (priv->mesh_dev) { | 164 | |
164 | if (priv->mesh_fw_ver == MESH_FW_OLD) { | 165 | dev = lbs_mesh_set_dev(priv, dev, p_rx_pd); |
165 | if (p_rx_pd->rx_control & RxPD_MESH_FRAME) | ||
166 | dev = priv->mesh_dev; | ||
167 | } else if (priv->mesh_fw_ver == MESH_FW_NEW) { | ||
168 | if (p_rx_pd->u.bss.bss_num == MESH_IFACE_ID) | ||
169 | dev = priv->mesh_dev; | ||
170 | } | ||
171 | } | ||
172 | 166 | ||
173 | lbs_deb_hex(LBS_DEB_RX, "RX Data: Before chop rxpd", skb->data, | 167 | lbs_deb_hex(LBS_DEB_RX, "RX Data: Before chop rxpd", skb->data, |
174 | min_t(unsigned int, skb->len, 100)); | 168 | min_t(unsigned int, skb->len, 100)); |