FAILED: patch "[PATCH] wifi: mac80211: use wiphy_hrtimer_work for ttlm_work" failed to apply to 6.12-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 6.12-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.12.y
git checkout FETCH_HEAD
git cherry-pick -x dfa865d490b1bd252045463588a91a4d3c82f3c8
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2025110934-construct-gestate-8ed7@gregkh' --subject-prefix 'PATCH 6.12.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From dfa865d490b1bd252045463588a91a4d3c82f3c8 Mon Sep 17 00:00:00 2001
From: Benjamin Berg <[email protected]>
Date: Tue, 28 Oct 2025 12:58:38 +0200
Subject: [PATCH] wifi: mac80211: use wiphy_hrtimer_work for ttlm_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.
net/mac80211/ieee80211_i.h +1 -1
@@ -616,7 +616,7 @@ struct ieee80211_if_managed {u16 removed_links;/* TID-to-link mapping support */ -struct wiphy_delayed_work ttlm_work; +struct wiphy_hrtimer_work ttlm_work;struct ieee80211_adv_ttlm_info ttlm_info;struct wiphy_work teardown_ttlm_work;
net/mac80211/mlme.c +12 -12
@@ -45,7 +45,7 @@#define IEEE80211_ASSOC_TIMEOUT_SHORT (HZ / 10)#define IEEE80211_ASSOC_MAX_TRIES 3 -#define IEEE80211_ADV_TTLM_SAFETY_BUFFER_MS msecs_to_jiffies(100) +#define IEEE80211_ADV_TTLM_SAFETY_BUFFER_MS (100 * USEC_PER_MSEC)#define IEEE80211_ADV_TTLM_ST_UNDERFLOW 0xff00#define IEEE80211_NEG_TTLM_REQ_TIMEOUT (HZ / 5)
@@ -4242,7 +4242,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,memset (&sdata->u.mgd.ttlm_info,0 ,sizeof (sdata->u.mgd.ttlm_info)); -wiphy_delayed_work_cancel (sdata->local->hw.wiphy, &ifmgd->ttlm_work); +wiphy_hrtimer_work_cancel (sdata->local->hw.wiphy, &ifmgd->ttlm_work);memset (&sdata->vif.neg_ttlm,0 ,sizeof (sdata->vif.neg_ttlm)); wiphy_delayed_work_cancel(sdata->local->hw.wiphy,
@@ -7095,7 +7095,7 @@ static void ieee80211_process_adv_ttlm(struct ieee80211_sub_if_data *sdata,/* if a planned TID-to-link mapping was cancelled - * abort it */ -wiphy_delayed_work_cancel (sdata->local->hw.wiphy, +wiphy_hrtimer_work_cancel (sdata->local->hw.wiphy, &sdata->u.mgd.ttlm_work); }else if (sdata->u.mgd.ttlm_info.active) {/* if no TID-to-link element, set to default mapping in
@@ -7130,7 +7130,7 @@ static void ieee80211_process_adv_ttlm(struct ieee80211_sub_if_data *sdata,if (ttlm_info.switch_time) {u16 beacon_ts_tu, st_tu, delay; -u32 delay_jiffies; +u64 delay_usec;u64 mask;/* The t2l map switch time is indicated with a partial
@@ -7152,23 +7152,23 @@ static void ieee80211_process_adv_ttlm(struct ieee80211_sub_if_data *sdata,if (delay >IEEE80211_ADV_TTLM_ST_UNDERFLOW )return ; - delay_jiffies =TU_TO_JIFFIES (delay); + delay_usec =ieee80211_tu_to_usec (delay);/* Link switching can take time, so schedule it * 100ms before to be ready on time */ -if (delay_jiffies >IEEE80211_ADV_TTLM_SAFETY_BUFFER_MS ) - delay_jiffies -= +if (delay_usec >IEEE80211_ADV_TTLM_SAFETY_BUFFER_MS ) + delay_usec -=IEEE80211_ADV_TTLM_SAFETY_BUFFER_MS ;else - delay_jiffies =0 ; + delay_usec =0 ; sdata->u.mgd.ttlm_info = ttlm_info; -wiphy_delayed_work_cancel (sdata->local->hw.wiphy, +wiphy_hrtimer_work_cancel (sdata->local->hw.wiphy, &sdata->u.mgd.ttlm_work); -wiphy_delayed_work_queue (sdata->local->hw.wiphy, +wiphy_hrtimer_work_queue (sdata->local->hw.wiphy, &sdata->u.mgd.ttlm_work, - delay_jiffies); +us_to_ktime (delay_usec));return ; } }
@@ -8802,7 +8802,7 @@ void ieee80211_sta_setup_sdata(struct ieee80211_sub_if_data *sdata)timer_setup (&ifmgd->conn_mon_timer, ieee80211_sta_conn_mon_timer,0 );wiphy_delayed_work_init (&ifmgd->tx_tspec_wk, ieee80211_sta_handle_tspec_ac_params_wk); -wiphy_delayed_work_init (&ifmgd->ttlm_work, +wiphy_hrtimer_work_init (&ifmgd->ttlm_work, ieee80211_tid_to_link_map_work);wiphy_delayed_work_init (&ifmgd->neg_ttlm_timeout_work, ieee80211_neg_ttlm_timeout_work);