summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>2014-02-27 14:20:55 (GMT)
committerJohn W. Linville <linville@tuxdriver.com>2014-02-28 19:33:38 (GMT)
commit0bbc4adebdb3ced39e53955f03153f4718cc3a81 (patch)
tree6fb09514c1adce1be79d9ebc9c8f6537dd39b11c
parent4d55a0a1a8efb3fef4205b7d9464428a90f2fac4 (diff)
downloadlinux-0bbc4adebdb3ced39e53955f03153f4718cc3a81.tar.xz
wil6210: do not reorder groupcast Rx
Groupcast frames are not subject for BACK reordering because they are not ACK'ed and one can't request re-transmitt Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ath/wil6210/txrx.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/wil6210/txrx.c b/drivers/net/wireless/ath/wil6210/txrx.c
index 9b4388b..092081e 100644
--- a/drivers/net/wireless/ath/wil6210/txrx.c
+++ b/drivers/net/wireless/ath/wil6210/txrx.c
@@ -529,8 +529,14 @@ void wil_rx_handle(struct wil6210_priv *wil, int *quota)
skb->protocol = htons(ETH_P_802_2);
wil_netif_rx_any(skb, ndev);
} else {
+ struct ethhdr *eth = (void *)skb->data;
+
skb->protocol = eth_type_trans(skb, ndev);
- wil_rx_reorder(wil, skb);
+
+ if (is_unicast_ether_addr(eth->h_dest))
+ wil_rx_reorder(wil, skb);
+ else
+ wil_netif_rx_any(skb, ndev);
}
}