diff --git a/qdf/inc/qdf_platform.h b/qdf/inc/qdf_platform.h index 806d3d3a242f..1c6ae8642d17 100644 --- a/qdf/inc/qdf_platform.h +++ b/qdf/inc/qdf_platform.h @@ -26,10 +26,15 @@ /** * qdf_self_recovery_callback() - callback for self recovery + * @reason: the reason for the recovery request + * @func: the caller's function name + * @line: the line number of the callsite * * Return: none */ -typedef void (*qdf_self_recovery_callback)(enum qdf_hang_reason); +typedef void (*qdf_self_recovery_callback)(enum qdf_hang_reason reason, + const char *func, + const uint32_t line); /** * qdf_ssr_callback() - callback for ssr @@ -81,7 +86,9 @@ void qdf_register_self_recovery_callback(qdf_self_recovery_callback callback); * * Return: None */ -void qdf_trigger_self_recovery(void); +#define qdf_trigger_self_recovery() \ + __qdf_trigger_self_recovery(__func__, __LINE__) +void __qdf_trigger_self_recovery(const char *func, const uint32_t line); /** * qdf_register_ssr_protect_callbacks() - register [un]protect callbacks diff --git a/qdf/src/qdf_platform.c b/qdf/src/qdf_platform.c index 7e917debf611..ff8ae282b447 100644 --- a/qdf/src/qdf_platform.c +++ b/qdf/src/qdf_platform.c @@ -57,13 +57,13 @@ void qdf_register_self_recovery_callback(qdf_self_recovery_callback callback) qdf_export_symbol(qdf_register_self_recovery_callback); -void qdf_trigger_self_recovery(void) +void __qdf_trigger_self_recovery(const char *func, const uint32_t line) { if (self_recovery_cb) - self_recovery_cb(QDF_REASON_UNSPECIFIED); + self_recovery_cb(QDF_REASON_UNSPECIFIED, func, line); } -qdf_export_symbol(qdf_trigger_self_recovery); +qdf_export_symbol(__qdf_trigger_self_recovery); void qdf_register_ssr_protect_callbacks(qdf_ssr_callback protect, qdf_ssr_callback unprotect)