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>
diff --git a/arch/sparc64/kernel/chmc.c b/arch/sparc64/kernel/chmc.c
index 967b048..3b9f4d6 100644
--- a/arch/sparc64/kernel/chmc.c
+++ b/arch/sparc64/kernel/chmc.c
@@ -831,7 +831,7 @@
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;