On 9/1/21 07:19, Imran Khan wrote: > To print a stack entries, users of stackdepot, first > use stack_depot_fetch to get a list of stack entries > and then use stack_trace_print to print this list. > Provide a helper in stackdepot to print stack entries > based on stackdepot handle. > > Signed-off-by: Imran Khan <imran.f.khan@xxxxxxxxxx> > Suggested-by: Vlastimil Babka <vbabka@xxxxxxx> You should convert existing users together with the patch that introduces the helper. I think print_stack() in mm/kasan/report.c, and __dump_page_owner() could use this. > --- > lib/stackdepot.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) It's missing a declaration in include/linux/stackdepot.h Perhaps it could be all be a static inline there anyway. > diff --git a/lib/stackdepot.c b/lib/stackdepot.c > index 1d42ef9ef766..eab4476b060b 100644 > --- a/lib/stackdepot.c > +++ b/lib/stackdepot.c > @@ -214,6 +214,23 @@ static inline struct stack_record *find_stack(struct stack_record *bucket, > return NULL; > } > > +/** > + * stack_depot_print - print stack entries from a depot > + * > + * @handle: Stack depot handle which was returned from > + * stack_depot_save(). > + * > + */ > +void stack_depot_print(depot_stack_handle_t stack) > +{ > + unsigned long *entries; > + unsigned int nr_entries; > + > + nr_entries = stack_depot_fetch(stack, &entries); > + stack_trace_print(entries, nr_entries, 0); > +} > +EXPORT_SYMBOL_GPL(stack_depot_print); > + > /** > * stack_depot_fetch - Fetch stack entries from a depot > * >