dumpstack.c (6e60e583426c2f8751c22c2dfe5c207083b4483a) | dumpstack.c (72f5e08dbba2d01aa90b592cf76c378ea233b00b) |
---|---|
1/* 2 * Copyright (C) 1991, 1992 Linus Torvalds 3 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs 4 */ 5#include <linux/kallsyms.h> 6#include <linux/kprobes.h> 7#include <linux/uaccess.h> 8#include <linux/utsname.h> --- 31 unchanged lines hidden (view full) --- 40 info->end = end; 41 info->next_sp = NULL; 42 43 return true; 44} 45 46bool in_sysenter_stack(unsigned long *stack, struct stack_info *info) 47{ | 1/* 2 * Copyright (C) 1991, 1992 Linus Torvalds 3 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs 4 */ 5#include <linux/kallsyms.h> 6#include <linux/kprobes.h> 7#include <linux/uaccess.h> 8#include <linux/utsname.h> --- 31 unchanged lines hidden (view full) --- 40 info->end = end; 41 info->next_sp = NULL; 42 43 return true; 44} 45 46bool in_sysenter_stack(unsigned long *stack, struct stack_info *info) 47{ |
48 struct tss_struct *tss = this_cpu_ptr(&cpu_tss); | 48 int cpu = smp_processor_id(); 49 struct tss_struct *tss = &get_cpu_entry_area(cpu)->tss; |
49 50 /* Treat the canary as part of the stack for unwinding purposes. */ 51 void *begin = &tss->SYSENTER_stack_canary; 52 void *end = (void *)&tss->SYSENTER_stack + sizeof(tss->SYSENTER_stack); 53 54 if ((void *)stack < begin || (void *)stack >= end) 55 return false; 56 --- 306 unchanged lines hidden --- | 50 51 /* Treat the canary as part of the stack for unwinding purposes. */ 52 void *begin = &tss->SYSENTER_stack_canary; 53 void *end = (void *)&tss->SYSENTER_stack + sizeof(tss->SYSENTER_stack); 54 55 if ((void *)stack < begin || (void *)stack >= end) 56 return false; 57 --- 306 unchanged lines hidden --- |