Re: [patch 14/31] x86/fpu: Replace KVMs homebrewn FPU copy from user

From: Paolo Bonzini
Date: Wed Oct 13 2021 - 11:12:31 EST


On 13/10/21 16:57, Sean Christopherson wrote:
+int fpu_copy_kvm_uabi_to_vcpu(struct fpu *fpu, const void *buf, u64 xcr0,
+ u32 *vpkru)
Right, except that there's no @vcpu in the args of that function. I
guess you could call it

fpu_copy_kvm_uabi_to_buf()

and that @buf can be

vcpu->arch.guest_fpu
But the existing @buf is the userspace pointer, which semantically makes sense
because the userspace pointer is the "buffer" and the destination @fpu (and @prku)
is vCPU state, not a buffer.

That said, I also struggled with the lack of @vcpu. What about prepending vcpu_
to fpu and to pkru? E.g.

int fpu_copy_kvm_uabi_to_vcpu(struct fpu *vcpu_fpu, const void *buf, u64 xcr0,
u32 *vcpu_pkru)


It doesn't matter much that the source is somehow related to a vCPU, as long as the FPU is concerned. If anything I would even drop the "v" from vpkru, but that's really nitpicking.

Paolo