diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-12-01 18:02:17 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2008-12-01 18:02:17 +0100 |
commit | 3af4182cc5be7d5505f9801ee3297373f1872446 (patch) | |
tree | 214348d40ed547a72f9612a7e5c94a01afded812 /arch/ia64/include/asm/paravirt_privop.h | |
parent | f5d4c67e41a262f0cdfaec1bb0fa8e5952187ef9 (diff) | |
parent | c07f62e5f18123103459ff74e86af1518a5b8af5 (diff) | |
download | op-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.h | 13 |
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. */ |