iwlwifi: add missing rcu_read_lock
Johannes Berg
maintainerPATCH 1/1 iwlwifi: add missing rcu_read_lock
From: Johannes Berg <[email protected]>
Using ieee80211_find_sta() needs to be under
RCU read lock, which iwlwifi currently misses,
so fix it.
--- drivers/net/wireless/iwlwifi/iwl-agn-tx.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/net/wireless/iwlwifi/iwl-agn-tx.c +2 -0
@@ -1146,6 +1146,7 @@ static void iwlagn_tx_status(struct iwl_struct ieee80211_sta *sta;struct iwl_station_priv *sta_priv; +rcu_read_lock (); sta =ieee80211_find_sta (priv->vif, hdr->addr1);if (sta) { sta_priv = (void *)sta->drv_priv;
@@ -1154,6 +1155,7 @@ static void iwlagn_tx_status(struct iwl_ atomic_dec_return(&sta_priv->pending_frames) == 0)ieee80211_sta_block_awake (priv->hw, sta, false); } +rcu_read_unlock ();ieee80211_tx_status_irqsafe (priv->hw, skb); }
Quoted 27 lines · Johannes Berg
From: Johannes Berg <[email protected]>
Using
ieee80211_find_sta()needs to be under
RCU read lock, which iwlwifi currently misses,
so fix it.Reported-by Miles Lane <[email protected]>Signed-off-by Johannes Berg <[email protected]>---
drivers/net/wireless/iwlwifi/iwl-agn-tx.c | 2 ++1 file changed, 2 insertions(+)drivers/net/wireless/iwlwifi/iwl-agn-tx.c 2010-06-07 21:18:04.000000000 +0200 renamed from drivers/net/wireless/iwlwifi/iwl-agn-tx.c 2010-06-07 21:17:56.000000000 +0200 +1
-0@@ -1146,6 +1146,7 @@ static void iwlagn_tx_status(struct iwl_ struct ieee80211_sta *sta; struct iwl_station_priv *sta_priv; + rcu_read_lock(); sta = ieee80211_find_sta(priv->vif, hdr->addr1); if (sta) { sta_priv = (void *)sta->drv_priv;
drivers/net/wireless/iwlwifi/iwl-agn-tx.c 2010-06-07 21:18:04.000000000 +0200 static void iwlagn_tx_status(struct iwl_ · line 1161
Quoted 7 lines
drivers/net/wireless/iwlwifi/iwl-agn-tx.c 2010-06-07 21:18:04.000000000 +0200 renamed from drivers/net/wireless/iwlwifi/iwl-agn-tx.c 2010-06-07 21:17:56.000000000 +0200 +1
-0@@ -1154,6 +1155,7 @@ static void iwlagn_tx_status(struct iwl_ atomic_dec_return(&sta_priv->pending_frames) == 0) ieee80211_sta_block_awake(priv->hw, sta, false); } + rcu_read_unlock(); ieee80211_tx_status_irqsafe(priv->hw, skb); }
Unclean patch application - is this to be expected?
patching file drivers/net/wireless/iwlwifi/iwl-agn-tx.c Hunk #1 succeeded at 1125 (offset -21 lines). Hunk #2 succeeded at 1134 (offset -21 lines).
Johannes Berg
maintainerQuoted 24 lines · Miles Lane
Quoted 14 lines
drivers/net/wireless/iwlwifi/iwl-agn-tx.c 2010-06-07 21:18:04.000000000 +0200 renamed from drivers/net/wireless/iwlwifi/iwl-agn-tx.c 2010-06-07 21:17:56.000000000 +0200 +1
-0@@ -1146,6 +1146,7 @@ static void iwlagn_tx_status(struct iwl_ struct ieee80211_sta *sta; struct iwl_station_priv *sta_priv; + rcu_read_lock(); sta = ieee80211_find_sta(priv->vif, hdr->addr1); if (sta) { sta_priv = (void *)sta->drv_priv;drivers/net/wireless/iwlwifi/iwl-agn-tx.c 2010-06-07 21:18:04.000000000 +0200 static void iwlagn_tx_status(struct iwl_ · line 1161
Quoted 7 lines
drivers/net/wireless/iwlwifi/iwl-agn-tx.c 2010-06-07 21:18:04.000000000 +0200 renamed from drivers/net/wireless/iwlwifi/iwl-agn-tx.c 2010-06-07 21:17:56.000000000 +0200 +1
-0@@ -1154,6 +1155,7 @@ static void iwlagn_tx_status(struct iwl_ atomic_dec_return(&sta_priv->pending_frames) == 0) ieee80211_sta_block_awake(priv->hw, sta, false); } + rcu_read_unlock(); ieee80211_tx_status_irqsafe(priv->hw, skb); }Unclean patch application - is this to be expected?
Quoted 3 lines
patching file
drivers/net/wireless/iwlwifi/iwl-agn-tx.cHunk #1 succeeded at 1125 (offset -21 lines). Hunk #2 succeeded at 1134 (offset -21 lines).
Didn't pay much attention what tree I generated it against since I knew this code hasn't changed in a while ... so the offset looks perfectly fine. Fuzz I'd have been surprised about :)
johannes
Quoted 9 lines · Johannes Berg
From: Johannes Berg <[email protected]>
Using
ieee80211_find_sta()needs to be under
RCU read lock, which iwlwifi currently misses,
so fix it.Reported-by Miles Lane <[email protected]>Signed-off-by Johannes Berg <[email protected]>
Reinette
Tested. Looks good.
Quoted 17 lines · reinette chatre
Quoted 9 lines · Johannes Berg
From: Johannes Berg <[email protected]>
Using
ieee80211_find_sta()needs to be under
RCU read lock, which iwlwifi currently misses,
so fix it.Reported-by Miles Lane <[email protected]>Signed-off-by Johannes Berg <[email protected]>Acked-by Reinette Chatre <[email protected]>Reinette