diff options
author | Johannes Berg <johannes.berg@intel.com> | 2015-03-16 09:08:20 +0100 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2015-03-16 09:08:20 +0100 |
commit | 45ceeee81ecdd437f7ecac77ae79263486c755e8 (patch) | |
tree | ca60a2d4884b47b81c42136e3f2d4b8536235172 /net/mac80211/rx.c | |
parent | 4cc0dba95aacfcf235bcf2f8dee9cdd1568aacbf (diff) | |
download | linux-45ceeee81ecdd437f7ecac77ae79263486c755e8.tar.bz2 |
mac80211: add comment for rx_path_lock
Add a comment explaining how the RX path lock is used.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r-- | net/mac80211/rx.c | 6 |
1 files changed, 6 insertions, 0 deletions
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))) { |