Эх сурвалжийг харах

mac80211: DFS setup chandef for radar_event correctly

Setup chandef for radar event correctly, before we
will clear this in ieee80211_dfs_cac_cancel() function.

Without this patch mac80211 will report wrong channel
width in case we will get radar event during active CAC.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Reviewed-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Janusz Dziedzic 11 жил өмнө
parent
commit
84a3d1c97d

+ 2 - 4
net/mac80211/util.c

@@ -2278,17 +2278,15 @@ void ieee80211_dfs_radar_detected_work(struct work_struct *work)
 {
 {
 	struct ieee80211_local *local =
 	struct ieee80211_local *local =
 		container_of(work, struct ieee80211_local, radar_detected_work);
 		container_of(work, struct ieee80211_local, radar_detected_work);
-	struct cfg80211_chan_def chandef;
+	struct cfg80211_chan_def chandef = local->hw.conf.chandef;
 
 
 	ieee80211_dfs_cac_cancel(local);
 	ieee80211_dfs_cac_cancel(local);
 
 
 	if (local->use_chanctx)
 	if (local->use_chanctx)
 		/* currently not handled */
 		/* currently not handled */
 		WARN_ON(1);
 		WARN_ON(1);
-	else {
-		chandef = local->hw.conf.chandef;
+	else
 		cfg80211_radar_event(local->hw.wiphy, &chandef, GFP_KERNEL);
 		cfg80211_radar_event(local->hw.wiphy, &chandef, GFP_KERNEL);
-	}
 }
 }
 
 
 void ieee80211_radar_detected(struct ieee80211_hw *hw)
 void ieee80211_radar_detected(struct ieee80211_hw *hw)