diff options
author | Jisheng Zhang <jszhang@marvell.com> | 2016-08-15 02:45:46 -0400 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2016-08-22 07:32:29 -0400 |
commit | 5a9e3e156ec1ab26ba70b4c44157858c92bbeee0 (patch) | |
tree | 08786b2c7e30101dc85dd29b6cf8e43be55cd2d5 /arch/arm64/kernel/kaslr.c | |
parent | b6d081bddf397026575a437b603b118dff2606ff (diff) |
arm64: apply __ro_after_init to some objects
These objects are set during initialization, thereafter are read only.
Previously I only want to mark vdso_pages, vdso_spec, vectors_page and
cpu_ops as __read_mostly from performance point of view. Then inspired
by Kees's patch[1] to apply more __ro_after_init for arm, I think it's
better to mark them as __ro_after_init. What's more, I find some more
objects are also read only after init. So apply __ro_after_init to all
of them.
This patch also removes global vdso_pagelist and tries to clean up
vdso_spec[] assignment code.
[1] http://www.spinics.net/lists/arm-kernel/msg523188.html
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/kernel/kaslr.c')
-rw-r--r-- | arch/arm64/kernel/kaslr.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm64/kernel/kaslr.c b/arch/arm64/kernel/kaslr.c index b05469173ba5..769f24ef628c 100644 --- a/arch/arm64/kernel/kaslr.c +++ b/arch/arm64/kernel/kaslr.c | |||
@@ -6,6 +6,7 @@ | |||
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/cache.h> | ||
9 | #include <linux/crc32.h> | 10 | #include <linux/crc32.h> |
10 | #include <linux/init.h> | 11 | #include <linux/init.h> |
11 | #include <linux/libfdt.h> | 12 | #include <linux/libfdt.h> |
@@ -20,7 +21,7 @@ | |||
20 | #include <asm/pgtable.h> | 21 | #include <asm/pgtable.h> |
21 | #include <asm/sections.h> | 22 | #include <asm/sections.h> |
22 | 23 | ||
23 | u64 __read_mostly module_alloc_base; | 24 | u64 __ro_after_init module_alloc_base; |
24 | u16 __initdata memstart_offset_seed; | 25 | u16 __initdata memstart_offset_seed; |
25 | 26 | ||
26 | static __init u64 get_kaslr_seed(void *fdt) | 27 | static __init u64 get_kaslr_seed(void *fdt) |