aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm64/include/asm/percpu.h2
-rw-r--r--arch/arm64/include/asm/perf_event.h2
-rw-r--r--arch/arm64/include/asm/stack_pointer.h9
-rw-r--r--arch/arm64/include/asm/thread_info.h6
-rw-r--r--arch/arm64/kernel/return_address.c1
-rw-r--r--arch/arm64/kernel/stacktrace.c1
-rw-r--r--arch/arm64/kernel/traps.c1
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
19static inline void set_my_cpu_offset(unsigned long off) 21static 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 */
7register 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
37struct task_struct; 37struct task_struct;
38 38
39#include <asm/stack_pointer.h>
39#include <asm/types.h> 40#include <asm/types.h>
40 41
41typedef unsigned long mm_segment_t; 42typedef 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 */
67register 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 */
72static inline struct thread_info *current_thread_info(void) __attribute_const__; 68static 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
17struct return_address_data { 18struct 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>