On 15.03.2012, at 21:52, Stuart Yoder wrote:

> From: Liu Yu-B13201 <yu....@freescale.com>
> 
> Signed-off-by: Liu Yu <yu....@freescale.com>
> [stuart: update patch description]
> Signed-off-by: Stuart Yoder <stuart.yo...@freescale.com>
> ---
> 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-ppc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to