Commit 7619751f authored by Kees Cook's avatar Kees Cook Committed by Russell King

ARM: 8595/2: apply more __ro_after_init

Guided by grsecurity's analogous __read_only markings in arch/arm,
this applies several uses of __ro_after_init to structures that are
only updated during __init.
Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent d782e426
...@@ -19,7 +19,7 @@ extern struct of_cpuidle_method __cpuidle_method_of_table[]; ...@@ -19,7 +19,7 @@ extern struct of_cpuidle_method __cpuidle_method_of_table[];
static const struct of_cpuidle_method __cpuidle_method_of_table_sentinel static const struct of_cpuidle_method __cpuidle_method_of_table_sentinel
__used __section(__cpuidle_method_of_table_end); __used __section(__cpuidle_method_of_table_end);
static struct cpuidle_ops cpuidle_ops[NR_CPUS]; static struct cpuidle_ops cpuidle_ops[NR_CPUS] __ro_after_init;
/** /**
* arm_cpuidle_simple_enter() - a wrapper to cpu_do_idle() * arm_cpuidle_simple_enter() - a wrapper to cpu_do_idle()
......
...@@ -114,19 +114,19 @@ EXPORT_SYMBOL(elf_hwcap2); ...@@ -114,19 +114,19 @@ EXPORT_SYMBOL(elf_hwcap2);
#ifdef MULTI_CPU #ifdef MULTI_CPU
struct processor processor __read_mostly; struct processor processor __ro_after_init;
#endif #endif
#ifdef MULTI_TLB #ifdef MULTI_TLB
struct cpu_tlb_fns cpu_tlb __read_mostly; struct cpu_tlb_fns cpu_tlb __ro_after_init;
#endif #endif
#ifdef MULTI_USER #ifdef MULTI_USER
struct cpu_user_fns cpu_user __read_mostly; struct cpu_user_fns cpu_user __ro_after_init;
#endif #endif
#ifdef MULTI_CACHE #ifdef MULTI_CACHE
struct cpu_cache_fns cpu_cache __read_mostly; struct cpu_cache_fns cpu_cache __ro_after_init;
#endif #endif
#ifdef CONFIG_OUTER_CACHE #ifdef CONFIG_OUTER_CACHE
struct outer_cache_fns outer_cache __read_mostly; struct outer_cache_fns outer_cache __ro_after_init;
EXPORT_SYMBOL(outer_cache); EXPORT_SYMBOL(outer_cache);
#endif #endif
......
...@@ -82,7 +82,7 @@ enum ipi_msg_type { ...@@ -82,7 +82,7 @@ enum ipi_msg_type {
static DECLARE_COMPLETION(cpu_running); static DECLARE_COMPLETION(cpu_running);
static struct smp_operations smp_ops; static struct smp_operations smp_ops __ro_after_init;
void __init smp_set_ops(const struct smp_operations *ops) void __init smp_set_ops(const struct smp_operations *ops)
{ {
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
/* /*
* Default to the loop-based delay implementation. * Default to the loop-based delay implementation.
*/ */
struct arm_delay_ops arm_delay_ops = { struct arm_delay_ops arm_delay_ops __ro_after_init = {
.delay = __loop_delay, .delay = __loop_delay,
.const_udelay = __loop_const_udelay, .const_udelay = __loop_const_udelay,
.udelay = __loop_udelay, .udelay = __loop_udelay,
......
...@@ -243,7 +243,7 @@ __setup("noalign", noalign_setup); ...@@ -243,7 +243,7 @@ __setup("noalign", noalign_setup);
#define PROT_PTE_S2_DEVICE PROT_PTE_DEVICE #define PROT_PTE_S2_DEVICE PROT_PTE_DEVICE
#define PROT_SECT_DEVICE PMD_TYPE_SECT|PMD_SECT_AP_WRITE #define PROT_SECT_DEVICE PMD_TYPE_SECT|PMD_SECT_AP_WRITE
static struct mem_type mem_types[] = { static struct mem_type mem_types[] __ro_after_init = {
[MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */ [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */
.prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED | .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED |
L_PTE_SHARED, L_PTE_SHARED,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment