diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-11-21 08:57:04 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-11-21 08:57:04 +0100 |
commit | fc02e90c34bacd5d7bc77b832c65a8f06e1bd60e (patch) | |
tree | d870acafa2290779aa7c0594172bf1c691d3e6c0 /arch/ia64/include | |
parent | sched: fix inconsistency when redistribute per-cpu tg->cfs_rq shares (diff) | |
parent | Linux 2.6.28-rc6 (diff) | |
download | linux-fc02e90c34bacd5d7bc77b832c65a8f06e1bd60e.tar.xz linux-fc02e90c34bacd5d7bc77b832c65a8f06e1bd60e.zip |
Merge commit 'v2.6.28-rc6' into sched/core
Diffstat (limited to 'arch/ia64/include')
-rw-r--r-- | arch/ia64/include/asm/intrinsics.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/paravirt_privop.h | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/arch/ia64/include/asm/intrinsics.h b/arch/ia64/include/asm/intrinsics.h index 47d686dba1eb..a3e44a5ed497 100644 --- a/arch/ia64/include/asm/intrinsics.h +++ b/arch/ia64/include/asm/intrinsics.h @@ -226,7 +226,7 @@ extern long ia64_cmpxchg_called_with_bad_pointer (void); /************************************************/ #define ia64_ssm IA64_INTRINSIC_MACRO(ssm) #define ia64_rsm IA64_INTRINSIC_MACRO(rsm) -#define ia64_getreg IA64_INTRINSIC_API(getreg) +#define ia64_getreg IA64_INTRINSIC_MACRO(getreg) #define ia64_setreg IA64_INTRINSIC_API(setreg) #define ia64_set_rr IA64_INTRINSIC_API(set_rr) #define ia64_get_rr IA64_INTRINSIC_API(get_rr) diff --git a/arch/ia64/include/asm/paravirt_privop.h b/arch/ia64/include/asm/paravirt_privop.h index d577aac11835..0b597424fcfc 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. */ |