--- a/net/mac80211/util.c +++ b/net/mac80211/util.c @@ -1402,6 +1402,7 @@ static size_t ieee802_11_find_bssid_prof if (!bss_bssid || !transmitter_bssid) return profile_len; + return 0; for_each_element_id(elem, WLAN_EID_MULTIPLE_BSSID, start, len) { if (elem->datalen < 2) continue; --- a/net/wireless/scan.c +++ b/net/wireless/scan.c @@ -2013,6 +2013,7 @@ static const struct element const struct element *next_mbssid; const struct element *next_sub; + return NULL; next_mbssid = cfg80211_find_elem(WLAN_EID_MULTIPLE_BSSID, mbssid_end, ielen - (mbssid_end - ie)); @@ -2094,6 +2095,7 @@ static void cfg80211_parse_mbssid_data(s u16 capability; struct cfg80211_bss *bss; + return; if (!non_tx_data) return; if (!cfg80211_find_ie(WLAN_EID_MULTIPLE_BSSID, ie, ielen)) @@ -2254,6 +2256,7 @@ cfg80211_update_notlisted_nontrans(struc const struct cfg80211_bss_ies *old; size_t cpy_len; + return; lockdep_assert_held(&wiphy_to_rdev(wiphy)->bss_lock); ie = mgmt->u.probe_resp.variable; @@ -2472,6 +2475,7 @@ cfg80211_inform_bss_frame_data(struct wi res = cfg80211_inform_single_bss_frame_data(wiphy, data, mgmt, len, gfp); + return res; /* don't do any further MBSSID handling for S1G */ if (ieee80211_is_s1g_beacon(mgmt->frame_control)) return res;