mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
[IA64] Add CONFIG_STACKTRACE_SUPPORT
Several Linux features are dependent on stack trace support. Add it so they can be enabled. Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
parent
57aebd7739
commit
85718fae2a
@ -62,6 +62,9 @@ config NEED_SG_DMA_LENGTH
|
||||
config SWIOTLB
|
||||
bool
|
||||
|
||||
config STACKTRACE_SUPPORT
|
||||
def_bool y
|
||||
|
||||
config GENERIC_LOCKBREAK
|
||||
def_bool n
|
||||
|
||||
|
@ -34,6 +34,7 @@ obj-$(CONFIG_AUDIT) += audit.o
|
||||
obj-$(CONFIG_PCI_MSI) += msi_ia64.o
|
||||
mca_recovery-y += mca_drv.o mca_drv_asm.o
|
||||
obj-$(CONFIG_IA64_MC_ERR_INJECT)+= err_inject.o
|
||||
obj-$(CONFIG_STACKTRACE) += stacktrace.o
|
||||
|
||||
obj-$(CONFIG_PARAVIRT) += paravirt.o paravirtentry.o \
|
||||
paravirt_patch.o
|
||||
|
39
arch/ia64/kernel/stacktrace.c
Normal file
39
arch/ia64/kernel/stacktrace.c
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* arch/ia64/kernel/stacktrace.c
|
||||
*
|
||||
* Stack trace management functions
|
||||
*
|
||||
*/
|
||||
#include <linux/sched.h>
|
||||
#include <linux/stacktrace.h>
|
||||
#include <linux/module.h>
|
||||
|
||||
static void
|
||||
ia64_do_save_stack(struct unw_frame_info *info, void *arg)
|
||||
{
|
||||
struct stack_trace *trace = arg;
|
||||
unsigned long ip;
|
||||
int skip = trace->skip;
|
||||
|
||||
trace->nr_entries = 0;
|
||||
do {
|
||||
unw_get_ip(info, &ip);
|
||||
if (ip == 0)
|
||||
break;
|
||||
if (skip == 0) {
|
||||
trace->entries[trace->nr_entries++] = ip;
|
||||
if (trace->nr_entries == trace->max_entries)
|
||||
break;
|
||||
} else
|
||||
skip--;
|
||||
} while (unw_unwind(info) >= 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Save stack-backtrace addresses into a stack_trace buffer.
|
||||
*/
|
||||
void save_stack_trace(struct stack_trace *trace)
|
||||
{
|
||||
unw_init_running(ia64_do_save_stack, trace);
|
||||
}
|
||||
EXPORT_SYMBOL(save_stack_trace);
|
Loading…
Reference in New Issue
Block a user