aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2016-10-09 05:12:34 -0400
committerHelge Deller <deller@gmx.de>2016-10-09 05:12:34 -0400
commitf8850abb7ba68229838014b3409460e576751c6d (patch)
tree9f3f5202fe82a18fc60ba4c766d29c422579537e
parent65bf34f59594c11f13d371c5334a6a0a385cd7ae (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.S7
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 = .;