diff options
Diffstat (limited to 'arch/arm/kernel/head-common.S')
| -rw-r--r-- | arch/arm/kernel/head-common.S | 9 | 
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/arm/kernel/head-common.S b/arch/arm/kernel/head-common.S index 854bd22380d..5b391a689b4 100644 --- a/arch/arm/kernel/head-common.S +++ b/arch/arm/kernel/head-common.S @@ -98,8 +98,9 @@ __mmap_switched:  	str	r9, [r4]			@ Save processor ID  	str	r1, [r5]			@ Save machine type  	str	r2, [r6]			@ Save atags pointer -	bic	r4, r0, #CR_A			@ Clear 'A' bit -	stmia	r7, {r0, r4}			@ Save control register values +	cmp	r7, #0 +	bicne	r4, r0, #CR_A			@ Clear 'A' bit +	stmneia	r7, {r0, r4}			@ Save control register values  	b	start_kernel  ENDPROC(__mmap_switched) @@ -113,7 +114,11 @@ __mmap_switched_data:  	.long	processor_id			@ r4  	.long	__machine_arch_type		@ r5  	.long	__atags_pointer			@ r6 +#ifdef CONFIG_CPU_CP15  	.long	cr_alignment			@ r7 +#else +	.long	0				@ r7 +#endif  	.long	init_thread_union + THREAD_START_SP @ sp  	.size	__mmap_switched_data, . - __mmap_switched_data  |