]> git.karo-electronics.de Git - linux-beck.git/commitdiff
mwifiex: add delay when tdls confirm frame is queued
authorXinming Hu <huxm@marvell.com>
Tue, 23 Feb 2016 13:16:16 +0000 (05:16 -0800)
committerKalle Valo <kvalo@codeaurora.org>
Mon, 7 Mar 2016 12:26:27 +0000 (14:26 +0200)
It is observed that driver may send the data packet to tdls peer
before tdls peer receives tdls setup confirm frame.
Similar race condition exists during tdls teardown procedure also.
This patch adds 10 milliseconds delay to resolve the race.

Signed-off-by: Xinming Hu <huxm@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/marvell/mwifiex/tdls.c

index 9275f9c3f869bbb0bc43be93f7480e8cf3ffba9f..150649602e98298bed2975f8444c945e640dfb1a 100644 (file)
@@ -680,6 +680,13 @@ int mwifiex_send_tdls_data_frame(struct mwifiex_private *priv, const u8 *peer,
        __net_timestamp(skb);
        mwifiex_queue_tx_pkt(priv, skb);
 
+       /* Delay 10ms to make sure tdls setup confirm/teardown frame
+        * is received by peer
+       */
+       if (action_code == WLAN_TDLS_SETUP_CONFIRM ||
+           action_code == WLAN_TDLS_TEARDOWN)
+               msleep_interruptible(10);
+
        return 0;
 }