wil6210: do not reorder groupcast Rx
authorVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Thu, 27 Feb 2014 14:20:55 +0000 (16:20 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 28 Feb 2014 19:33:38 +0000 (14:33 -0500)
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>
drivers/net/wireless/ath/wil6210/txrx.c

index 9b4388b..092081e 100644 (file)
@@ -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);
                }
 
        }