Loading net/mac80211/rx.c +15 −9 Original line number Diff line number Diff line Loading @@ -2204,16 +2204,22 @@ ieee80211_rx_h_amsdu(struct ieee80211_rx_data *rx) if (!(status->rx_flags & IEEE80211_RX_AMSDU)) return RX_CONTINUE; if (ieee80211_has_a4(hdr->frame_control) && rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && !rx->sdata->u.vlan.sta) if (unlikely(ieee80211_has_a4(hdr->frame_control))) { switch (rx->sdata->vif.type) { case NL80211_IFTYPE_AP_VLAN: if (!rx->sdata->u.vlan.sta) return RX_DROP_UNUSABLE; break; case NL80211_IFTYPE_STATION: if (!rx->sdata->u.mgd.use_4addr) return RX_DROP_UNUSABLE; break; default: return RX_DROP_UNUSABLE; } } if (is_multicast_ether_addr(hdr->addr1) && ((rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && rx->sdata->u.vlan.sta) || (rx->sdata->vif.type == NL80211_IFTYPE_STATION && rx->sdata->u.mgd.use_4addr))) if (is_multicast_ether_addr(hdr->addr1)) return RX_DROP_UNUSABLE; skb->dev = dev; Loading Loading
net/mac80211/rx.c +15 −9 Original line number Diff line number Diff line Loading @@ -2204,16 +2204,22 @@ ieee80211_rx_h_amsdu(struct ieee80211_rx_data *rx) if (!(status->rx_flags & IEEE80211_RX_AMSDU)) return RX_CONTINUE; if (ieee80211_has_a4(hdr->frame_control) && rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && !rx->sdata->u.vlan.sta) if (unlikely(ieee80211_has_a4(hdr->frame_control))) { switch (rx->sdata->vif.type) { case NL80211_IFTYPE_AP_VLAN: if (!rx->sdata->u.vlan.sta) return RX_DROP_UNUSABLE; break; case NL80211_IFTYPE_STATION: if (!rx->sdata->u.mgd.use_4addr) return RX_DROP_UNUSABLE; break; default: return RX_DROP_UNUSABLE; } } if (is_multicast_ether_addr(hdr->addr1) && ((rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && rx->sdata->u.vlan.sta) || (rx->sdata->vif.type == NL80211_IFTYPE_STATION && rx->sdata->u.mgd.use_4addr))) if (is_multicast_ether_addr(hdr->addr1)) return RX_DROP_UNUSABLE; skb->dev = dev; Loading