From: Karthikeyan Periyasamy Date: Mon, 6 Feb 2023 16:03:30 +0000 (+0530) Subject: wifi: mac80211: fix non-MLO station association X-Git-Tag: v6.1.21~1200 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1d7e57d794b5150b97441a2968449e3594ef0d5e;p=platform%2Fkernel%2Flinux-starfive.git wifi: mac80211: fix non-MLO station association [ Upstream commit aaacf1740f2f95e0c5449ff3bbcff252d69cf952 ] Non-MLO station frames are dropped in Rx path due to the condition check in ieee80211_rx_is_valid_sta_link_id(). In multi-link AP scenario, non-MLO stations try to connect in any of the valid links in the ML AP, where the station valid_links and link_id params are valid in the ieee80211_sta object. But ieee80211_rx_is_valid_sta_link_id() always return false for the non-MLO stations by the assumption taken is valid_links and link_id are not valid in non-MLO stations object (ieee80211_sta), this assumption is wrong. Due to this assumption, non-MLO station frames are dropped which leads to failure in association. Fix it by removing the condition check and allow the link validation check for the non-MLO stations. Fixes: e66b7920aa5a ("wifi: mac80211: fix initialization of rx->link and rx->link_sta") Signed-off-by: Karthikeyan Periyasamy Link: https://lore.kernel.org/r/20230206160330.1613-1-quic_periyasa@quicinc.com Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin --- diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 8f0d7c6..f9604dc 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -4073,9 +4073,6 @@ static void ieee80211_invoke_rx_handlers(struct ieee80211_rx_data *rx) static bool ieee80211_rx_is_valid_sta_link_id(struct ieee80211_sta *sta, u8 link_id) { - if (!sta->mlo) - return false; - return !!(sta->valid_links & BIT(link_id)); }