Re: [PATCH v7 4/9] mmu: spp: Add functions to create/destroy SPP bitmap block

From: Paolo Bonzini
Date: Thu Nov 21 2019 - 05:43:17 EST


On 19/11/19 09:49, Yang Weijiang wrote:
>
> +/*
> + * all vcpus share the same SPPT, vcpu->arch.mmu->sppt_root points to same
> + * SPPT root page, so any vcpu will do.
> + */
> +static struct kvm_vcpu *kvm_spp_get_vcpu(struct kvm *kvm)
> +{
> + struct kvm_vcpu *vcpu = NULL;
> + int idx;

Is this true? Perhaps you need one with
VALID_PAGE(vcpu->arch.mmu->sppt_root) for kvm_spp_set_permission?

Also, since vcpu->arch.mmu->sppt_root is the same for all vCPUs, perhaps
it should be kvm->arch.sppt_root instead?

If you can get rid of this function, it would be much better (but if you
cannot, kvm_get_vcpu(kvm, 0) should give the same result).

>
> + if (npages > SUBPAGE_MAX_BITMAP)
> + return -EFAULT;

This is not needed here, the restriction only applies to the ioctl.

Paolo