diff --git a/qdf/linux/src/qdf_threads.c b/qdf/linux/src/qdf_threads.c index 1cab9b1317cb..43bfe0cba35d 100644 --- a/qdf/linux/src/qdf_threads.c +++ b/qdf/linux/src/qdf_threads.c @@ -190,7 +190,7 @@ qdf_export_symbol(qdf_wake_up_process); #if ((defined(WLAN_HOST_ARCH_ARM) && !WLAN_HOST_ARCH_ARM) || \ LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) || \ defined(BACKPORTED_EXPORT_SAVE_STACK_TRACE_TSK_ARM)) && \ - defined(CONFIG_STACKTRACE) + defined(CONFIG_STACKTRACE) && !defined(CONFIG_ARCH_STACKWALK) #define QDF_PRINT_TRACE_COUNT 32 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 2, 0)) @@ -199,12 +199,15 @@ void qdf_print_thread_trace(qdf_thread_t *thread) const int spaces = 4; struct task_struct *task = thread; unsigned long entries[QDF_PRINT_TRACE_COUNT] = {0}; - unsigned int nr_entries; - unsigned int max_entries = QDF_PRINT_TRACE_COUNT; - int skip = 0; + struct stack_trace trace = { + .nr_entries = 0, + .skip = 0, + .entries = &entries[0], + .max_entries = QDF_PRINT_TRACE_COUNT, + }; - nr_entries = stack_trace_save_tsk(task, entries, max_entries, skip); - stack_trace_print(entries, nr_entries, spaces); + save_stack_trace_tsk(task, &trace); + stack_trace_print(entries, trace.nr_entries, spaces); } #else void qdf_print_thread_trace(qdf_thread_t *thread)