Hi Marc,
On 10/1/18 3:06 PM, Marc Zyngier wrote:
> VM tends to be a very overloaded term in KVM, so let's keep it
> to describe the virtual machine. For the virtual memory setup,
> let's use the "stage2" suffix.
>
> Signed-off-by: Marc Zyngier <[email protected]>
Reviewed-by: Eric Auger <[email protected]>
Thanks
Eric
> ---
> arch/arm/include/asm/kvm_host.h | 6 +++++-
> arch/arm64/include/asm/kvm_arm.h | 2 +-
> arch/arm64/include/asm/kvm_host.h | 2 +-
> arch/arm64/kvm/reset.c | 2 +-
> virt/kvm/arm/arm.c | 2 +-
> 5 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/include/asm/kvm_host.h b/arch/arm/include/asm/kvm_host.h
> index 72d46418e1ef..b45af481ccf7 100644
> --- a/arch/arm/include/asm/kvm_host.h
> +++ b/arch/arm/include/asm/kvm_host.h
> @@ -354,8 +354,12 @@ static inline void kvm_vcpu_put_sysregs(struct kvm_vcpu
> *vcpu) {}
> struct kvm *kvm_arch_alloc_vm(void);
> void kvm_arch_free_vm(struct kvm *kvm);
>
> -static inline int kvm_arm_config_vm(struct kvm *kvm, unsigned long type)
> +static inline int kvm_arm_setup_stage2(struct kvm *kvm, unsigned long type)
> {
> + /*
> + * On 32bit ARM, VMs get a static 40bit IPA stage2 setup,
> + * so any non-zero value used as type is illegal.
> + */
> if (type)
> return -EINVAL;
> return 0;
> diff --git a/arch/arm64/include/asm/kvm_arm.h
> b/arch/arm64/include/asm/kvm_arm.h
> index f1330284720d..6e324d1f1231 100644
> --- a/arch/arm64/include/asm/kvm_arm.h
> +++ b/arch/arm64/include/asm/kvm_arm.h
> @@ -133,7 +133,7 @@
> * 40 bits wide (T0SZ = 24). Systems with a PARange smaller than 40 bits are
> * not known to exist and will break with this configuration.
> *
> - * The VTCR_EL2 is configured per VM and is initialised in
> kvm_arm_config_vm().
> + * The VTCR_EL2 is configured per VM and is initialised in
> kvm_arm_setup_stage2().
> *
> * Note that when using 4K pages, we concatenate two first level page tables
> * together. With 16K pages, we concatenate 16 first level page tables.
> diff --git a/arch/arm64/include/asm/kvm_host.h
> b/arch/arm64/include/asm/kvm_host.h
> index f008f8866b2a..376a5b695467 100644
> --- a/arch/arm64/include/asm/kvm_host.h
> +++ b/arch/arm64/include/asm/kvm_host.h
> @@ -511,6 +511,6 @@ void kvm_set_ipa_limit(void);
> struct kvm *kvm_arch_alloc_vm(void);
> void kvm_arch_free_vm(struct kvm *kvm);
>
> -int kvm_arm_config_vm(struct kvm *kvm, unsigned long type);
> +int kvm_arm_setup_stage2(struct kvm *kvm, unsigned long type);
>
> #endif /* __ARM64_KVM_HOST_H__ */
> diff --git a/arch/arm64/kvm/reset.c b/arch/arm64/kvm/reset.c
> index 95f28d5950e0..aa806d582552 100644
> --- a/arch/arm64/kvm/reset.c
> +++ b/arch/arm64/kvm/reset.c
> @@ -189,7 +189,7 @@ void kvm_set_ipa_limit(void)
> * all CPUs, as it is safe to run with or without the feature and
> * the bit is RES0 on CPUs that don't support it.
> */
> -int kvm_arm_config_vm(struct kvm *kvm, unsigned long type)
> +int kvm_arm_setup_stage2(struct kvm *kvm, unsigned long type)
> {
> u64 vtcr = VTCR_EL2_FLAGS;
> u32 parange, phys_shift;
> diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c
> index 631f9a3ad99a..91c464c9cd21 100644
> --- a/virt/kvm/arm/arm.c
> +++ b/virt/kvm/arm/arm.c
> @@ -120,7 +120,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
> {
> int ret, cpu;
>
> - ret = kvm_arm_config_vm(kvm, type);
> + ret = kvm_arm_setup_stage2(kvm, type);
> if (ret)
> return ret;
>
>
_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm