diff mbox series

rt2x00: do not set timestamp for injected frames

Message ID 20210504081220.666939-1-stf_xl@wp.pl (mailing list archive)
State Accepted
Commit 7af305a1245a7ceff2d8577e011d0a0f7cc33e4c
Delegated to: Kalle Valo
Headers show
Series rt2x00: do not set timestamp for injected frames | expand

Commit Message

Stanislaw Gruszka May 4, 2021, 8:12 a.m. UTC
From: Stanislaw Gruszka <stf_xl@wp.pl>

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>
---
 drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Kalle Valo June 15, 2021, 1:36 p.m. UTC | #1
stf_xl@wp.pl wrote:

> From: Stanislaw Gruszka <stf_xl@wp.pl>
> 
> 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>

Patch applied to wireless-drivers-next.git, thanks.

7af305a1245a rt2x00: do not set timestamp for injected frames
diff mbox series

Patch

diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
index d4d389e8f1b4..fb1d31b2d52a 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
@@ -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) &&