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:
@@ -193,17 +193,23 @@ __dsc_driver_trans_start_wait(struct dsc_driver *driver, const char *desc)
|
||||
|
||||
__dsc_lock(driver);
|
||||
|
||||
/* try to start without waiting */
|
||||
status = __dsc_driver_trans_start_nolock(driver, desc);
|
||||
if (QDF_IS_STATUS_SUCCESS(status)) {
|
||||
__dsc_unlock(driver);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
if (QDF_IS_STATUS_SUCCESS(status))
|
||||
goto unlock;
|
||||
|
||||
__dsc_trans_queue(&driver->trans, &tran, desc);
|
||||
status = __dsc_trans_queue(&driver->trans, &tran, desc);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
goto unlock;
|
||||
|
||||
__dsc_unlock(driver);
|
||||
|
||||
return __dsc_tran_wait(&tran);
|
||||
|
||||
unlock:
|
||||
__dsc_unlock(driver);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
|
Reference in New Issue
Block a user