qcacld-3.0: Add transition wait timeout detection to DSC
In order to catch and debug long waiting transitions, add a watchdog timer to Driver Synchronization Core (DSC) transition start wait calls. If the timer expires, panic the driver for offline debugging. Change-Id: I557f87ada182ced389e7d5e63fe8b78f47e1d6b5 CRs-Fixed: 2328594
This commit is contained in:
@@ -172,17 +172,23 @@ __dsc_vdev_trans_start_wait(struct dsc_vdev *vdev, const char *desc)
|
||||
|
||||
__dsc_driver_lock(vdev);
|
||||
|
||||
/* try to start without waiting */
|
||||
status = __dsc_vdev_trans_start_nolock(vdev, desc);
|
||||
if (QDF_IS_STATUS_SUCCESS(status)) {
|
||||
__dsc_driver_unlock(vdev);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
if (QDF_IS_STATUS_SUCCESS(status))
|
||||
goto unlock;
|
||||
|
||||
__dsc_trans_queue(&vdev->trans, &tran, desc);
|
||||
status = __dsc_trans_queue(&vdev->trans, &tran, desc);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
goto unlock;
|
||||
|
||||
__dsc_driver_unlock(vdev);
|
||||
|
||||
return __dsc_tran_wait(&tran);
|
||||
|
||||
unlock:
|
||||
__dsc_driver_unlock(vdev);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
QDF_STATUS dsc_vdev_trans_start_wait(struct dsc_vdev *vdev, const char *desc)
|
||||
|
Reference in New Issue
Block a user