lockdep_assert_held(&local->mtx);
        lockdep_assert_held(&local->chanctx_mtx);
 
-       if (sdata->vif.bss_conf.eht_puncturing != sdata->vif.bss_conf.csa_punct_bitmap) {
-               sdata->vif.bss_conf.eht_puncturing =
-                                       sdata->vif.bss_conf.csa_punct_bitmap;
-               changed |= BSS_CHANGED_EHT_PUNCTURING;
-       }
-
        /*
         * using reservation isn't immediate as it may be deferred until later
         * with multi-vif. once reservation is complete it will re-schedule the
        if (err)
                return err;
 
+       if (sdata->vif.bss_conf.eht_puncturing != sdata->vif.bss_conf.csa_punct_bitmap) {
+               sdata->vif.bss_conf.eht_puncturing =
+                                       sdata->vif.bss_conf.csa_punct_bitmap;
+               changed |= BSS_CHANGED_EHT_PUNCTURING;
+       }
+
        ieee80211_link_info_change_notify(sdata, &sdata->deflink, changed);
 
        if (sdata->deflink.csa_block_tx) {