On 15.03.2012, at 21:52, Stuart Yoder wrote: > From: Liu Yu-B13201 <Yu.Liu@xxxxxxxxxxxxx> > > Signed-off-by: Liu Yu <yu.liu@xxxxxxxxxxxxx> > [stuart: update patch description] > Signed-off-by: Stuart Yoder <stuart.yoder@xxxxxxxxxxxxx> > --- > v10: > -add spaces as per comments > -use PPC_LL/PPC_STL for long accesses > > arch/powerpc/include/asm/epapr_hcalls.h | 11 ++++++----- > arch/powerpc/kernel/epapr_hcalls.S | 28 ++++++++++++++++++++++++++++ > arch/powerpc/kernel/epapr_paravirt.c | 11 ++++++++++- > 3 files changed, 44 insertions(+), 6 deletions(-) > > diff --git a/arch/powerpc/include/asm/epapr_hcalls.h b/arch/powerpc/include/asm/epapr_hcalls.h > index 2173d4c..78460ac 100644 > --- a/arch/powerpc/include/asm/epapr_hcalls.h > +++ b/arch/powerpc/include/asm/epapr_hcalls.h > @@ -50,10 +50,6 @@ > #ifndef _EPAPR_HCALLS_H > #define _EPAPR_HCALLS_H > > -#include <linux/types.h> > -#include <linux/errno.h> > -#include <asm/byteorder.h> > - > #define EV_BYTE_CHANNEL_SEND 1 > #define EV_BYTE_CHANNEL_RECEIVE 2 > #define EV_BYTE_CHANNEL_POLL 3 > @@ -108,6 +104,11 @@ > #define EV_UNIMPLEMENTED 12 /* Unimplemented hypercall */ > #define EV_BUFFER_OVERFLOW 13 /* Caller-supplied buffer too small */ > > +#ifndef __ASSEMBLY__ > +#include <linux/types.h> > +#include <linux/errno.h> > +#include <asm/byteorder.h> > + > /* > * Hypercall register clobber list > * > @@ -500,5 +501,5 @@ static inline unsigned int ev_idle(void) > > return r3; > } > - > +#endif /* !__ASSEMBLY__ */ > #endif > diff --git a/arch/powerpc/kernel/epapr_hcalls.S b/arch/powerpc/kernel/epapr_hcalls.S > index 697b390..698e7d9 100644 > --- a/arch/powerpc/kernel/epapr_hcalls.S > +++ b/arch/powerpc/kernel/epapr_hcalls.S > @@ -8,13 +8,41 @@ > */ > > #include <linux/threads.h> > +#include <asm/epapr_hcalls.h> > #include <asm/reg.h> > #include <asm/page.h> > #include <asm/cputable.h> > #include <asm/thread_info.h> > #include <asm/ppc_asm.h> > +#include <asm/asm-compat.h> > #include <asm/asm-offsets.h> > > +_GLOBAL(epapr_ev_idle) > +epapr_ev_idle: Please document here that this is a copy from the original idle code. > + rlwinm r3, r1, 0, 0, 31-THREAD_SHIFT /* current thread_info */ > + PPC_LL r4, TI_LOCAL_FLAGS(r3) /* set napping bit */ > + ori r4, r4,_TLF_NAPPING /* so when we take an exception */ > + PPC_STL r4, TI_LOCAL_FLAGS(r3) /* it will return to our caller */ > + > + wrteei 1 > + > +idle_loop: > + LOAD_REG_IMMEDIATE(r11, EV_HCALL_TOKEN(EV_IDLE)) Ah, nice. So why not use EV_HCALL_TOKEN instead of the clumsy _EV_HCALL_TOKEN(EV_EPAPR_VENDOR_ID, EV_IDLE)? We could also add a KVM_HCALL_TOKEN() similar to the fsl one: arch/powerpc/include/asm/fsl_hcalls.h:#define FH_HCALL_TOKEN(num) _EV_HCALL_TOKEN(EV_FSL_VENDOR_ID, num) which would help us keep our lines short :). Alex -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html