diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h
index 868ea54b4fef2c2d9d9819a986ca58f5e9c7800b..cfc7834ed9dd012b8550a358babddc7f991e9666 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;
 }