forked from luck/tmp_suning_uos_patched
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: Kees Cook <keescook@chromium.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
d782e426b8
commit
7619751f8c
|
@ -19,7 +19,7 @@ extern struct of_cpuidle_method __cpuidle_method_of_table[];
|
|||
static const struct of_cpuidle_method __cpuidle_method_of_table_sentinel
|
||||
__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()
|
||||
|
|
|
@ -114,19 +114,19 @@ EXPORT_SYMBOL(elf_hwcap2);
|
|||
|
||||
|
||||
#ifdef MULTI_CPU
|
||||
struct processor processor __read_mostly;
|
||||
struct processor processor __ro_after_init;
|
||||
#endif
|
||||
#ifdef MULTI_TLB
|
||||
struct cpu_tlb_fns cpu_tlb __read_mostly;
|
||||
struct cpu_tlb_fns cpu_tlb __ro_after_init;
|
||||
#endif
|
||||
#ifdef MULTI_USER
|
||||
struct cpu_user_fns cpu_user __read_mostly;
|
||||
struct cpu_user_fns cpu_user __ro_after_init;
|
||||
#endif
|
||||
#ifdef MULTI_CACHE
|
||||
struct cpu_cache_fns cpu_cache __read_mostly;
|
||||
struct cpu_cache_fns cpu_cache __ro_after_init;
|
||||
#endif
|
||||
#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);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@ enum ipi_msg_type {
|
|||
|
||||
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)
|
||||
{
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
/*
|
||||
* 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,
|
||||
.const_udelay = __loop_const_udelay,
|
||||
.udelay = __loop_udelay,
|
||||
|
|
|
@ -243,7 +243,7 @@ __setup("noalign", noalign_setup);
|
|||
#define PROT_PTE_S2_DEVICE PROT_PTE_DEVICE
|
||||
#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 */
|
||||
.prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED |
|
||||
L_PTE_SHARED,
|
||||
|
|
Loading…
Reference in New Issue
Block a user