diff --git a/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_tx_ops.c b/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_tx_ops.c index bb72ce1d6e..e28f2c7ffd 100644 --- a/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_tx_ops.c +++ b/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_tx_ops.c @@ -76,7 +76,6 @@ target_if_vdev_mgr_rsp_timer_stop(struct wlan_objmgr_psoc *psoc, vdev_rsp->psoc = NULL; } } else { - vdev_rsp->timer_status = QDF_STATUS_SUCCESS; if (clear_bit == DELETE_RESPONSE_BIT) { txops->psoc_vdev_rsp_timer_deinit(psoc, vdev_rsp->vdev_id); @@ -85,6 +84,12 @@ target_if_vdev_mgr_rsp_timer_stop(struct wlan_objmgr_psoc *psoc, } } + /* + * Reset the timer_status to clear any error state. As this + * variable is persistent, any leftover error status can cause + * undesirable effects. + */ + vdev_rsp->timer_status = QDF_STATUS_SUCCESS; /* * Releasing reference taken at the time of * starting response timer