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)
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

Simple merge
Simple merge