Subject: [PATCH] ath11k: fix invalid vdev id fw crash num_started_vdevs is incremented for vdev restart scenario also. Once num_started_vdevs is wrongly incremented, which is not helping to stop the monitor vdev in multiple VAP cases. Since monitor vap not stopped, deletion of virtual monitor vdev is missed. It leads to vdev id leaks in the free_vdev_map. In that case, when we try to create multiple VAPs, invalid vdev id is passed to firmware due to zero value of free_vdev_map. So avoid the num_started_vdevs incrementing for restart case. so that monitor vdev get stopped and deleted properly also vdev id leaks not happen. will have proper vdev id from free_vdev_map. Signed-off-by: Karthikeyan Periyasamy --- --- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c @@ -6503,7 +6503,9 @@ ath11k_mac_vdev_start_restart(struct ath return ret; } - ar->num_started_vdevs++; + if (!restart) + ar->num_started_vdevs++; + ath11k_dbg(ab, ATH11K_DBG_MAC, "vdev %pM started, vdev_id %d\n", arvif->vif->addr, arvif->vdev_id);