/* count for keys needing tailroom space allocation */
        int crypto_tx_tailroom_needed_cnt;
        int crypto_tx_tailroom_pending_dec;
-       struct delayed_work dec_tailroom_needed_wk;
+       struct wiphy_delayed_work dec_tailroom_needed_wk;
 
        struct net_device *dev;
        struct ieee80211_local *local;
 
 
        INIT_LIST_HEAD(&sdata->key_list);
 
-       INIT_DELAYED_WORK(&sdata->dec_tailroom_needed_wk,
-                         ieee80211_delayed_tailroom_dec);
+       wiphy_delayed_work_init(&sdata->dec_tailroom_needed_wk,
+                               ieee80211_delayed_tailroom_dec);
 
        for (i = 0; i < NUM_NL80211_BANDS; i++) {
                struct ieee80211_supported_band *sband;
 
                if (delay_tailroom) {
                        /* see ieee80211_delayed_tailroom_dec */
                        sdata->crypto_tx_tailroom_pending_dec++;
-                       schedule_delayed_work(&sdata->dec_tailroom_needed_wk,
-                                             HZ/2);
+                       wiphy_delayed_work_queue(sdata->local->hw.wiphy,
+                                                &sdata->dec_tailroom_needed_wk,
+                                                HZ / 2);
                } else {
                        decrease_tailroom_need_count(sdata, 1);
                }
        struct ieee80211_key *key, *tmp;
        LIST_HEAD(keys);
 
-       cancel_delayed_work_sync(&sdata->dec_tailroom_needed_wk);
+       wiphy_delayed_work_cancel(local->hw.wiphy,
+                                 &sdata->dec_tailroom_needed_wk);
 
        mutex_lock(&local->key_mtx);
 
        mutex_unlock(&local->key_mtx);
 }
 
-void ieee80211_delayed_tailroom_dec(struct work_struct *wk)
+void ieee80211_delayed_tailroom_dec(struct wiphy *wiphy,
+                                   struct wiphy_work *wk)
 {
        struct ieee80211_sub_if_data *sdata;
 
 
 /*
  * Copyright 2002-2004, Instant802 Networks, Inc.
  * Copyright 2005, Devicescape Software, Inc.
- * Copyright (C) 2019, 2022 Intel Corporation
+ * Copyright (C) 2019, 2022-2023 Intel Corporation
  */
 
 #ifndef IEEE80211_KEY_H
 #define rcu_dereference_check_key_mtx(local, ref) \
        rcu_dereference_check(ref, lockdep_is_held(&((local)->key_mtx)))
 
-void ieee80211_delayed_tailroom_dec(struct work_struct *wk);
+void ieee80211_delayed_tailroom_dec(struct wiphy *wiphy,
+                                   struct wiphy_work *wk);
 
 #endif /* IEEE80211_KEY_H */
 
                                sdata_unlock(sdata);
                        }
                }
-               flush_delayed_work(&sdata->dec_tailroom_needed_wk);
+               wiphy_delayed_work_flush(local->hw.wiphy,
+                                        &sdata->dec_tailroom_needed_wk);
        }
        ieee80211_scan_cancel(local);
 
 
                        break;
                }
 
-               flush_delayed_work(&sdata->dec_tailroom_needed_wk);
+               wiphy_delayed_work_flush(local->hw.wiphy,
+                                        &sdata->dec_tailroom_needed_wk);
                drv_remove_interface(local, sdata);
        }