• Christian Borntraeger's avatar
    KVM: fix rcu warning on VM_CREATE errors · 021086e3
    Christian Borntraeger authored
    commit 3898da94 ("KVM: avoid using rcu_dereference_protected") can
    trigger the following lockdep/rcu splat if the VM_CREATE ioctl fails,
    for example if kvm_arch_init_vm fails:
    
    WARNING: suspicious RCU usage
    4.13.0+ #105 Not tainted
    -----------------------------
    ./include/linux/kvm_host.h:481 suspicious rcu_dereference_check() usage!
    
    other info that might help us debug this:
    
    rcu_scheduler_active = 2, debug_locks = 1
    no locks held by qemu-system-s39/79.
    stack backtrace:
    CPU: 0 PID: 79 Comm: qemu-system-s39 Not tainted 4.13.0+ #105
    Hardware name: IBM 2964 NC9 704 (KVM/Linux)
    Call Trace:
    ([<00000000001140b2>] show_stack+0xea/0xf0)
     [<00000000008a68a4>] dump_stack+0x94/0xd8
     [<0000000000134c12>] kvm_dev_ioctl+0x372/0x7a0
     [<000000000038f940>] do_vfs_ioctl+0xa8/0x6c8
     [<0000000000390004>] SyS_ioctl+0xa4/0xb8
     [<00000000008c7a8c>] system_call+0xc4/0x27c
    no locks held by qemu-system-s39/79.
    
    We have to reset the just created users_count back to 0 to
    tell the check to not trigger.
    Reported-by: default avatarStefan Haberland <sth@linux.vnet.ibm.com>
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Fixes: 3898da94 ("KVM: avoid using rcu_dereference_protected")
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
    Signed-off-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
    021086e3
kvm_main.c 95 KB