xen: use spin_lock_nest_lock when pinning a pagetable
authorJeremy Fitzhardinge <jeremy@goop.org>
Wed, 8 Oct 2008 20:01:39 +0000 (13:01 -0700)
committerIngo Molnar <mingo@elte.hu>
Thu, 9 Oct 2008 12:25:19 +0000 (14:25 +0200)
commiteefb47f6a1e855653d275cb90592a3587ea93a09
treef6b5b611a8900d975874ab0ac9e7f5df935ef862
parentd19c8e516e0a17e049bcfbe96f86e040254ddf14
xen: use spin_lock_nest_lock when pinning a pagetable

When pinning/unpinning a pagetable with split pte locks, we can end up
holding multiple pte locks at once (we need to hold the locks while
there's a pending batched hypercall affecting the pte page).  Because
all the pte locks are in the same lock class, lockdep thinks that
we're potentially taking a lock recursively.

This warning is spurious because we always take the pte locks while
holding mm->page_table_lock.  lockdep now has spin_lock_nest_lock to
express this kind of dominant lock use, so use it here so that lockdep
knows what's going on.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/xen/mmu.c
arch/x86/xen/mmu.h