u32 action)
 {
        struct iwl_mac_ctx_cmd cmd = {};
-       u32 tfd_queue_msk = BIT(mvm->snif_queue);
+       u32 tfd_queue_msk = 0;
        int ret;
 
        WARN_ON(vif->type != NL80211_IFTYPE_MONITOR);
                                       MAC_FILTER_ACCEPT_GRP);
        ieee80211_hw_set(mvm->hw, RX_INCLUDES_FCS);
 
+       /*
+        * the queue mask is only relevant for old TX API, and
+        * mvm->snif_queue isn't set here (it's still set to
+        * IWL_MVM_INVALID_QUEUE so the BIT() of it is UB)
+        */
+       if (!iwl_mvm_has_new_tx_api(mvm))
+               tfd_queue_msk = BIT(mvm->snif_queue);
+
        /* Allocate sniffer station */
        ret = iwl_mvm_allocate_int_sta(mvm, &mvm->snif_sta, tfd_queue_msk,
                                       vif->type, IWL_STA_GENERAL_PURPOSE);