Skip to content

Commit 3f654d5

Browse files
benzeajmberg-intel
authored andcommitted
wifi: mac80211: use wiphy_hrtimer_work for ml_reconf_work
The work item may be scheduled relatively far in the future. As the event happens at a specific point in time, the normal timer accuracy is not sufficient in that case. Switch to use wiphy_hrtimer_work so that the accuracy is sufficient. CC: stable@vger.kernel.org Fixes: 8eb8dd2 ("wifi: mac80211: Support link removal using Reconfiguration ML element") Signed-off-by: Benjamin Berg <benjamin.berg@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> Link: https://patch.msgid.link/20251028125710.24a7b54e9e37.I063c5c15bf7672f94cea75f83e486a3ca52d098f@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
1 parent dfa865d commit 3f654d5

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

net/mac80211/ieee80211_i.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -612,7 +612,7 @@ struct ieee80211_if_managed {
612612
u8 *assoc_req_ies;
613613
size_t assoc_req_ies_len;
614614

615-
struct wiphy_delayed_work ml_reconf_work;
615+
struct wiphy_hrtimer_work ml_reconf_work;
616616
u16 removed_links;
617617

618618
/* TID-to-link mapping support */

net/mac80211/mlme.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4249,7 +4249,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
42494249
&ifmgd->neg_ttlm_timeout_work);
42504250

42514251
sdata->u.mgd.removed_links = 0;
4252-
wiphy_delayed_work_cancel(sdata->local->hw.wiphy,
4252+
wiphy_hrtimer_work_cancel(sdata->local->hw.wiphy,
42534253
&sdata->u.mgd.ml_reconf_work);
42544254

42554255
wiphy_work_cancel(sdata->local->hw.wiphy,
@@ -6876,7 +6876,7 @@ static void ieee80211_ml_reconfiguration(struct ieee80211_sub_if_data *sdata,
68766876
/* In case the removal was cancelled, abort it */
68776877
if (sdata->u.mgd.removed_links) {
68786878
sdata->u.mgd.removed_links = 0;
6879-
wiphy_delayed_work_cancel(sdata->local->hw.wiphy,
6879+
wiphy_hrtimer_work_cancel(sdata->local->hw.wiphy,
68806880
&sdata->u.mgd.ml_reconf_work);
68816881
}
68826882
return;
@@ -6906,9 +6906,9 @@ static void ieee80211_ml_reconfiguration(struct ieee80211_sub_if_data *sdata,
69066906
}
69076907

69086908
sdata->u.mgd.removed_links = removed_links;
6909-
wiphy_delayed_work_queue(sdata->local->hw.wiphy,
6909+
wiphy_hrtimer_work_queue(sdata->local->hw.wiphy,
69106910
&sdata->u.mgd.ml_reconf_work,
6911-
TU_TO_JIFFIES(delay));
6911+
us_to_ktime(ieee80211_tu_to_usec(delay)));
69126912
}
69136913

69146914
static int ieee80211_ttlm_set_links(struct ieee80211_sub_if_data *sdata,
@@ -8793,7 +8793,7 @@ void ieee80211_sta_setup_sdata(struct ieee80211_sub_if_data *sdata)
87938793
ieee80211_csa_connection_drop_work);
87948794
wiphy_delayed_work_init(&ifmgd->tdls_peer_del_work,
87958795
ieee80211_tdls_peer_del_work);
8796-
wiphy_delayed_work_init(&ifmgd->ml_reconf_work,
8796+
wiphy_hrtimer_work_init(&ifmgd->ml_reconf_work,
87978797
ieee80211_ml_reconf_work);
87988798
wiphy_delayed_work_init(&ifmgd->reconf.wk,
87998799
ieee80211_ml_sta_reconf_timeout);

0 commit comments

Comments
 (0)