Merge branch 'v2.6.25-rc3-lockdep' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 26 Feb 2008 15:49:15 +0000 (07:49 -0800)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 26 Feb 2008 15:49:15 +0000 (07:49 -0800)
* 'v2.6.25-rc3-lockdep' of git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep:
  Subject: lockdep: include all lock classes in all_lock_classes
  lockdep: increase MAX_LOCK_DEPTH

include/linux/sched.h
kernel/lockdep.c

index 9c17e828d6d4f14ea2734aec19e97bb6afe456d9..2c9621f8bf872a2224482e509069226f9d08fd30 100644 (file)
@@ -1190,7 +1190,7 @@ struct task_struct {
        int softirq_context;
 #endif
 #ifdef CONFIG_LOCKDEP
-# define MAX_LOCK_DEPTH 30UL
+# define MAX_LOCK_DEPTH 48UL
        u64 curr_chain_key;
        int lockdep_depth;
        struct held_lock held_locks[MAX_LOCK_DEPTH];
index 3574379f4d62d2d04c9431c0c2172dc044d0ca66..81a4e4a3f087adfc650eb6baf2c05147f209e062 100644 (file)
@@ -779,6 +779,10 @@ register_lock_class(struct lockdep_map *lock, unsigned int subclass, int force)
         * parallel walking of the hash-list safe:
         */
        list_add_tail_rcu(&class->hash_entry, hash_head);
+       /*
+        * Add it to the global list of classes:
+        */
+       list_add_tail_rcu(&class->lock_entry, &all_lock_classes);
 
        if (verbose(class)) {
                graph_unlock();
@@ -2282,10 +2286,6 @@ static int mark_lock(struct task_struct *curr, struct held_lock *this,
                        return 0;
                break;
        case LOCK_USED:
-               /*
-                * Add it to the global list of classes:
-                */
-               list_add_tail_rcu(&this->class->lock_entry, &all_lock_classes);
                debug_atomic_dec(&nr_unused_locks);
                break;
        default: