mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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
					
				
					 5 changed files with 9 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -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 a new issue