diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index aa75da3..6e9ee58 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -594,6 +594,7 @@ static int ieee80211_get_mmie_keyidx(struct sk_buff *skb)
 static ieee80211_rx_result ieee80211_rx_mesh_check(struct ieee80211_rx_data *rx)
 {
 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)rx->skb->data;
+	struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(rx->skb);
 	char *dev_addr = rx->sdata->vif.addr;
 
 	if (ieee80211_is_data(hdr->frame_control)) {
@@ -645,6 +646,12 @@ static ieee80211_rx_result ieee80211_rx_mesh_check(struct ieee80211_rx_data *rx)
 		return RX_DROP_MONITOR;
 	}
 
+	if (ieee80211_is_data(hdr->frame_control) &&
+	    !(status->rx_flags & IEEE80211_RX_RA_MATCH)) {
+		WARN_ON(1);
+		return RX_DROP_UNUSABLE;
+	}
+
 	return RX_CONTINUE;
 }
 
