Commit 5b6c6742 authored by Suzuki K Poulose's avatar Suzuki K Poulose Committed by Marc Zyngier
Browse files

kvm: arm/arm64: Allow arch specific configurations for VM



Allow the arch backends to perform VM specific initialisation.
This will be later used to handle IPA size configuration and per-VM
VTCR configuration on arm64.

Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Christoffer Dall <cdall@kernel.org>
Reviewed-by: default avatarEric Auger <eric.auger@redhat.com>
Signed-off-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
parent b2df44ff
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -354,4 +354,11 @@ 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)
{
	if (type)
		return -EINVAL;
	return 0;
}

#endif /* __ARM_KVM_HOST_H__ */
+2 −0
Original line number Diff line number Diff line
@@ -513,4 +513,6 @@ void kvm_vcpu_put_sysregs(struct kvm_vcpu *vcpu);
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);

#endif /* __ARM64_KVM_HOST_H__ */
+7 −0
Original line number Diff line number Diff line
@@ -133,3 +133,10 @@ int kvm_reset_vcpu(struct kvm_vcpu *vcpu)
	/* Reset timer */
	return kvm_timer_vcpu_reset(vcpu);
}

int kvm_arm_config_vm(struct kvm *kvm, unsigned long type)
{
	if (type)
		return -EINVAL;
	return 0;
}
+3 −2
Original line number Diff line number Diff line
@@ -120,8 +120,9 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
{
	int ret, cpu;

	if (type)
		return -EINVAL;
	ret = kvm_arm_config_vm(kvm, type);
	if (ret)
		return ret;

	kvm->arch.last_vcpu_ran = alloc_percpu(typeof(*kvm->arch.last_vcpu_ran));
	if (!kvm->arch.last_vcpu_ran)