Explorar el Código

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 hace 16 años
padre
commit
615c9136b3
Se han modificado 1 ficheros con 1 adiciones y 1 borrados
  1. 1 1
      arch/sparc64/kernel/chmc.c

+ 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;