--- include/asm-x86/ipipe.h | 5 +++-- include/linux/ipipe.h | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) Index: linux-2.6.24-xeno_64/include/asm-x86/ipipe.h =================================================================== --- linux-2.6.24-xeno_64.orig/include/asm-x86/ipipe.h +++ linux-2.6.24-xeno_64/include/asm-x86/ipipe.h @@ -40,10 +40,11 @@ DECLARE_PER_CPU(struct pt_regs, __ipipe_ #endif /* - * The logical processor id is read from the PDA, so this is always - * safe, regardless of the underlying stack. + * The logical processor id and the current Linux task are read from the PDA, + * so this is always safe, regardless of the underlying stack. */ #define ipipe_processor_id() raw_smp_processor_id() +#define ipipe_safe_current() current #define prepare_arch_switch(next) \ do { \ Index: linux-2.6.24-xeno_64/include/linux/ipipe.h =================================================================== --- linux-2.6.24-xeno_64.orig/include/linux/ipipe.h +++ linux-2.6.24-xeno_64/include/linux/ipipe.h @@ -443,6 +443,7 @@ static inline void ipipe_clear_foreign_s __clear_bit(IPIPE_NOSTACK_FLAG, &ipipe_cpudom_var(ipd, status)); } +#ifndef ipipe_safe_current #define ipipe_safe_current() \ ({ \ struct task_struct *p; \ @@ -450,6 +451,7 @@ static inline void ipipe_clear_foreign_s &ipipe_this_cpudom_var(status)) ? &init_task : current; \ p; \ }) +#endif ipipe_event_handler_t ipipe_catch_event(struct ipipe_domain *ipd, unsigned event,