--- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c @@ -4215,7 +4215,8 @@ static void ath11k_mgmt_over_wmi_tx_work } arvif = ath11k_vif_to_arvif(info->control.vif); - if (ar->allocated_vdev_map & (1LL << arvif->vdev_id)) { + if ((ar->allocated_vdev_map & (1LL << arvif->vdev_id)) && + arvif->is_started) { ret = ath11k_mac_mgmt_tx_wmi(ar, arvif, skb); if (ret) { ath11k_warn(ar->ab, "failed to tx mgmt frame, vdev_id %d :%d\n", @@ -4226,8 +4227,8 @@ static void ath11k_mgmt_over_wmi_tx_work } } else { ath11k_warn(ar->ab, - "dropping mgmt frame for deleted vdev %d, flags 0x%x\n", - arvif->vdev_id, info->control.flags); + "dropping mgmt frame for vdev %d, flags 0x%x is_started %d\n", + arvif->vdev_id, info->control.flags, arvif->is_started); ieee80211_free_txskb(ar->hw, skb); } }