When add an interface immediately after removing the interface, vdev deletion in firmware might not have been completed. add vdev_delete_resp_event and wait_event_timeout to synchronize with firmware. Peer creation in firmware fails if last peer deletion is still in progress, add wait for the event after deleting every peer from host driver to synchronize with firmware. 1) add vdev delete resp event and wait event to get ack from firmware 2) add wait event timeout for peer delete to get ack from firmware 3) code clean up and replace the api 'ath11k_mac_get_ar_vdev_stop_status' with 'ath11k_mac_get_ar_by_vdev_id' V2: Rebased on latest ath.git TOT - Addressed Kalle's comment. Ritesh Singh (3): ath11k: vdev delete synchronization with firmware ath11k: peer delete synchronization with firmware ath11k: remove "ath11k_mac_get_ar_vdev_stop_status" references drivers/net/wireless/ath/ath11k/core.c | 2 + drivers/net/wireless/ath/ath11k/core.h | 9 ++-- drivers/net/wireless/ath/ath11k/mac.c | 82 ++++++++++++++++------------------ drivers/net/wireless/ath/ath11k/mac.h | 2 - drivers/net/wireless/ath/ath11k/peer.c | 44 ++++++++++++++++-- drivers/net/wireless/ath/ath11k/peer.h | 2 + drivers/net/wireless/ath/ath11k/wmi.c | 81 ++++++++++++++++++++++++++++++--- drivers/net/wireless/ath/ath11k/wmi.h | 4 ++ 8 files changed, 166 insertions(+), 60 deletions(-) -- 2.7.4