From 5c881ec3ec13496062c59017e3dbf2992a7585ca Mon Sep 17 00:00:00 2001 From: Rakshith Suresh Patkar Date: Fri, 5 Oct 2018 15:21:37 +0530 Subject: [PATCH] qcacmn: Update debug info in wbuff_buff_get() The debug node for all the nbufs allocated by wbuff for a module contains the file and line info pertaining to wbuff_module_register(). To enhance debugging, Use qdf_net_buf_debug_update_node() to update debug info when nbuf is requested through wbuff_buff_get(). Change-Id: Ie8b148ef6313bd3b265cfa3f141e8d0de8b75597 CRs-Fixed: 2328257 --- wbuff/inc/wbuff.h | 8 ++++++-- wbuff/src/wbuff.c | 7 +++++-- wmi/src/wmi_unified.c | 6 ++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/wbuff/inc/wbuff.h b/wbuff/inc/wbuff.h index 4a7143582c2e..4e7c93fc44ee 100644 --- a/wbuff/inc/wbuff.h +++ b/wbuff/inc/wbuff.h @@ -95,11 +95,14 @@ QDF_STATUS wbuff_module_deregister(struct wbuff_mod_handle *hdl); * wbuff_buff_get() - return buffer to the requester * @handle: wbuff_handle corresponding to the module * @len: length of buffer requested + * file_name: file from which buffer is requested + * line_num: line number in the file * * Return: Network buffer if success * NULL if failure */ -qdf_nbuf_t wbuff_buff_get(struct wbuff_mod_handle *hdl, uint32_t len); +qdf_nbuf_t wbuff_buff_get(struct wbuff_mod_handle *hdl, uint32_t len, + uint8_t *file_name, uint32_t line_num); /** * wbuff_buff_put() - put the buffer back to wbuff pool @@ -136,7 +139,8 @@ static inline QDF_STATUS wbuff_module_deregister(struct wbuff_mod_handle *hdl) } static inline qdf_nbuf_t -wbuff_buff_get(struct wbuff_mod_handle *hdl, uint32_t len) +wbuff_buff_get(struct wbuff_mod_handle *hdl, uint32_t len, int8_t *file_name, + uint32_t line_num) { return NULL; } diff --git a/wbuff/src/wbuff.c b/wbuff/src/wbuff.c index ca3516d15283..b77c2213bea3 100644 --- a/wbuff/src/wbuff.c +++ b/wbuff/src/wbuff.c @@ -296,7 +296,8 @@ QDF_STATUS wbuff_module_deregister(struct wbuff_mod_handle *hdl) return QDF_STATUS_SUCCESS; } -qdf_nbuf_t wbuff_buff_get(struct wbuff_mod_handle *hdl, uint32_t len) +qdf_nbuf_t wbuff_buff_get(struct wbuff_mod_handle *hdl, uint32_t len, + uint8_t *file_name, uint32_t line_num) { struct wbuff_handle *handle; struct wbuff_module *mod = NULL; @@ -321,8 +322,10 @@ qdf_nbuf_t wbuff_buff_get(struct wbuff_mod_handle *hdl, uint32_t len) mod->pending_returns++; } qdf_spin_unlock_bh(&mod->lock); - if (buf) + if (buf) { qdf_nbuf_set_next(buf, NULL); + qdf_net_buf_debug_update_node(buf, file_name, line_num); + } return buf; } diff --git a/wmi/src/wmi_unified.c b/wmi/src/wmi_unified.c index 55c36a87a42f..01af49706d22 100644 --- a/wmi/src/wmi_unified.c +++ b/wmi/src/wmi_unified.c @@ -1525,7 +1525,8 @@ wmi_buf_alloc_debug(wmi_unified_t wmi_handle, uint32_t len, uint8_t *file_name, return NULL; } - wmi_buf = wbuff_buff_get(wmi_handle->wbuff_handle, len); + wmi_buf = wbuff_buff_get(wmi_handle->wbuff_handle, len, file_name, + line_num); if (!wmi_buf) wmi_buf = qdf_nbuf_alloc_debug(NULL, roundup(len + WMI_MIN_HEAD_ROOM, @@ -1567,7 +1568,8 @@ wmi_buf_t wmi_buf_alloc_fl(wmi_unified_t wmi_handle, uint32_t len, return NULL; } - wmi_buf = wbuff_buff_get(wmi_handle->wbuff_handle, len); + wmi_buf = wbuff_buff_get(wmi_handle->wbuff_handle, len, __FILE__, + __LINE__); if (!wmi_buf) wmi_buf = qdf_nbuf_alloc_fl(NULL, roundup(len + WMI_MIN_HEAD_ROOM, 4), WMI_MIN_HEAD_ROOM, 4,