diff options
author | Helge Deller <deller@gmx.de> | 2016-10-09 05:12:34 -0400 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2016-10-09 05:12:34 -0400 |
commit | f8850abb7ba68229838014b3409460e576751c6d (patch) | |
tree | 9f3f5202fe82a18fc60ba4c766d29c422579537e | |
parent | 65bf34f59594c11f13d371c5334a6a0a385cd7ae (diff) |
parisc: Fix kernel memory layout regarding position of __gp
Architecturally we need to keep __gp below 0x1000000.
But because of ftrace and tracepoint support, the RO_DATA_SECTION now gets much
bigger than it was before. By moving the linkage tables before RO_DATA_SECTION
we can avoid that __gp gets positioned at a too high address.
Cc: stable@vger.kernel.org # 4.4+
Signed-off-by: Helge Deller <deller@gmx.de>
-rw-r--r-- | arch/parisc/kernel/vmlinux.lds.S | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S index b37787dbe775..9a44e92b65e2 100644 --- a/arch/parisc/kernel/vmlinux.lds.S +++ b/arch/parisc/kernel/vmlinux.lds.S | |||
@@ -90,8 +90,9 @@ SECTIONS | |||
90 | /* Start of data section */ | 90 | /* Start of data section */ |
91 | _sdata = .; | 91 | _sdata = .; |
92 | 92 | ||
93 | RO_DATA_SECTION(8) | 93 | /* Architecturally we need to keep __gp below 0x1000000 and thus |
94 | 94 | * in front of RO_DATA_SECTION() which stores lots of tracepoint | |
95 | * and ftrace symbols. */ | ||
95 | #ifdef CONFIG_64BIT | 96 | #ifdef CONFIG_64BIT |
96 | . = ALIGN(16); | 97 | . = ALIGN(16); |
97 | /* Linkage tables */ | 98 | /* Linkage tables */ |
@@ -106,6 +107,8 @@ SECTIONS | |||
106 | } | 107 | } |
107 | #endif | 108 | #endif |
108 | 109 | ||
110 | RO_DATA_SECTION(8) | ||
111 | |||
109 | /* unwind info */ | 112 | /* unwind info */ |
110 | .PARISC.unwind : { | 113 | .PARISC.unwind : { |
111 | __start___unwind = .; | 114 | __start___unwind = .; |