]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: mac80211: restore non-chanctx injection behaviour
authorJohannes Berg <johannes.berg@intel.com>
Tue, 16 Dec 2025 10:52:42 +0000 (11:52 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 17 Jan 2026 15:31:17 +0000 (16:31 +0100)
commit d594cc6f2c588810888df70c83a9654b6bc7942d upstream.

During the transition to use channel contexts throughout, the
ability to do injection while in monitor mode concurrent with
another interface was lost, since the (virtual) monitor won't
have a chanctx assigned in this scenario.

It's harder to fix drivers that actually transitioned to using
channel contexts themselves, such as mt76, but it's easy to do
those that are (still) just using the emulation. Do that.

Cc: stable@vger.kernel.org
Link: https://bugzilla.kernel.org/show_bug.cgi?id=218763
Reported-and-tested-by: Oscar Alfonso Diaz <oscar.alfonso.diaz@gmail.com>
Fixes: 0a44dfc07074 ("wifi: mac80211: simplify non-chanctx drivers")
Link: https://patch.msgid.link/20251216105242.18366-2-johannes@sipsolutions.net
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/mac80211/tx.c

index 9c515fb8ebe112a100e6c16d42417dbfe9c9aa65..9142d748a6a70dc78d03fccb0b29b93dd2df1934 100644 (file)
@@ -2395,6 +2395,8 @@ netdev_tx_t ieee80211_monitor_start_xmit(struct sk_buff *skb,
 
        if (chanctx_conf)
                chandef = &chanctx_conf->def;
+       else if (local->emulate_chanctx)
+               chandef = &local->hw.conf.chandef;
        else
                goto fail_rcu;