diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-11-03 05:12:13 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-11-03 05:12:13 -0500 |
commit | 06e944b8e5fc4bec83f102f98c1ee4f972f5f072 (patch) | |
tree | d53b1c3ca270f49f1cae63bbe117cc8587e51510 /arch/arm/kernel/vmlinux.lds.S | |
parent | f114040e3ea6e07372334ade75d1ee0775c355e1 (diff) | |
parent | 80d6b0c2eed2a504f6740cd1f5ea76dc50abfc4d (diff) |
Merge tag 'ronx-next' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux into devel-stable
generic fixmaps
ARM support for CONFIG_DEBUG_RODATA
Diffstat (limited to 'arch/arm/kernel/vmlinux.lds.S')
-rw-r--r-- | arch/arm/kernel/vmlinux.lds.S | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index 8e95aa47457a..b31aa73e8076 100644 --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S | |||
@@ -8,6 +8,9 @@ | |||
8 | #include <asm/thread_info.h> | 8 | #include <asm/thread_info.h> |
9 | #include <asm/memory.h> | 9 | #include <asm/memory.h> |
10 | #include <asm/page.h> | 10 | #include <asm/page.h> |
11 | #ifdef CONFIG_ARM_KERNMEM_PERMS | ||
12 | #include <asm/pgtable.h> | ||
13 | #endif | ||
11 | 14 | ||
12 | #define PROC_INFO \ | 15 | #define PROC_INFO \ |
13 | . = ALIGN(4); \ | 16 | . = ALIGN(4); \ |
@@ -90,6 +93,11 @@ SECTIONS | |||
90 | _text = .; | 93 | _text = .; |
91 | HEAD_TEXT | 94 | HEAD_TEXT |
92 | } | 95 | } |
96 | |||
97 | #ifdef CONFIG_ARM_KERNMEM_PERMS | ||
98 | . = ALIGN(1<<SECTION_SHIFT); | ||
99 | #endif | ||
100 | |||
93 | .text : { /* Real text segment */ | 101 | .text : { /* Real text segment */ |
94 | _stext = .; /* Text and read-only data */ | 102 | _stext = .; /* Text and read-only data */ |
95 | __exception_text_start = .; | 103 | __exception_text_start = .; |
@@ -112,6 +120,9 @@ SECTIONS | |||
112 | ARM_CPU_KEEP(PROC_INFO) | 120 | ARM_CPU_KEEP(PROC_INFO) |
113 | } | 121 | } |
114 | 122 | ||
123 | #ifdef CONFIG_DEBUG_RODATA | ||
124 | . = ALIGN(1<<SECTION_SHIFT); | ||
125 | #endif | ||
115 | RO_DATA(PAGE_SIZE) | 126 | RO_DATA(PAGE_SIZE) |
116 | 127 | ||
117 | . = ALIGN(4); | 128 | . = ALIGN(4); |
@@ -145,7 +156,11 @@ SECTIONS | |||
145 | _etext = .; /* End of text and rodata section */ | 156 | _etext = .; /* End of text and rodata section */ |
146 | 157 | ||
147 | #ifndef CONFIG_XIP_KERNEL | 158 | #ifndef CONFIG_XIP_KERNEL |
159 | # ifdef CONFIG_ARM_KERNMEM_PERMS | ||
160 | . = ALIGN(1<<SECTION_SHIFT); | ||
161 | # else | ||
148 | . = ALIGN(PAGE_SIZE); | 162 | . = ALIGN(PAGE_SIZE); |
163 | # endif | ||
149 | __init_begin = .; | 164 | __init_begin = .; |
150 | #endif | 165 | #endif |
151 | /* | 166 | /* |
@@ -219,7 +234,11 @@ SECTIONS | |||
219 | __data_loc = ALIGN(4); /* location in binary */ | 234 | __data_loc = ALIGN(4); /* location in binary */ |
220 | . = PAGE_OFFSET + TEXT_OFFSET; | 235 | . = PAGE_OFFSET + TEXT_OFFSET; |
221 | #else | 236 | #else |
237 | #ifdef CONFIG_ARM_KERNMEM_PERMS | ||
238 | . = ALIGN(1<<SECTION_SHIFT); | ||
239 | #else | ||
222 | . = ALIGN(THREAD_SIZE); | 240 | . = ALIGN(THREAD_SIZE); |
241 | #endif | ||
223 | __init_end = .; | 242 | __init_end = .; |
224 | __data_loc = .; | 243 | __data_loc = .; |
225 | #endif | 244 | #endif |