diff --git a/net/mac80211/ieee80211_sta.c b/net/mac80211/ieee80211_sta.c
index 8b991ebcbb4ed7b682fd1dbad4663d3a6ca3c466..86da69f443847d6b6d459115c7427c5f7ce961e0 100644
--- a/net/mac80211/ieee80211_sta.c
+++ b/net/mac80211/ieee80211_sta.c
@@ -2356,6 +2356,7 @@ static void ieee80211_rx_bss_info(struct net_device *dev,
 	struct sta_info *sta;
 	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
 	u64 beacon_timestamp, rx_timestamp;
+	struct ieee80211_channel *channel;
 	DECLARE_MAC_BUF(mac);
 	DECLARE_MAC_BUF(mac2);
 
@@ -2420,6 +2421,11 @@ static void ieee80211_rx_bss_info(struct net_device *dev,
 	else
 		freq = rx_status->freq;
 
+	channel = ieee80211_get_channel(local->hw.wiphy, freq);
+
+	if (!channel || channel->flags & IEEE80211_CHAN_DISABLED)
+		return;
+
 #ifdef CONFIG_MAC80211_MESH
 	if (elems.mesh_config)
 		bss = ieee80211_rx_mesh_bss_get(dev, elems.mesh_id,