diff --git a/qdf/inc/qdf_nbuf.h b/qdf/inc/qdf_nbuf.h index a1ad58bd70a1..2b89b5eebbab 100644 --- a/qdf/inc/qdf_nbuf.h +++ b/qdf/inc/qdf_nbuf.h @@ -2734,11 +2734,34 @@ qdf_nbuf_linearize(qdf_nbuf_t buf) return __qdf_nbuf_linearize(buf); } +#ifdef NBUF_MEMORY_DEBUG +#define qdf_nbuf_unshare(d) \ + qdf_nbuf_unshare_debug(d, __FILE__, __LINE__) + +static inline qdf_nbuf_t +qdf_nbuf_unshare_debug(qdf_nbuf_t buf, uint8_t *file_name, uint32_t line_num) +{ + qdf_nbuf_t unshared_buf; + + unshared_buf = __qdf_nbuf_unshare(buf); + + if (qdf_likely(buf != unshared_buf)) { + qdf_net_buf_debug_delete_node(buf); + + qdf_net_buf_debug_add_node(unshared_buf, 0, + file_name, line_num); + } + + return unshared_buf; +} + +#else static inline qdf_nbuf_t qdf_nbuf_unshare(qdf_nbuf_t buf) { return __qdf_nbuf_unshare(buf); } +#endif static inline bool qdf_nbuf_is_cloned(qdf_nbuf_t buf)