KVM: Fix possible circular locking in kvm_vm_ioctl_assign_device()
authorSheng Yang <sheng@linux.intel.com>
Tue, 15 Dec 2009 02:28:07 +0000 (10:28 +0800)
committerMarcelo Tosatti <mtosatti@redhat.com>
Sun, 27 Dec 2009 15:36:31 +0000 (13:36 -0200)
commitfae3a3536a6fecedebd49fa847f810e599bfb132
tree18b555c3f6bcc6735fd7a90db2c398a35e29c84e
parentfb341f572d26e0786167cd96b90cc4febed830cf
KVM: Fix possible circular locking in kvm_vm_ioctl_assign_device()

One possible order is:

KVM_CREATE_IRQCHIP ioctl(took kvm->lock) -> kvm_iobus_register_dev() ->
down_write(kvm->slots_lock).

The other one is in kvm_vm_ioctl_assign_device(), which take kvm->slots_lock
first, then kvm->lock.

Update the comment of lock order as well.

Observe it due to kernel locking debug warnings.

Cc: stable@kernel.org
Signed-off-by: Sheng Yang <sheng@linux.intel.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
virt/kvm/assigned-dev.c
virt/kvm/kvm_main.c