{
        int num_mgmt;
 
+       lockdep_assert_wiphy(ath12k_ar_to_hw(ar)->wiphy);
+
        ieee80211_free_txskb(ath12k_ar_to_hw(ar), skb);
 
        num_mgmt = atomic_dec_if_positive(&ar->num_pending_mgmt_tx);
        int buf_id;
        int ret;
 
+       lockdep_assert_wiphy(ath12k_ar_to_hw(ar)->wiphy);
+
        ATH12K_SKB_CB(skb)->ar = ar;
        spin_lock_bh(&ar->txmgmt_idr_lock);
        buf_id = idr_alloc(&ar->txmgmt_idr, skb, 0,
                ath12k_mgmt_over_wmi_tx_drop(ar, skb);
 }
 
-static void ath12k_mgmt_over_wmi_tx_work(struct work_struct *work)
+static void ath12k_mgmt_over_wmi_tx_work(struct wiphy *wiphy, struct wiphy_work *work)
 {
        struct ath12k *ar = container_of(work, struct ath12k, wmi_mgmt_tx_work);
        struct ath12k_skb_cb *skb_cb;
        struct sk_buff *skb;
        int ret;
 
+       lockdep_assert_wiphy(wiphy);
+
        while ((skb = skb_dequeue(&ar->wmi_mgmt_tx_queue)) != NULL) {
                skb_cb = ATH12K_SKB_CB(skb);
                if (!skb_cb->vif) {
 
        skb_queue_tail(q, skb);
        atomic_inc(&ar->num_pending_mgmt_tx);
-       ieee80211_queue_work(ath12k_ar_to_hw(ar), &ar->wmi_mgmt_tx_work);
+       wiphy_work_queue(ath12k_ar_to_hw(ar)->wiphy, &ar->wmi_mgmt_tx_work);
 
        return 0;
 }
 
 void ath12k_mac_drain_tx(struct ath12k *ar)
 {
+       lockdep_assert_wiphy(ath12k_ar_to_hw(ar)->wiphy);
+
        /* make sure rcu-protected mac80211 tx path itself is drained */
        synchronize_net();
 
-       cancel_work_sync(&ar->wmi_mgmt_tx_work);
+       wiphy_work_cancel(ath12k_ar_to_hw(ar)->wiphy, &ar->wmi_mgmt_tx_work);
        ath12k_mgmt_over_wmi_tx_purge(ar);
 }
 
        struct ath12k *ar;
        int i;
 
+       lockdep_assert_wiphy(ah->hw->wiphy);
+
        for_each_ar(ah, ar, i)
                ath12k_mac_drain_tx(ar);
 }
 
 int ath12k_mac_wait_tx_complete(struct ath12k *ar)
 {
+       lockdep_assert_wiphy(ath12k_ar_to_hw(ar)->wiphy);
+
        ath12k_mac_drain_tx(ar);
        return ath12k_mac_flush(ar);
 }
        INIT_DELAYED_WORK(&ar->scan.timeout, ath12k_scan_timeout_work);
        INIT_WORK(&ar->regd_update_work, ath12k_regd_update_work);
 
-       INIT_WORK(&ar->wmi_mgmt_tx_work, ath12k_mgmt_over_wmi_tx_work);
+       wiphy_work_init(&ar->wmi_mgmt_tx_work, ath12k_mgmt_over_wmi_tx_work);
        skb_queue_head_init(&ar->wmi_mgmt_tx_queue);
 }