From: Alison Wang Date: Wed, 9 Sep 2015 02:22:02 +0000 (+0800) Subject: arm: mmu: Add missing volatile for reading SCTLR register X-Git-Tag: v2015.10~24 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=53fd4b8c22bb;p=u-boot arm: mmu: Add missing volatile for reading SCTLR register Add 'volatile' qualifier to the asm statement in get_cr() so that the statement is not optimized out by the compiler. (http://comments.gmane.org/gmane.linux.linaro.toolchain/5163) Without the 'volatile', get_cr() returns a wrong value which prevents enabling the MMU and later causes a PCIE VA access failure. Signed-off-by: Alison Wang --- diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h index 868ea54b4f..cfc7834ed9 100644 --- a/arch/arm/include/asm/system.h +++ b/arch/arm/include/asm/system.h @@ -194,7 +194,7 @@ void save_boot_params_ret(void); static inline unsigned int get_cr(void) { unsigned int val; - asm("mrc p15, 0, %0, c1, c0, 0 @ get CR" : "=r" (val) : : "cc"); + asm volatile("mrc p15, 0, %0, c1, c0, 0 @ get CR" : "=r" (val) : : "cc"); return val; }