diff --git a/[refs] b/[refs] index 5c3b156713f7..bfca5d8e5c75 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a98a3c3fde3ae7614f19758a043691b6f59dac53 +refs/heads/master: bb065afb8ebd07a03155502dba29ebf0f6fe67e8 diff --git a/trunk/kernel/lockdep.c b/trunk/kernel/lockdep.c index 90a440cbd6de..65548eff029e 100644 --- a/trunk/kernel/lockdep.c +++ b/trunk/kernel/lockdep.c @@ -82,6 +82,8 @@ static int graph_lock(void) __raw_spin_unlock(&lockdep_lock); return 0; } + /* prevent any recursions within lockdep from causing deadlocks */ + current->lockdep_recursion++; return 1; } @@ -90,6 +92,7 @@ static inline int graph_unlock(void) if (debug_locks && !__raw_spin_is_locked(&lockdep_lock)) return DEBUG_LOCKS_WARN_ON(1); + current->lockdep_recursion--; __raw_spin_unlock(&lockdep_lock); return 0; }