aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@ezchip.com>2015-03-27 14:35:31 -0400
committerChris Metcalf <cmetcalf@ezchip.com>2015-04-17 14:01:35 -0400
commita84f24230c137a4e0ab14185e9175798ca1b0376 (patch)
treecb2fcd63e528c1caa6d263c21d33fda6b434f9fe /arch/tile
parent49e4e15619cd7cd9fc275d460fae2a95c1337fcc (diff)
tile: map data region shadow of kernel as R/W
This is necessary for things like reading /proc/kcore, doing ftrace, etc. It happens by default when using huge pages to map the kernel data, but not when using small pages. Signed-off-by: Chris Metcalf <cmetcalf@ezchip.com>
Diffstat (limited to 'arch/tile')
-rw-r--r--arch/tile/mm/init.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/tile/mm/init.c b/arch/tile/mm/init.c
index ace32d7d3864..5bd252e3fdc5 100644
--- a/arch/tile/mm/init.c
+++ b/arch/tile/mm/init.c
@@ -233,9 +233,12 @@ static pgprot_t __init init_pgprot(ulong address)
233 if (kdata_huge) 233 if (kdata_huge)
234 return construct_pgprot(PAGE_KERNEL, PAGE_HOME_HASH); 234 return construct_pgprot(PAGE_KERNEL, PAGE_HOME_HASH);
235 235
236 /* We map the aliased pages of permanent text inaccessible. */ 236 /*
237 * We map the aliased pages of permanent text so we can
238 * update them if necessary, for ftrace, etc.
239 */
237 if (address < (ulong) _sinittext - CODE_DELTA) 240 if (address < (ulong) _sinittext - CODE_DELTA)
238 return PAGE_NONE; 241 return construct_pgprot(PAGE_KERNEL, PAGE_HOME_HASH);
239 242
240 /* We map read-only data non-coherent for performance. */ 243 /* We map read-only data non-coherent for performance. */
241 if ((address >= (ulong) __start_rodata && 244 if ((address >= (ulong) __start_rodata &&