From: Cornelia Huck Date: Mon, 17 Mar 2014 18:11:35 +0000 (+0100) Subject: KVM: eventfd: Fix lock order inversion. X-Git-Tag: v3.15-rc1~118^2~13 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=684a0b719ddbbafe1c7e6646b9bc239453a1773d;p=pandora-kernel.git KVM: eventfd: Fix lock order inversion. When registering a new irqfd, we call its ->poll method to collect any event that might have previously been pending so that we can trigger it. This is done under the kvm->irqfds.lock, which means the eventfd's ctx lock is taken under it. However, if we get a POLLHUP in irqfd_wakeup, we will be called with the ctx lock held before getting the irqfds.lock to deactivate the irqfd, causing lockdep to complain. Calling the ->poll method does not really need the irqfds.lock, so let's just move it after we've given up the irqfds.lock in kvm_irqfd_assign(). Signed-off-by: Cornelia Huck Signed-off-by: Paolo Bonzini --- Reading git-diff-tree failed