Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b46f01ce authored by Andre Przywara's avatar Andre Przywara Committed by Marc Zyngier
Browse files

KVM: arm/arm64: Extend arch CAP checks to allow per-VM capabilities



KVM capabilities can be a per-VM property, though ARM/ARM64 currently
does not pass on the VM pointer to the architecture specific
capability handlers.
Add a "struct kvm*" parameter to those function to later allow proper
per-VM capability reporting.

Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
Reviewed-by: default avatarEric Auger <eric.auger@linaro.org>
Reviewed-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
Acked-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
Tested-by: default avatarEric Auger <eric.auger@redhat.com>
Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
parent 2b8ddd93
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -272,7 +272,7 @@ static inline void __cpu_reset_hyp_mode(unsigned long vector_ptr,
	kvm_call_hyp((void *)virt_to_idmap(__kvm_hyp_reset), vector_ptr);
	kvm_call_hyp((void *)virt_to_idmap(__kvm_hyp_reset), vector_ptr);
}
}


static inline int kvm_arch_dev_ioctl_check_extension(long ext)
static inline int kvm_arch_dev_ioctl_check_extension(struct kvm *kvm, long ext)
{
{
	return 0;
	return 0;
}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -201,7 +201,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
		r = KVM_MAX_VCPUS;
		r = KVM_MAX_VCPUS;
		break;
		break;
	default:
	default:
		r = kvm_arch_dev_ioctl_check_extension(ext);
		r = kvm_arch_dev_ioctl_check_extension(kvm, ext);
		break;
		break;
	}
	}
	return r;
	return r;
+1 −1
Original line number Original line Diff line number Diff line
@@ -47,7 +47,7 @@


int __attribute_const__ kvm_target_cpu(void);
int __attribute_const__ kvm_target_cpu(void);
int kvm_reset_vcpu(struct kvm_vcpu *vcpu);
int kvm_reset_vcpu(struct kvm_vcpu *vcpu);
int kvm_arch_dev_ioctl_check_extension(long ext);
int kvm_arch_dev_ioctl_check_extension(struct kvm *kvm, long ext);
void __extended_idmap_trampoline(phys_addr_t boot_pgd, phys_addr_t idmap_start);
void __extended_idmap_trampoline(phys_addr_t boot_pgd, phys_addr_t idmap_start);


struct kvm_arch {
struct kvm_arch {
+1 −1
Original line number Original line Diff line number Diff line
@@ -65,7 +65,7 @@ static bool cpu_has_32bit_el1(void)
 * We currently assume that the number of HW registers is uniform
 * We currently assume that the number of HW registers is uniform
 * across all CPUs (see cpuinfo_sanity_check).
 * across all CPUs (see cpuinfo_sanity_check).
 */
 */
int kvm_arch_dev_ioctl_check_extension(long ext)
int kvm_arch_dev_ioctl_check_extension(struct kvm *kvm, long ext)
{
{
	int r;
	int r;