rt2x00: do not set timestamp for injected frames
authorStanislaw Gruszka <stf_xl@wp.pl>
Tue, 4 May 2021 08:12:20 +0000 (10:12 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 15 Jun 2021 13:36:20 +0000 (16:36 +0300)
We setup hardware to insert TSF timestamp for beacon and probe response
frames. This is undesired for injected frames, which might want to
set their own timestamp values, so disable this setting for injected
frames.

Tested-by: ZeroBeat <ZeroBeat@gmx.de>
Tested-by: n0w1re <n0w1re@protonmail.ch>
Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20210504081220.666939-1-stf_xl@wp.pl
drivers/net/wireless/ralink/rt2x00/rt2x00queue.c

index d4d389e..fb1d31b 100644 (file)
@@ -446,8 +446,9 @@ static void rt2x00queue_create_tx_descriptor(struct rt2x00_dev *rt2x00dev,
         * Beacons and probe responses require the tsf timestamp
         * to be inserted into the frame.
         */
-       if (ieee80211_is_beacon(hdr->frame_control) ||
-           ieee80211_is_probe_resp(hdr->frame_control))
+       if ((ieee80211_is_beacon(hdr->frame_control) ||
+            ieee80211_is_probe_resp(hdr->frame_control)) &&
+           !(tx_info->flags & IEEE80211_TX_CTL_INJECTED))
                __set_bit(ENTRY_TXD_REQ_TIMESTAMP, &txdesc->flags);
 
        if ((tx_info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT) &&