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 d4d389e8f1b4ec2b6f099bb3685050d3b983c41b..fb1d31b2d52aecf973629108d1e1367155c73f2c 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) &&