Re: [PATCH 2/2] KVM: x86: Use memcmp in kvm_cpuid_check_equal()

From: Sean Christopherson
Date: Wed Jan 26 2022 - 11:02:48 EST


On Wed, Jan 26, 2022, Vitaly Kuznetsov wrote:
> Joe Perches <joe@xxxxxxxxxxx> writes:
>
> > On Mon, 2022-01-24 at 11:36 +0100, Vitaly Kuznetsov wrote:
> >> kvm_cpuid_check_equal() should also check .flags equality but instead
> >> of adding it to the existing check, just switch to using memcmp() for
> >> the whole 'struct kvm_cpuid_entry2'.
> >
> > Is the struct padding guaranteed to be identical ?
> >
>
> Well, yes (or we're all doomeed):
> - 'struct kvm_cpuid_entry2' is part of KVM userspace ABI, it is supposed
> to be stable.
> - Here we compare structs which come from the same userspace during one
> session (vCPU fd stays open), I can't imagine how structure layout can
> change on-the-fly.

I'm pretty sure Joe was asking if the contents of the padding field would be
identical, i.e. if KVM can guarnatee there won't be false positives on mismatches,
which is the same reason Paolo passed on this patch. Though I still think we
should roll the dice :-)