From: Johannes Berg <[email protected]>

Add a comment explaining how the RX path lock is used.

Signed-off-by: Johannes Berg <[email protected]>
---
 net/mac80211/rx.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index bdabf349c6ee..6accd61ee54b 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -3123,6 +3123,12 @@ static void ieee80211_rx_handlers(struct 
ieee80211_rx_data *rx,
                        goto rxh_next;  \
        } while (0);
 
+       /* Lock here to avoid hitting all of the data used in the RX
+        * path (e.g. key data, station data, ...) concurrently when
+        * a frame is released from the reorder buffer due to timeout
+        * from the timer, potentially concurrently with RX from the
+        * driver.
+        */
        spin_lock_bh(&rx->local->rx_path_lock);
 
        while ((skb = __skb_dequeue(frames))) {
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to