diff --git a/wmi/inc/wmi_unified_api.h b/wmi/inc/wmi_unified_api.h index 8ef440a39b..01c72ad5ed 100644 --- a/wmi/inc/wmi_unified_api.h +++ b/wmi/inc/wmi_unified_api.h @@ -4249,4 +4249,17 @@ QDF_STATUS wmi_extract_pdev_csa_switch_count_status( wmi_unified_t wmi_handle, void *evt_buf, struct pdev_csa_switch_count_status *param); + +/** + * wmi_validate_handle() - Validate WMI handle + * @wmi_handle: wmi handle + * + * This function will log on error and hence caller should not log on error + * + * Return: errno if WMI handle is NULL; 0 otherwise + */ +#define wmi_validate_handle(wmi_handle) \ + __wmi_validate_handle(wmi_handle, __func__) +int __wmi_validate_handle(wmi_unified_t wmi_handle, const char *func); + #endif /* _WMI_UNIFIED_API_H_ */ diff --git a/wmi/src/wmi_unified.c b/wmi/src/wmi_unified.c index d009da5170..ba8c7e883a 100644 --- a/wmi/src/wmi_unified.c +++ b/wmi/src/wmi_unified.c @@ -3639,3 +3639,13 @@ void wmi_pdev_id_conversion_enable(wmi_unified_t wmi_handle, pdev_id_map, size); } + +int __wmi_validate_handle(wmi_unified_t wmi_handle, const char *func) +{ + if (!wmi_handle) { + wmi_err("Invalid WMI handle (via %s)", func); + return -EINVAL; + } + + return 0; +}