浏览代码

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>
Vladimir Kondratiev 11 年之前
父节点
当前提交
0bbc4adebd
共有 1 个文件被更改,包括 7 次插入1 次删除
  1. 7 1
      drivers/net/wireless/ath/wil6210/txrx.c

+ 7 - 1
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);
 			skb->protocol = htons(ETH_P_802_2);
 			wil_netif_rx_any(skb, ndev);
 			wil_netif_rx_any(skb, ndev);
 		} else {
 		} else {
+			struct ethhdr *eth = (void *)skb->data;
+
 			skb->protocol = eth_type_trans(skb, ndev);
 			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);
 		}
 		}
 
 
 	}
 	}