summaryrefslogtreecommitdiffstats
path: root/arch/ia64/include/asm/paravirt_privop.h
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-12-01 18:02:17 +0100
committerTakashi Iwai <tiwai@suse.de>2008-12-01 18:02:17 +0100
commit3af4182cc5be7d5505f9801ee3297373f1872446 (patch)
tree214348d40ed547a72f9612a7e5c94a01afded812 /arch/ia64/include/asm/paravirt_privop.h
parentf5d4c67e41a262f0cdfaec1bb0fa8e5952187ef9 (diff)
parentc07f62e5f18123103459ff74e86af1518a5b8af5 (diff)
downloadop-kernel-dev-3af4182cc5be7d5505f9801ee3297373f1872446.zip
op-kernel-dev-3af4182cc5be7d5505f9801ee3297373f1872446.tar.gz
Merge branch 'upstream' into topic/asoc
Diffstat (limited to 'arch/ia64/include/asm/paravirt_privop.h')
-rw-r--r--arch/ia64/include/asm/paravirt_privop.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/ia64/include/asm/paravirt_privop.h b/arch/ia64/include/asm/paravirt_privop.h
index d577aac..0b59742 100644
--- a/arch/ia64/include/asm/paravirt_privop.h
+++ b/arch/ia64/include/asm/paravirt_privop.h
@@ -78,6 +78,19 @@ extern unsigned long ia64_native_getreg_func(int regnum);
ia64_native_rsm(mask); \
} while (0)
+/* returned ip value should be the one in the caller,
+ * not in __paravirt_getreg() */
+#define paravirt_getreg(reg) \
+ ({ \
+ unsigned long res; \
+ BUILD_BUG_ON(!__builtin_constant_p(reg)); \
+ if ((reg) == _IA64_REG_IP) \
+ res = ia64_native_getreg(_IA64_REG_IP); \
+ else \
+ res = pv_cpu_ops.getreg(reg); \
+ res; \
+ })
+
/******************************************************************************
* replacement of hand written assembly codes.
*/
OpenPOWER on IntegriCloud