Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e1a68ab authored by Stephen Boyd's avatar Stephen Boyd Committed by David Brown
Browse files

msm: scm: Mark inline asm as volatile



We don't want the compiler to remove these asm statements or
reorder them in any way. Mark them as volatile to be sure.

Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
Acked-by: default avatarWill Deacon <will.deacon@arm.com>
Signed-off-by: default avatarDavid Brown <davidb@codeaurora.org>
parent c7831df3
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -174,7 +174,7 @@ static u32 smc(u32 cmd_addr)
	register u32 r0 asm("r0") = 1;
	register u32 r0 asm("r0") = 1;
	register u32 r1 asm("r1") = (u32)&context_id;
	register u32 r1 asm("r1") = (u32)&context_id;
	register u32 r2 asm("r2") = cmd_addr;
	register u32 r2 asm("r2") = cmd_addr;
	asm(
	asm volatile(
		__asmeq("%0", "r0")
		__asmeq("%0", "r0")
		__asmeq("%1", "r0")
		__asmeq("%1", "r0")
		__asmeq("%2", "r1")
		__asmeq("%2", "r1")
@@ -271,7 +271,7 @@ u32 scm_get_version(void)
		return version;
		return version;


	mutex_lock(&scm_lock);
	mutex_lock(&scm_lock);
	asm(
	asm volatile(
		__asmeq("%0", "r1")
		__asmeq("%0", "r1")
		__asmeq("%1", "r0")
		__asmeq("%1", "r0")
		__asmeq("%2", "r1")
		__asmeq("%2", "r1")