hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/net/mac80211/wme.c
....@@ -141,12 +141,14 @@
141141 u16 __ieee80211_select_queue(struct ieee80211_sub_if_data *sdata,
142142 struct sta_info *sta, struct sk_buff *skb)
143143 {
144
+ const struct ethhdr *eth = (void *)skb->data;
144145 struct mac80211_qos_map *qos_map;
145146 bool qos;
146147
147148 /* all mesh/ocb stations are required to support WME */
148
- if (sta && (sdata->vif.type == NL80211_IFTYPE_MESH_POINT ||
149
- sdata->vif.type == NL80211_IFTYPE_OCB))
149
+ if ((sdata->vif.type == NL80211_IFTYPE_MESH_POINT &&
150
+ !is_multicast_ether_addr(eth->h_dest)) ||
151
+ (sdata->vif.type == NL80211_IFTYPE_OCB && sta))
150152 qos = true;
151153 else if (sta)
152154 qos = sta->sta.wme;