summaryrefslogtreecommitdiff
path: root/arch/sparc64
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-10-12 23:56:12 -0700
committerDavid S. Miller <davem@davemloft.net>2008-10-12 23:56:12 -0700
commit615c9136b385d5225d3ece20aa30b28a90c438d6 (patch)
treedb11f7e02eacac06f5fcb7378f2394a966880673 /arch/sparc64
parent82960b8543cca5797a5e2841a9c43b8c5c669e65 (diff)
downloadlinux-3.10-615c9136b385d5225d3ece20aa30b28a90c438d6.tar.gz
linux-3.10-615c9136b385d5225d3ece20aa30b28a90c438d6.tar.bz2
linux-3.10-615c9136b385d5225d3ece20aa30b28a90c438d6.zip
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>
Diffstat (limited to 'arch/sparc64')
-rw-r--r--arch/sparc64/kernel/chmc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/sparc64/kernel/chmc.c b/arch/sparc64/kernel/chmc.c
index 967b0488682..3b9f4d6e14a 100644
--- a/arch/sparc64/kernel/chmc.c
+++ b/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;