|
@@ -1897,7 +1897,8 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
|
|
|
mesh_rmc_check(hdr->addr3, mesh_hdr, rx->sdata))
|
|
|
return RX_DROP_MONITOR;
|
|
|
|
|
|
- if (!ieee80211_is_data(hdr->frame_control))
|
|
|
+ if (!ieee80211_is_data(hdr->frame_control) ||
|
|
|
+ !(status->rx_flags & IEEE80211_RX_RA_MATCH))
|
|
|
return RX_CONTINUE;
|
|
|
|
|
|
if (!mesh_hdr->ttl)
|
|
@@ -1941,9 +1942,6 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
|
|
|
}
|
|
|
skb_set_queue_mapping(skb, q);
|
|
|
|
|
|
- if (!(status->rx_flags & IEEE80211_RX_RA_MATCH))
|
|
|
- goto out;
|
|
|
-
|
|
|
if (!--mesh_hdr->ttl) {
|
|
|
IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, dropped_frames_ttl);
|
|
|
return RX_DROP_MONITOR;
|