All of lore.kernel.org
 help / color / mirror / Atom feed
From: claudio.fontana@huawei.com (Claudio Fontana)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 2/3] ARM64: KVM: Implement target CPU=Host
Date: Fri, 6 Sep 2013 10:09:07 +0200	[thread overview]
Message-ID: <52298DA3.6000100@huawei.com> (raw)
In-Reply-To: <1378392362-6773-3-git-send-email-anup.patel@linaro.org>

On 05.09.2013 16:46, Anup Patel wrote:
> This patch implements KVM_ARM_TARGET_HOST for KVM ARM64.
> 
> If user space provides KVM_ARM_TARGET_HOST as target type in
> KVM_ARM_VCPU_INIT ioctl then we find out appropriate target
> type based on underlying host and return that to user space
> via struct kvm_vcpu_init.
> 
> Signed-off-by: Anup Patel <anup.patel@linaro.org>
> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
> ---
>  arch/arm64/include/asm/kvm_host.h |    2 +-
>  arch/arm64/include/uapi/asm/kvm.h |    2 +-
>  arch/arm64/kvm/guest.c            |   10 ++++++++--
>  3 files changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
> index 0859a4d..9ee431c 100644
> --- a/arch/arm64/include/asm/kvm_host.h
> +++ b/arch/arm64/include/asm/kvm_host.h
> @@ -150,7 +150,7 @@ struct kvm_vcpu_stat {
>  
>  struct kvm_vcpu_init;
>  int kvm_vcpu_set_target(struct kvm_vcpu *vcpu,
> -			const struct kvm_vcpu_init *init);
> +			struct kvm_vcpu_init *init);
>  unsigned long kvm_arm_num_regs(struct kvm_vcpu *vcpu);
>  int kvm_arm_copy_reg_indices(struct kvm_vcpu *vcpu, u64 __user *indices);
>  struct kvm_one_reg;
> diff --git a/arch/arm64/include/uapi/asm/kvm.h b/arch/arm64/include/uapi/asm/kvm.h
> index d9f026b..eeb5726 100644
> --- a/arch/arm64/include/uapi/asm/kvm.h
> +++ b/arch/arm64/include/uapi/asm/kvm.h
> @@ -56,7 +56,7 @@ struct kvm_regs {
>  #define KVM_ARM_TARGET_FOUNDATION_V8	1
>  #define KVM_ARM_TARGET_CORTEX_A57	2
>  #define KVM_ARM_TARGET_XGENE_POTENZA	3
> -
> +#define KVM_ARM_TARGET_HOST		0x0FFFFFFF
>  #define KVM_ARM_NUM_TARGETS		4
>  
>  /* KVM_ARM_SET_DEVICE_ADDR ioctl id encoding */
> diff --git a/arch/arm64/kvm/guest.c b/arch/arm64/kvm/guest.c
> index d7bf7d6..261e836 100644
> --- a/arch/arm64/kvm/guest.c
> +++ b/arch/arm64/kvm/guest.c
> @@ -230,12 +230,18 @@ int __attribute_const__ kvm_target_cpu(void)
>  }
>  
>  int kvm_vcpu_set_target(struct kvm_vcpu *vcpu,
> -			const struct kvm_vcpu_init *init)
> +			struct kvm_vcpu_init *init)
>  {
>  	unsigned int i;
>  	int phys_target = kvm_target_cpu();
>  
> -	if (init->target != phys_target)
> +	if (phys_target < 0) {
> +		return phys_target;
> +	}
> +
> +	if (init->target == KVM_ARM_TARGET_HOST)
> +		init->target = phys_target;
> +	else if (init->target != phys_target)
>  		return -EINVAL;
>  
>  	vcpu->arch.target = phys_target;
> 

Acked-by: Claudio Fontana <claudio.fontana@huawei.com>

  reply	other threads:[~2013-09-06  8:09 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-05 14:45 [RFC PATCH 0/3] Target CPU=Host implementation for KVM ARM/ARM64 Anup Patel
2013-09-05 14:46 ` [RFC PATCH 1/3] ARM: KVM: Implement target CPU=Host Anup Patel
2013-09-06  8:08   ` Claudio Fontana
2013-09-05 14:46 ` [RFC PATCH 2/3] ARM64: " Anup Patel
2013-09-06  8:09   ` Claudio Fontana [this message]
2013-09-05 14:46 ` [RFC PATCH 3/3] KVM: ARM: Update documentation for KVM_ARM_VCPU_INIT ioctl Anup Patel
2013-09-06  8:05   ` Claudio Fontana
2013-09-06 10:13     ` Anup Patel
2013-09-05 14:51 ` [RFC PATCH 0/3] Target CPU=Host implementation for KVM ARM/ARM64 Peter Maydell
2013-09-06  7:44   ` Anup Patel
2013-09-06  8:54     ` Alexander Graf
2013-09-06  9:06       ` Will Deacon
2013-09-06 10:09         ` Anup Patel
2013-09-06 10:49           ` Will Deacon
2013-09-06 10:51             ` Anup Patel
2013-09-06 10:52               ` Will Deacon
2013-09-06 10:05       ` Anup Patel
2013-09-06 10:24         ` Alexander Graf
2013-09-06 10:34           ` Marc Zyngier
2013-09-06 10:38             ` Anup Patel
2013-09-06 10:34           ` Anup Patel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52298DA3.6000100@huawei.com \
    --to=claudio.fontana@huawei.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.