Эх сурвалжийг харах

chmc: Mark %ver register inline asm with __volatile__

Otherwise GCC can try to do the register read before the guarding test
on us3mc_platform() being true.

If that happens we can take an exception, because %ver register reads
are not allowed in privileged more on hypervisor platforms.

Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller 16 жил өмнө
parent
commit
615c9136b3

+ 1 - 1
arch/sparc64/kernel/chmc.c

@@ -831,7 +831,7 @@ static int __init us3mc_init(void)
 	if (!us3mc_platform())
 		return -ENODEV;
 
-	__asm__ ("rdpr %%ver, %0" : "=r" (ver));
+	__asm__ __volatile__("rdpr %%ver, %0" : "=r" (ver));
 	if ((ver >> 32UL) == __JALAPENO_ID ||
 	    (ver >> 32UL) == __SERRANO_ID) {
 		mc_type = MC_TYPE_JBUS;