• Greg Kurz's avatar
    KVM: PPC: Fix oops when checking KVM_CAP_PPC_HTM · ac64115a
    Greg Kurz authored
    The following program causes a kernel oops:
    
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <sys/ioctl.h>
    #include <linux/kvm.h>
    
    main()
    {
        int fd = open("/dev/kvm", O_RDWR);
        ioctl(fd, KVM_CHECK_EXTENSION, KVM_CAP_PPC_HTM);
    }
    
    This happens because when using the global KVM fd with
    KVM_CHECK_EXTENSION, kvm_vm_ioctl_check_extension() gets
    called with a NULL kvm argument, which gets dereferenced
    in is_kvmppc_hv_enabled(). Spotted while reading the code.
    
    Let's use the hv_enabled fallback variable, like everywhere
    else in this function.
    
    Fixes: 23528bb2 ("KVM: PPC: Introduce KVM_CAP_PPC_HTM")
    Cc: stable@vger.kernel.org # v4.7+
    Signed-off-by: default avatarGreg Kurz <groug@kaod.org>
    Reviewed-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
    Reviewed-by: default avatarThomas Huth <thuth@redhat.com>
    Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
    ac64115a
powerpc.c 42.8 KB