• Sean Christopherson's avatar
    KVM: selftests: Sanity check input to ioctls() at build time · fcba483e
    Sean Christopherson authored
    Add a static assert to the KVM/VM/vCPU ioctl() helpers to verify that the
    size of the argument provided matches the expected size of the IOCTL.
    Because ioctl() ultimately takes a "void *", it's all too easy to pass in
    garbage and not detect the error until runtime.  E.g. while working on a
    CPUID rework, selftests happily compiled when vcpu_set_cpuid()
    unintentionally passed the cpuid() function as the parameter to ioctl()
    (a local "cpuid" parameter was removed, but its use was not replaced with
    "vcpu->cpuid" as intended).
    
    Tweak a variety of benign issues that aren't compatible with the sanity
    check, e.g. passing a non-pointer for ioctls().
    
    Note, static_assert() requires a string on older versions of GCC.  Feed
    it an empty string to make the compiler happy.
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    fcba483e
guest_modes.c 3.33 KB