exynos: Leave the compiler to choose the register to avoid possible r0 corruption
authorGuillaume GARDET <guillaume.gardet@free.fr>
Fri, 4 Jan 2019 08:23:19 +0000 (09:23 +0100)
committerMinkyu Kang <mk7.kang@samsung.com>
Fri, 4 Jan 2019 08:28:50 +0000 (17:28 +0900)
Reported-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Signed-off-by: Guillaume GARDET <guillaume.gardet@free.fr>
Cc: Albert Aribaud <albert.u.boot@aribaud.net>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Cc: Tom Rini <trini@konsulko.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
arch/arm/mach-exynos/include/mach/system.h

index 81fa9800b41d595c9c56799c34ef00df11006464..48f13c76481bac4189860fdbdbb55d4dd311122e 100644 (file)
@@ -58,8 +58,7 @@ struct exynos5_sysreg {
 /* Move 0xd3 value to CPSR register to enable SVC mode */
 #define svc32_mode_en() __asm__ __volatile__                           \
                        ("@ I&F disable, Mode: 0x13 - SVC\n\t"          \
-                        "mov     r0, #0x13|0xC0\n\t"                   \
-                        "msr     cpsr_c, r0\n\t" : : )
+                        "msr     cpsr_c, %0\n\t" : : "r"(0x13|0xC0))
 
 /* Set program counter with the given value */
 #define set_pc(x) __asm__ __volatile__ ("mov     pc, %0\n\t" : : "r"(x))