Skip to content

Commit

Permalink
Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/l…
Browse files Browse the repository at this point in the history
…inux/kernel/git/tip/linux-2.6-tip

* 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  locking: clarify kernel-taint warning message
  lockdep, x86: account for irqs enabled in paranoid_exit
  lockdep: more robust lockdep_map init sequence
  • Loading branch information
torvalds committed Apr 26, 2009
2 parents ce8a742 + b48ccb0 commit 1e4b978
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 9 deletions.
3 changes: 3 additions & 0 deletions arch/x86/kernel/entry_64.S
Original file line number Diff line number Diff line change
Expand Up @@ -1410,7 +1410,10 @@ ENTRY(paranoid_exit)
paranoid_swapgs:
TRACE_IRQS_IRETQ 0
SWAPGS_UNSAFE_STACK
RESTORE_ALL 8
jmp irq_return
paranoid_restore:
TRACE_IRQS_IRETQ 0
RESTORE_ALL 8
jmp irq_return
paranoid_userspace:
Expand Down
22 changes: 14 additions & 8 deletions kernel/lockdep.c
Original file line number Diff line number Diff line change
Expand Up @@ -2490,13 +2490,20 @@ static int mark_lock(struct task_struct *curr, struct held_lock *this,
void lockdep_init_map(struct lockdep_map *lock, const char *name,
struct lock_class_key *key, int subclass)
{
if (unlikely(!debug_locks))
lock->class_cache = NULL;
#ifdef CONFIG_LOCK_STAT
lock->cpu = raw_smp_processor_id();
#endif

if (DEBUG_LOCKS_WARN_ON(!name)) {
lock->name = "NULL";
return;
}

lock->name = name;

if (DEBUG_LOCKS_WARN_ON(!key))
return;
if (DEBUG_LOCKS_WARN_ON(!name))
return;
/*
* Sanity check, the lock-class key must be persistent:
*/
Expand All @@ -2505,12 +2512,11 @@ void lockdep_init_map(struct lockdep_map *lock, const char *name,
DEBUG_LOCKS_WARN_ON(1);
return;
}
lock->name = name;
lock->key = key;
lock->class_cache = NULL;
#ifdef CONFIG_LOCK_STAT
lock->cpu = raw_smp_processor_id();
#endif

if (unlikely(!debug_locks))
return;

if (subclass)
register_lock_class(lock, subclass, 1);
}
Expand Down
2 changes: 1 addition & 1 deletion kernel/panic.c
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ void add_taint(unsigned flag)
* post-warning case.
*/
if (flag != TAINT_CRAP && flag != TAINT_WARN && __debug_locks_off())
printk(KERN_WARNING "Disabling lockdep due to kernel taint\n");
printk(KERN_WARNING "Disabling lock debugging due to kernel taint\n");

set_bit(flag, &tainted_mask);
}
Expand Down

0 comments on commit 1e4b978

Please sign in to comment.