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 ---