History

cfg80211: rename offchannel_chain structs to background_chain to avoid confusion with ETSI standard

ETSI standard defines "Offchannel CAC" as: "Off-Channel CAC is performed by a number of non-continuous checks spread over a period in time. This period, which is required to determine the presence of radar signals, is defined as the Off-Channel CAC Time.. Minimum Off-Channel CAC Time 6 minutes and Maximum Off-Channel CAC Time 4 hours..". mac80211 implementation refers to a dedicated hw chain used for continuous radar monitoring. Rename offchannel_* references to background_* in order to avoid confusion with ETSI standard.

Lorenzo Bianconi committed 4 years ago

Commit a95bfb81 parent 852a07c11 files · +102 −100Browse files

Unified · Split

11 files
  1. include/net/cfg80211.h +10 −10
  2. include/net/mac80211.h +5 −5
  3. include/uapi/linux/nl80211.h +7 −7
  4. net/mac80211/cfg.c +5 −5
  5. net/wireless/chan.c +3 −3
  6. net/wireless/core.c +7 −6
  7. net/wireless/core.h +10 −10
  8. net/wireless/mlme.c +45 −44
  9. net/wireless/nl80211.c +4 −4
  10. net/wireless/rdev-ops.h +5 −5
  11. net/wireless/trace.h +1 −1
include/net/cfg80211.h+10−10
@@ -4073,14 +4073,14 @@ struct mgmt_frame_regs { · 4072 unmodified lines
40734073 * those to decrypt (Re)Association Request and encrypt (Re)Association
40744074 * Response frame.
40754075 *
4076− * @set_radar_offchan: Configure dedicated offchannel chain available for
4076+ * @set_radar_background: Configure dedicated offchannel chain available for
40774077 * radar/CAC detection on some hw. This chain can't be used to transmit
40784078 * or receive frames and it is bounded to a running wdev.
4079− * Offchannel radar/CAC detection allows to avoid the CAC downtime
4079+ * Background radar/CAC detection allows to avoid the CAC downtime
40804080 * switching to a different channel during CAC detection on the selected
40814081 * radar channel.
40824082 * The caller is expected to set chandef pointer to NULL in order to
4083− * disable offchannel CAC/radar detection.
4083+ * disable background CAC/radar detection.
40844084 */
40854085 struct cfg80211_ops {
40864086 int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow);
@@ -4413,8 +4413,8 @@ struct cfg80211_ops { · 326 unmodified lines
44134413 struct cfg80211_color_change_settings *params);
44144414 int (*set_fils_aad)(struct wiphy *wiphy, struct net_device *dev,
44154415 struct cfg80211_fils_aad *fils_aad);
4416− int (*set_radar_offchan)(struct wiphy *wiphy,
4417− struct cfg80211_chan_def *chandef);
4416+ int (*set_radar_background)(struct wiphy *wiphy,
4417+ struct cfg80211_chan_def *chandef);
44184418 };
44194419
44204420 /*
@@ -7626,9 +7626,9 @@ cfg80211_radar_event(struct wiphy *wiphy, · 3205 unmodified lines
76267626 }
76277627
76287628 static inline void
7629−cfg80211_offchan_radar_event(struct wiphy *wiphy,
7630− struct cfg80211_chan_def *chandef,
7631− gfp_t gfp)
7629+cfg80211_background_radar_event(struct wiphy *wiphy,
7630+ struct cfg80211_chan_def *chandef,
7631+ gfp_t gfp)
76327632 {
76337633 __cfg80211_radar_event(wiphy, chandef, true, gfp);
76347634 }
@@ -7663,13 +7663,13 @@ void cfg80211_cac_event(struct net_device *netdev, · 28 unmodified lines
76637663 enum nl80211_radar_event event, gfp_t gfp);
76647664
76657665 /**
7666− * cfg80211_offchan_cac_abort - Channel Availability Check offchan abort event
7666+ * cfg80211_background_cac_abort - Channel Availability Check offchan abort event
76677667 * @wiphy: the wiphy
76687668 *
76697669 * This function is called by the driver when a Channel Availability Check
76707670 * (CAC) is aborted by a offchannel dedicated chain.
76717671 */
7672−void cfg80211_offchan_cac_abort(struct wiphy *wiphy);
7672+void cfg80211_background_cac_abort(struct wiphy *wiphy);
76737673
76747674 /**
76757675 * cfg80211_gtk_rekey_notify - notify userspace about driver rekeying
include/net/mac80211.h+5−5
@@ -3939,14 +3939,14 @@ struct ieee80211_prep_tx_info { · 3938 unmodified lines
39393939 * twt structure.
39403940 * @twt_teardown_request: Update the hw with TWT teardown request received
39413941 * from the peer.
3942− * @set_radar_offchan: Configure dedicated offchannel chain available for
3942+ * @set_radar_background: Configure dedicated offchannel chain available for
39433943 * radar/CAC detection on some hw. This chain can't be used to transmit
39443944 * or receive frames and it is bounded to a running wdev.
3945− * Offchannel radar/CAC detection allows to avoid the CAC downtime
3945+ * Background radar/CAC detection allows to avoid the CAC downtime
39463946 * switching to a different channel during CAC detection on the selected
39473947 * radar channel.
39483948 * The caller is expected to set chandef pointer to NULL in order to
3949− * disable offchannel CAC/radar detection.
3949+ * disable background CAC/radar detection.
39503950 * @net_fill_forward_path: Called from .ndo_fill_forward_path in order to
39513951 * resolve a path for hardware flow offloading
39523952 */
@@ -4277,8 +4277,8 @@ struct ieee80211_ops { · 324 unmodified lines
42774277 struct ieee80211_twt_setup *twt);
42784278 void (*twt_teardown_request)(struct ieee80211_hw *hw,
42794279 struct ieee80211_sta *sta, u8 flowid);
4280− int (*set_radar_offchan)(struct ieee80211_hw *hw,
4281− struct cfg80211_chan_def *chandef);
4280+ int (*set_radar_background)(struct ieee80211_hw *hw,
4281+ struct cfg80211_chan_def *chandef);
42824282 int (*net_fill_forward_path)(struct ieee80211_hw *hw,
42834283 struct ieee80211_vif *vif,
42844284 struct ieee80211_sta *sta,
include/uapi/linux/nl80211.h+7−7
@@ -2646,10 +2646,10 @@ enum nl80211_commands { · 2645 unmodified lines
26462646 * Mandatory parameter for the transmitting interface to enable MBSSID.
26472647 * Optional for the non-transmitting interfaces.
26482648 *
2649− * @NL80211_ATTR_RADAR_OFFCHAN: Configure dedicated offchannel chain available for
2650− * radar/CAC detection on some hw. This chain can't be used to transmit
2651− * or receive frames and it is bounded to a running wdev.
2652− * Offchannel radar/CAC detection allows to avoid the CAC downtime
2649+ * @NL80211_ATTR_RADAR_BACKGROUND: Configure dedicated offchannel chain
2650+ * available for radar/CAC detection on some hw. This chain can't be used
2651+ * to transmit or receive frames and it is bounded to a running wdev.
2652+ * Background radar/CAC detection allows to avoid the CAC downtime
26532653 * switching on a different channel during CAC detection on the selected
26542654 * radar channel.
26552655 *
@@ -3159,7 +3159,7 @@ enum nl80211_attrs { · 503 unmodified lines
31593159 NL80211_ATTR_MBSSID_CONFIG,
31603160 NL80211_ATTR_MBSSID_ELEMS,
31613161
3162− NL80211_ATTR_RADAR_OFFCHAN,
3162+ NL80211_ATTR_RADAR_BACKGROUND,
31633163
31643164 /* add attributes here, update the policy in nl80211.c */
31653165
@@ -6066,7 +6066,7 @@ enum nl80211_feature_flags { · 2900 unmodified lines
60666066 * frames. Userspace has to share FILS AAD details to the driver by using
60676067 * @NL80211_CMD_SET_FILS_AAD.
60686068 *
6069− * @NL80211_EXT_FEATURE_RADAR_OFFCHAN: Device supports offchannel radar/CAC
6069+ * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC
60706070 * detection.
60716071 *
60726072 * @NUM_NL80211_EXT_FEATURES: number of extended features.
@@ -6135,7 +6135,7 @@ enum nl80211_ext_feature_index { · 62 unmodified lines
61356135 NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
61366136 NL80211_EXT_FEATURE_BSS_COLOR,
61376137 NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
6138− NL80211_EXT_FEATURE_RADAR_OFFCHAN,
6138+ NL80211_EXT_FEATURE_RADAR_BACKGROUND,
61396139
61406140 /* add new features before the definition below */
61416141 NUM_NL80211_EXT_FEATURES,
net/mac80211/cfg.c+5−5
@@ -4414,15 +4414,15 @@ out: · 4413 unmodified lines
44144414 }
44154415
44164416 static int
4417−ieee80211_set_radar_offchan(struct wiphy *wiphy,
4418− struct cfg80211_chan_def *chandef)
4417+ieee80211_set_radar_background(struct wiphy *wiphy,
4418+ struct cfg80211_chan_def *chandef)
44194419 {
44204420 struct ieee80211_local *local = wiphy_priv(wiphy);
44214421
4422− if (!local->ops->set_radar_offchan)
4422+ if (!local->ops->set_radar_background)
44234423 return -EOPNOTSUPP;
44244424
4425− return local->ops->set_radar_offchan(&local->hw, chandef);
4425+ return local->ops->set_radar_background(&local->hw, chandef);
44264426 }
44274427
44284428 const struct cfg80211_ops mac80211_config_ops = {
@@ -4529,5 +4529,5 @@ const struct cfg80211_ops mac80211_config_ops = { · 100 unmodified lines
45294529 .reset_tid_config = ieee80211_reset_tid_config,
45304530 .set_sar_specs = ieee80211_set_sar_specs,
45314531 .color_change = ieee80211_color_change,
4532− .set_radar_offchan = ieee80211_set_radar_offchan,
4532+ .set_radar_background = ieee80211_set_radar_background,
45334533 };
net/wireless/chan.c+3−3
@@ -718,13 +718,13 @@ static bool · 717 unmodified lines
718718 cfg80211_offchan_chain_is_active(struct cfg80211_registered_device *rdev,
719719 struct ieee80211_channel *channel)
720720 {
721− if (!rdev->offchan_radar_wdev)
721+ if (!rdev->background_radar_wdev)
722722 return false;
723723
724− if (!cfg80211_chandef_valid(&rdev->offchan_radar_chandef))
724+ if (!cfg80211_chandef_valid(&rdev->background_radar_chandef))
725725 return false;
726726
727− return cfg80211_is_sub_chan(&rdev->offchan_radar_chandef, channel);
727+ return cfg80211_is_sub_chan(&rdev->background_radar_chandef, channel);
728728 }
729729
730730 bool cfg80211_any_wiphy_oper_chan(struct wiphy *wiphy,
net/wireless/core.c+7−6
@@ -545,9 +545,10 @@ use_default_name: · 544 unmodified lines
545545 INIT_WORK(&rdev->rfkill_block, cfg80211_rfkill_block_work);
546546 INIT_WORK(&rdev->conn_work, cfg80211_conn_work);
547547 INIT_WORK(&rdev->event_work, cfg80211_event_work);
548− INIT_WORK(&rdev->offchan_cac_abort_wk, cfg80211_offchan_cac_abort_wk);
549− INIT_DELAYED_WORK(&rdev->offchan_cac_done_wk,
550− cfg80211_offchan_cac_done_wk);
548+ INIT_WORK(&rdev->background_cac_abort_wk,
549+ cfg80211_background_cac_abort_wk);
550+ INIT_DELAYED_WORK(&rdev->background_cac_done_wk,
551+ cfg80211_background_cac_done_wk);
551552
552553 init_waitqueue_head(&rdev->dev_wait);
553554
@@ -1057,13 +1058,13 @@ void wiphy_unregister(struct wiphy *wiphy) · 503 unmodified lines
10571058 cancel_work_sync(&rdev->conn_work);
10581059 flush_work(&rdev->event_work);
10591060 cancel_delayed_work_sync(&rdev->dfs_update_channels_wk);
1060− cancel_delayed_work_sync(&rdev->offchan_cac_done_wk);
1061+ cancel_delayed_work_sync(&rdev->background_cac_done_wk);
10611062 flush_work(&rdev->destroy_work);
10621063 flush_work(&rdev->sched_scan_stop_wk);
10631064 flush_work(&rdev->propagate_radar_detect_wk);
10641065 flush_work(&rdev->propagate_cac_done_wk);
10651066 flush_work(&rdev->mgmt_registrations_update_wk);
1066− flush_work(&rdev->offchan_cac_abort_wk);
1067+ flush_work(&rdev->background_cac_abort_wk);
10671068
10681069 #ifdef CONFIG_PM
10691070 if (rdev->wiphy.wowlan_config && rdev->ops->set_wakeup)
@@ -1212,7 +1213,7 @@ void __cfg80211_leave(struct cfg80211_registered_device *rdev, · 142 unmodified lines
12121213
12131214 cfg80211_pmsr_wdev_down(wdev);
12141215
1215− cfg80211_stop_offchan_radar_detection(wdev);
1216+ cfg80211_stop_background_radar_detection(wdev);
12161217
12171218 switch (wdev->iftype) {
12181219 case NL80211_IFTYPE_ADHOC:
net/wireless/core.h+10−10
@@ -84,10 +84,10 @@ struct cfg80211_registered_device { · 83 unmodified lines
8484
8585 struct delayed_work dfs_update_channels_wk;
8686
87− struct wireless_dev *offchan_radar_wdev;
88− struct cfg80211_chan_def offchan_radar_chandef;
89− struct delayed_work offchan_cac_done_wk;
90− struct work_struct offchan_cac_abort_wk;
87+ struct wireless_dev *background_radar_wdev;
88+ struct cfg80211_chan_def background_radar_chandef;
89+ struct delayed_work background_cac_done_wk;
90+ struct work_struct background_cac_abort_wk;
9191
9292 /* netlink port which started critical protocol (0 means not started) */
9393 u32 crit_proto_nlportid;
@@ -497,15 +497,15 @@ cfg80211_chandef_dfs_cac_time(struct wiphy *wiphy, · 403 unmodified lines
497497 void cfg80211_sched_dfs_chan_update(struct cfg80211_registered_device *rdev);
498498
499499 int
500−cfg80211_start_offchan_radar_detection(struct cfg80211_registered_device *rdev,
501− struct wireless_dev *wdev,
502− struct cfg80211_chan_def *chandef);
500+cfg80211_start_background_radar_detection(struct cfg80211_registered_device *rdev,
501+ struct wireless_dev *wdev,
502+ struct cfg80211_chan_def *chandef);
503503
504−void cfg80211_stop_offchan_radar_detection(struct wireless_dev *wdev);
504+void cfg80211_stop_background_radar_detection(struct wireless_dev *wdev);
505505
506−void cfg80211_offchan_cac_done_wk(struct work_struct *work);
506+void cfg80211_background_cac_done_wk(struct work_struct *work);
507507
508−void cfg80211_offchan_cac_abort_wk(struct work_struct *work);
508+void cfg80211_background_cac_abort_wk(struct work_struct *work);
509509
510510 bool cfg80211_any_wiphy_oper_chan(struct wiphy *wiphy,
511511 struct ieee80211_channel *chan);
net/wireless/mlme.c+45−44
@@ -920,7 +920,7 @@ void __cfg80211_radar_event(struct wiphy *wiphy, · 919 unmodified lines
920920 cfg80211_set_dfs_state(wiphy, chandef, NL80211_DFS_UNAVAILABLE);
921921
922922 if (offchan)
923− queue_work(cfg80211_wq, &rdev->offchan_cac_abort_wk);
923+ queue_work(cfg80211_wq, &rdev->background_cac_abort_wk);
924924
925925 cfg80211_sched_dfs_chan_update(rdev);
926926
@@ -975,10 +975,10 @@ void cfg80211_cac_event(struct net_device *netdev, · 48 unmodified lines
975975 EXPORT_SYMBOL(cfg80211_cac_event);
976976
977977 static void
978−__cfg80211_offchan_cac_event(struct cfg80211_registered_device *rdev,
979− struct wireless_dev *wdev,
980− const struct cfg80211_chan_def *chandef,
981− enum nl80211_radar_event event)
978+__cfg80211_background_cac_event(struct cfg80211_registered_device *rdev,
979+ struct wireless_dev *wdev,
980+ const struct cfg80211_chan_def *chandef,
981+ enum nl80211_radar_event event)
982982 {
983983 struct wiphy *wiphy = &rdev->wiphy;
984984 struct net_device *netdev;
@@ -988,7 +988,7 @@ __cfg80211_offchan_cac_event(struct cfg80211_registered_device *rdev, · 3 unmodified lines
988988 if (!cfg80211_chandef_valid(chandef))
989989 return;
990990
991− if (!rdev->offchan_radar_wdev)
991+ if (!rdev->background_radar_wdev)
992992 return;
993993
994994 switch (event) {
@@ -997,12 +997,12 @@ __cfg80211_offchan_cac_event(struct cfg80211_registered_device *rdev, · 2 unmodified lines
997997 memcpy(&rdev->cac_done_chandef, chandef, sizeof(*chandef));
998998 queue_work(cfg80211_wq, &rdev->propagate_cac_done_wk);
999999 cfg80211_sched_dfs_chan_update(rdev);
1000− wdev = rdev->offchan_radar_wdev;
1000+ wdev = rdev->background_radar_wdev;
10011001 break;
10021002 case NL80211_RADAR_CAC_ABORTED:
1003− if (!cancel_delayed_work(&rdev->offchan_cac_done_wk))
1003+ if (!cancel_delayed_work(&rdev->background_cac_done_wk))
10041004 return;
1005− wdev = rdev->offchan_radar_wdev;
1005+ wdev = rdev->background_radar_wdev;
10061006 break;
10071007 case NL80211_RADAR_CAC_STARTED:
10081008 break;
@@ -1015,49 +1015,49 @@ __cfg80211_offchan_cac_event(struct cfg80211_registered_device *rdev, · 6 unmodified lines
10151015 }
10161016
10171017 static void
1018−cfg80211_offchan_cac_event(struct cfg80211_registered_device *rdev,
1019− const struct cfg80211_chan_def *chandef,
1020− enum nl80211_radar_event event)
1018+cfg80211_background_cac_event(struct cfg80211_registered_device *rdev,
1019+ const struct cfg80211_chan_def *chandef,
1020+ enum nl80211_radar_event event)
10211021 {
10221022 wiphy_lock(&rdev->wiphy);
1023− __cfg80211_offchan_cac_event(rdev, rdev->offchan_radar_wdev,
1024− chandef, event);
1023+ __cfg80211_background_cac_event(rdev, rdev->background_radar_wdev,
1024+ chandef, event);
10251025 wiphy_unlock(&rdev->wiphy);
10261026 }
10271027
1028−void cfg80211_offchan_cac_done_wk(struct work_struct *work)
1028+void cfg80211_background_cac_done_wk(struct work_struct *work)
10291029 {
10301030 struct delayed_work *delayed_work = to_delayed_work(work);
10311031 struct cfg80211_registered_device *rdev;
10321032
10331033 rdev = container_of(delayed_work, struct cfg80211_registered_device,
1034− offchan_cac_done_wk);
1035− cfg80211_offchan_cac_event(rdev, &rdev->offchan_radar_chandef,
1036− NL80211_RADAR_CAC_FINISHED);
1034+ background_cac_done_wk);
1035+ cfg80211_background_cac_event(rdev, &rdev->background_radar_chandef,
1036+ NL80211_RADAR_CAC_FINISHED);
10371037 }
10381038
1039−void cfg80211_offchan_cac_abort_wk(struct work_struct *work)
1039+void cfg80211_background_cac_abort_wk(struct work_struct *work)
10401040 {
10411041 struct cfg80211_registered_device *rdev;
10421042
10431043 rdev = container_of(work, struct cfg80211_registered_device,
1044− offchan_cac_abort_wk);
1045− cfg80211_offchan_cac_event(rdev, &rdev->offchan_radar_chandef,
1046− NL80211_RADAR_CAC_ABORTED);
1044+ background_cac_abort_wk);
1045+ cfg80211_background_cac_event(rdev, &rdev->background_radar_chandef,
1046+ NL80211_RADAR_CAC_ABORTED);
10471047 }
10481048
1049−void cfg80211_offchan_cac_abort(struct wiphy *wiphy)
1049+void cfg80211_background_cac_abort(struct wiphy *wiphy)
10501050 {
10511051 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
10521052
1053− queue_work(cfg80211_wq, &rdev->offchan_cac_abort_wk);
1053+ queue_work(cfg80211_wq, &rdev->background_cac_abort_wk);
10541054 }
1055−EXPORT_SYMBOL(cfg80211_offchan_cac_abort);
1055+EXPORT_SYMBOL(cfg80211_background_cac_abort);
10561056
10571057 int
1058−cfg80211_start_offchan_radar_detection(struct cfg80211_registered_device *rdev,
1059− struct wireless_dev *wdev,
1060− struct cfg80211_chan_def *chandef)
1058+cfg80211_start_background_radar_detection(struct cfg80211_registered_device *rdev,
1059+ struct wireless_dev *wdev,
1060+ struct cfg80211_chan_def *chandef)
10611061 {
10621062 unsigned int cac_time_ms;
10631063 int err;
@@ -1065,19 +1065,19 @@ cfg80211_start_offchan_radar_detection(struct cfg80211_registered_device *rdev, · 1 unmodified line
10651065 lockdep_assert_wiphy(&rdev->wiphy);
10661066
10671067 if (!wiphy_ext_feature_isset(&rdev->wiphy,
1068− NL80211_EXT_FEATURE_RADAR_OFFCHAN))
1068+ NL80211_EXT_FEATURE_RADAR_BACKGROUND))
10691069 return -EOPNOTSUPP;
10701070
10711071 /* Offchannel chain already locked by another wdev */
1072− if (rdev->offchan_radar_wdev && rdev->offchan_radar_wdev != wdev)
1072+ if (rdev->background_radar_wdev && rdev->background_radar_wdev != wdev)
10731073 return -EBUSY;
10741074
10751075 /* CAC already in progress on the offchannel chain */
1076− if (rdev->offchan_radar_wdev == wdev &&
1077− delayed_work_pending(&rdev->offchan_cac_done_wk))
1076+ if (rdev->background_radar_wdev == wdev &&
1077+ delayed_work_pending(&rdev->background_cac_done_wk))
10781078 return -EBUSY;
10791079
1080− err = rdev_set_radar_offchan(rdev, chandef);
1080+ err = rdev_set_radar_background(rdev, chandef);
10811081 if (err)
10821082 return err;
10831083
@@ -1085,30 +1085,31 @@ cfg80211_start_offchan_radar_detection(struct cfg80211_registered_device *rdev, · 1 unmodified line
10851085 if (!cac_time_ms)
10861086 cac_time_ms = IEEE80211_DFS_MIN_CAC_TIME_MS;
10871087
1088− rdev->offchan_radar_chandef = *chandef;
1089− rdev->offchan_radar_wdev = wdev; /* Get offchain ownership */
1088+ rdev->background_radar_chandef = *chandef;
1089+ rdev->background_radar_wdev = wdev; /* Get offchain ownership */
10901090
1091− __cfg80211_offchan_cac_event(rdev, wdev, chandef,
1092− NL80211_RADAR_CAC_STARTED);
1093− queue_delayed_work(cfg80211_wq, &rdev->offchan_cac_done_wk,
1091+ __cfg80211_background_cac_event(rdev, wdev, chandef,
1092+ NL80211_RADAR_CAC_STARTED);
1093+ queue_delayed_work(cfg80211_wq, &rdev->background_cac_done_wk,
10941094 msecs_to_jiffies(cac_time_ms));
10951095
10961096 return 0;
10971097 }
10981098
1099−void cfg80211_stop_offchan_radar_detection(struct wireless_dev *wdev)
1099+void cfg80211_stop_background_radar_detection(struct wireless_dev *wdev)
11001100 {
11011101 struct wiphy *wiphy = wdev->wiphy;
11021102 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
11031103
11041104 lockdep_assert_wiphy(wiphy);
11051105
1106− if (wdev != rdev->offchan_radar_wdev)
1106+ if (wdev != rdev->background_radar_wdev)
11071107 return;
11081108
1109− rdev_set_radar_offchan(rdev, NULL);
1110− rdev->offchan_radar_wdev = NULL; /* Release offchain ownership */
1109+ rdev_set_radar_background(rdev, NULL);
1110+ rdev->background_radar_wdev = NULL; /* Release offchain ownership */
11111111
1112− __cfg80211_offchan_cac_event(rdev, wdev, &rdev->offchan_radar_chandef,
1113− NL80211_RADAR_CAC_ABORTED);
1112+ __cfg80211_background_cac_event(rdev, wdev,
1113+ &rdev->background_radar_chandef,
1114+ NL80211_RADAR_CAC_ABORTED);
11141115 }
net/wireless/nl80211.c+4−4
@@ -776,7 +776,7 @@ static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = { · 775 unmodified lines
776776 [NL80211_ATTR_MBSSID_CONFIG] =
777777 NLA_POLICY_NESTED(nl80211_mbssid_config_policy),
778778 [NL80211_ATTR_MBSSID_ELEMS] = { .type = NLA_NESTED },
779− [NL80211_ATTR_RADAR_OFFCHAN] = { .type = NLA_FLAG },
779+ [NL80211_ATTR_RADAR_BACKGROUND] = { .type = NLA_FLAG },
780780 };
781781
782782 /* policy for the key attributes */
@@ -9305,9 +9305,9 @@ static int nl80211_start_radar_detection(struct sk_buff *skb, · 8522 unmodified lines
93059305 goto unlock;
93069306 }
93079307
9308− if (nla_get_flag(info->attrs[NL80211_ATTR_RADAR_OFFCHAN])) {
9309− err = cfg80211_start_offchan_radar_detection(rdev, wdev,
9310− &chandef);
9308+ if (nla_get_flag(info->attrs[NL80211_ATTR_RADAR_BACKGROUND])) {
9309+ err = cfg80211_start_background_radar_detection(rdev, wdev,
9310+ &chandef);
93119311 goto unlock;
93129312 }
93139313
net/wireless/rdev-ops.h+5−5
@@ -1396,17 +1396,17 @@ rdev_set_fils_aad(struct cfg80211_registered_device *rdev, · 1395 unmodified lines
13961396 }
13971397
13981398 static inline int
1399−rdev_set_radar_offchan(struct cfg80211_registered_device *rdev,
1400− struct cfg80211_chan_def *chandef)
1399+rdev_set_radar_background(struct cfg80211_registered_device *rdev,
1400+ struct cfg80211_chan_def *chandef)
14011401 {
14021402 struct wiphy *wiphy = &rdev->wiphy;
14031403 int ret;
14041404
1405− if (!rdev->ops->set_radar_offchan)
1405+ if (!rdev->ops->set_radar_background)
14061406 return -EOPNOTSUPP;
14071407
1408− trace_rdev_set_radar_offchan(wiphy, chandef);
1409− ret = rdev->ops->set_radar_offchan(wiphy, chandef);
1408+ trace_rdev_set_radar_background(wiphy, chandef);
1409+ ret = rdev->ops->set_radar_background(wiphy, chandef);
14101410 trace_rdev_return_int(wiphy, ret);
14111411
14121412 return ret;
net/wireless/trace.h+1−1
@@ -3677,7 +3677,7 @@ TRACE_EVENT(cfg80211_bss_color_notify, · 3676 unmodified lines
36773677 __entry->color_bitmap)
36783678 );
36793679
3680−TRACE_EVENT(rdev_set_radar_offchan,
3680+TRACE_EVENT(rdev_set_radar_background,
36813681 TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef),
36823682
36833683 TP_ARGS(wiphy, chandef),