diff options
-rw-r--r-- | arch/arm64/include/asm/percpu.h | 2 | ||||
-rw-r--r-- | arch/arm64/include/asm/perf_event.h | 2 | ||||
-rw-r--r-- | arch/arm64/include/asm/stack_pointer.h | 9 | ||||
-rw-r--r-- | arch/arm64/include/asm/thread_info.h | 6 | ||||
-rw-r--r-- | arch/arm64/kernel/return_address.c | 1 | ||||
-rw-r--r-- | arch/arm64/kernel/stacktrace.c | 1 | ||||
-rw-r--r-- | arch/arm64/kernel/traps.c | 1 |
7 files changed, 17 insertions, 5 deletions
diff --git a/arch/arm64/include/asm/percpu.h b/arch/arm64/include/asm/percpu.h index 4afb6fcc85ce..3bd498e4de4c 100644 --- a/arch/arm64/include/asm/percpu.h +++ b/arch/arm64/include/asm/percpu.h | |||
@@ -16,6 +16,8 @@ | |||
16 | #ifndef __ASM_PERCPU_H | 16 | #ifndef __ASM_PERCPU_H |
17 | #define __ASM_PERCPU_H | 17 | #define __ASM_PERCPU_H |
18 | 18 | ||
19 | #include <asm/stack_pointer.h> | ||
20 | |||
19 | static inline void set_my_cpu_offset(unsigned long off) | 21 | static inline void set_my_cpu_offset(unsigned long off) |
20 | { | 22 | { |
21 | asm volatile("msr tpidr_el1, %0" :: "r" (off) : "memory"); | 23 | asm volatile("msr tpidr_el1, %0" :: "r" (off) : "memory"); |
diff --git a/arch/arm64/include/asm/perf_event.h b/arch/arm64/include/asm/perf_event.h index 2065f46fa740..9eee2beb4dbc 100644 --- a/arch/arm64/include/asm/perf_event.h +++ b/arch/arm64/include/asm/perf_event.h | |||
@@ -17,6 +17,8 @@ | |||
17 | #ifndef __ASM_PERF_EVENT_H | 17 | #ifndef __ASM_PERF_EVENT_H |
18 | #define __ASM_PERF_EVENT_H | 18 | #define __ASM_PERF_EVENT_H |
19 | 19 | ||
20 | #include <asm/stack_pointer.h> | ||
21 | |||
20 | #define ARMV8_PMU_MAX_COUNTERS 32 | 22 | #define ARMV8_PMU_MAX_COUNTERS 32 |
21 | #define ARMV8_PMU_COUNTER_MASK (ARMV8_PMU_MAX_COUNTERS - 1) | 23 | #define ARMV8_PMU_COUNTER_MASK (ARMV8_PMU_MAX_COUNTERS - 1) |
22 | 24 | ||
diff --git a/arch/arm64/include/asm/stack_pointer.h b/arch/arm64/include/asm/stack_pointer.h new file mode 100644 index 000000000000..ffcdf742cddf --- /dev/null +++ b/arch/arm64/include/asm/stack_pointer.h | |||
@@ -0,0 +1,9 @@ | |||
1 | #ifndef __ASM_STACK_POINTER_H | ||
2 | #define __ASM_STACK_POINTER_H | ||
3 | |||
4 | /* | ||
5 | * how to get the current stack pointer from C | ||
6 | */ | ||
7 | register unsigned long current_stack_pointer asm ("sp"); | ||
8 | |||
9 | #endif /* __ASM_STACK_POINTER_H */ | ||
diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h index 6ad76efbb3aa..bce0f07483c1 100644 --- a/arch/arm64/include/asm/thread_info.h +++ b/arch/arm64/include/asm/thread_info.h | |||
@@ -36,6 +36,7 @@ | |||
36 | 36 | ||
37 | struct task_struct; | 37 | struct task_struct; |
38 | 38 | ||
39 | #include <asm/stack_pointer.h> | ||
39 | #include <asm/types.h> | 40 | #include <asm/types.h> |
40 | 41 | ||
41 | typedef unsigned long mm_segment_t; | 42 | typedef unsigned long mm_segment_t; |
@@ -62,11 +63,6 @@ struct thread_info { | |||
62 | #define init_stack (init_thread_union.stack) | 63 | #define init_stack (init_thread_union.stack) |
63 | 64 | ||
64 | /* | 65 | /* |
65 | * how to get the current stack pointer from C | ||
66 | */ | ||
67 | register unsigned long current_stack_pointer asm ("sp"); | ||
68 | |||
69 | /* | ||
70 | * how to get the thread information struct from C | 66 | * how to get the thread information struct from C |
71 | */ | 67 | */ |
72 | static inline struct thread_info *current_thread_info(void) __attribute_const__; | 68 | static inline struct thread_info *current_thread_info(void) __attribute_const__; |
diff --git a/arch/arm64/kernel/return_address.c b/arch/arm64/kernel/return_address.c index 1718706fde83..12a87f2600f2 100644 --- a/arch/arm64/kernel/return_address.c +++ b/arch/arm64/kernel/return_address.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/export.h> | 12 | #include <linux/export.h> |
13 | #include <linux/ftrace.h> | 13 | #include <linux/ftrace.h> |
14 | 14 | ||
15 | #include <asm/stack_pointer.h> | ||
15 | #include <asm/stacktrace.h> | 16 | #include <asm/stacktrace.h> |
16 | 17 | ||
17 | struct return_address_data { | 18 | struct return_address_data { |
diff --git a/arch/arm64/kernel/stacktrace.c b/arch/arm64/kernel/stacktrace.c index c2efddfca18c..5b8006819cde 100644 --- a/arch/arm64/kernel/stacktrace.c +++ b/arch/arm64/kernel/stacktrace.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/stacktrace.h> | 22 | #include <linux/stacktrace.h> |
23 | 23 | ||
24 | #include <asm/irq.h> | 24 | #include <asm/irq.h> |
25 | #include <asm/stack_pointer.h> | ||
25 | #include <asm/stacktrace.h> | 26 | #include <asm/stacktrace.h> |
26 | 27 | ||
27 | /* | 28 | /* |
diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c index c9986b3e0a96..95a545200a52 100644 --- a/arch/arm64/kernel/traps.c +++ b/arch/arm64/kernel/traps.c | |||
@@ -38,6 +38,7 @@ | |||
38 | #include <asm/esr.h> | 38 | #include <asm/esr.h> |
39 | #include <asm/insn.h> | 39 | #include <asm/insn.h> |
40 | #include <asm/traps.h> | 40 | #include <asm/traps.h> |
41 | #include <asm/stack_pointer.h> | ||
41 | #include <asm/stacktrace.h> | 42 | #include <asm/stacktrace.h> |
42 | #include <asm/exception.h> | 43 | #include <asm/exception.h> |
43 | #include <asm/system_misc.h> | 44 | #include <asm/system_misc.h> |