wifi: mac80211: restore monitor for outgoing frames
authorJohannes Berg <johannes.berg@intel.com>
Tue, 22 Apr 2025 19:32:51 +0000 (21:32 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 23 Apr 2025 12:44:22 +0000 (14:44 +0200)
This code was accidentally dropped during the cooked
monitor removal, but really should've been simplified
instead. Add the simple version back.

Fixes: 286e69677065 ("wifi: mac80211: Drop cooked monitor support")
Link: https://patch.msgid.link/20250422213251.b3d65fd0f323.Id2a6901583f7af86bbe94deb355968b238f350c6@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/status.c

index b17b3cc7fb903d81c9ec0e821765ef4d3628c10a..a362254b310cd54c01534c8e1d081bbec1e9d816 100644 (file)
@@ -1085,7 +1085,13 @@ static void __ieee80211_tx_status(struct ieee80211_hw *hw,
 
        ieee80211_report_used_skb(local, skb, false, status->ack_hwtstamp);
 
-       if (status->free_list)
+       /*
+        * This is a bit racy but we can avoid a lot of work
+        * with this test...
+        */
+       if (local->tx_mntrs)
+               ieee80211_tx_monitor(local, skb, retry_count, status);
+       else if (status->free_list)
                list_add_tail(&skb->list, status->free_list);
        else
                dev_kfree_skb(skb);