wifi: mt76: mt7921: fix wrong command to set STA channel
authorDeren Wu <deren.wu@mediatek.com>
Sat, 11 Feb 2023 01:01:58 +0000 (09:01 +0800)
committerFelix Fietkau <nbd@nbd.name>
Mon, 17 Apr 2023 13:34:34 +0000 (15:34 +0200)
Should not use AND operator to check vif type NL80211_IFTYPE_MONITOR, and
that will cause we go into sniffer command for both STA and MONITOR
mode. However, the sniffer command would set channel properly (with some
extra options), the STA mode still works even if using the wrong
command.

Fix vif type check to make sure we using the right command to update
channel.

Fixes: 914189af23b8 ("wifi: mt76: mt7921: fix channel switch fail in monitor mode")
Signed-off-by: Deren Wu <deren.wu@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7921/main.c

index 75eaf86c6a78e9ab287e4bbb3c73d9c0f8485522..a72964e7a8071984765910986bd971096e157af3 100644 (file)
@@ -1695,7 +1695,7 @@ static void mt7921_ctx_iter(void *priv, u8 *mac,
        if (ctx != mvif->ctx)
                return;
 
-       if (vif->type & NL80211_IFTYPE_MONITOR)
+       if (vif->type == NL80211_IFTYPE_MONITOR)
                mt7921_mcu_config_sniffer(mvif, ctx);
        else
                mt76_connac_mcu_uni_set_chctx(mvif->phy->mt76, &mvif->mt76, ctx);