diff options
Diffstat (limited to 'arch/x86/kernel/dumpstack_64.c')
| -rw-r--r-- | arch/x86/kernel/dumpstack_64.c | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c index 88ce2ffdb110..563e28d14f2c 100644 --- a/arch/x86/kernel/dumpstack_64.c +++ b/arch/x86/kernel/dumpstack_64.c @@ -37,6 +37,15 @@ const char *stack_type_name(enum stack_type type)  	if (type == STACK_TYPE_IRQ)  		return "IRQ"; +	if (type == STACK_TYPE_ENTRY) { +		/* +		 * On 64-bit, we have a generic entry stack that we +		 * use for all the kernel entry points, including +		 * SYSENTER. +		 */ +		return "ENTRY_TRAMPOLINE"; +	} +  	if (type >= STACK_TYPE_EXCEPTION && type <= STACK_TYPE_EXCEPTION_LAST)  		return exception_stack_names[type - STACK_TYPE_EXCEPTION]; @@ -115,6 +124,9 @@ int get_stack_info(unsigned long *stack, struct task_struct *task,  	if (in_irq_stack(stack, info))  		goto recursion_check; +	if (in_entry_stack(stack, info)) +		goto recursion_check; +  	goto unknown;  recursion_check:  |