wifi: rtw88: fix RX filter in FIF_ALLMULTI flag
authorChih-Kang Chang <gary.chang@realtek.com>
Fri, 3 Nov 2023 02:08:51 +0000 (10:08 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jan 2024 23:35:19 +0000 (15:35 -0800)
[ Upstream commit 53ee0b3b99edc6a47096bffef15695f5a895386f ]

The broadcast packets will be filtered in the FIF_ALLMULTI flag in
the original code, which causes beacon packets to be filtered out
and disconnection. Therefore, we fix it.

Fixes: e3037485c68e ("rtw88: new Realtek 802.11ac driver")
Signed-off-by: Chih-Kang Chang <gary.chang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20231103020851.102238-1-pkshih@realtek.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/realtek/rtw88/mac80211.c

index a99b53d..d8d68f1 100644 (file)
@@ -280,9 +280,9 @@ static void rtw_ops_configure_filter(struct ieee80211_hw *hw,
 
        if (changed_flags & FIF_ALLMULTI) {
                if (*new_flags & FIF_ALLMULTI)
-                       rtwdev->hal.rcr |= BIT_AM | BIT_AB;
+                       rtwdev->hal.rcr |= BIT_AM;
                else
-                       rtwdev->hal.rcr &= ~(BIT_AM | BIT_AB);
+                       rtwdev->hal.rcr &= ~(BIT_AM);
        }
        if (changed_flags & FIF_FCSFAIL) {
                if (*new_flags & FIF_FCSFAIL)