On Tue, 2009-02-03 at 12:47 +0200, Avi Kivity wrote: > Mark McLoughlin wrote: > > which lock already depends on the new lock. > > > > the existing dependency chain (in reverse order) is: > > > > -> #1 (&kvm->slots_lock){----}: > > [<ffffffff8106e9c1>] __lock_acquire+0xaab/0xc41 > > [<ffffffff8106ebe4>] lock_acquire+0x8d/0xba > > [<ffffffff813826ae>] down_read+0x4b/0x7f > > [<ffffffffa0137ff2>] kvm_iommu_map_guest+0x62/0xb8 [kvm] > > [<ffffffffa01363ea>] kvm_vm_ioctl+0x3f4/0x7f1 [kvm] > > [<ffffffff810eac30>] vfs_ioctl+0x2a/0x78 > > [<ffffffff810eb0e9>] do_vfs_ioctl+0x46b/0x4ab > > [<ffffffff810eb17e>] sys_ioctl+0x55/0x77 > > [<ffffffff810112ba>] system_call_fastpath+0x16/0x1b > > [<ffffffffffffffff>] 0xffffffffffffffff > > > > I think taking slots_lock in kvm_vm_ioctl_assign_device() (and dropping > it from kvm_iommu_map_guest) should suffice, no? Just from a quick look, that seems right - also need to remove the locking from kvm_iommu_unmap_memslots() Cheers, Mark. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html