From 1783a4e499304a71325d182299c5f96f2fb9156b Mon Sep 17 00:00:00 2001 From: Robin Holt Date: Thu, 2 Apr 2009 16:59:45 -0700 Subject: [PATCH] --- yaml --- r: 139770 b: refs/heads/master c: e8c158bb313c1df421eab7dc4299cd39cbbf5895 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/linux/lockdep.h | 17 +++++++++++++++++ trunk/kernel/spinlock.c | 12 ++---------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 576681ca46bb..eb674a8c935d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 41d577aa35aa0504fe28b76a948908bdb7fbec81 +refs/heads/master: e8c158bb313c1df421eab7dc4299cd39cbbf5895 diff --git a/trunk/include/linux/lockdep.h b/trunk/include/linux/lockdep.h index 5a58ea3e91e9..da5a5a1f4cd2 100644 --- a/trunk/include/linux/lockdep.h +++ b/trunk/include/linux/lockdep.h @@ -364,6 +364,23 @@ do { \ #endif /* CONFIG_LOCK_STAT */ +#ifdef CONFIG_LOCKDEP + +/* + * On lockdep we dont want the hand-coded irq-enable of + * _raw_*_lock_flags() code, because lockdep assumes + * that interrupts are not re-enabled during lock-acquire: + */ +#define LOCK_CONTENDED_FLAGS(_lock, try, lock, lockfl, flags) \ + LOCK_CONTENDED((_lock), (try), (lock)) + +#else /* CONFIG_LOCKDEP */ + +#define LOCK_CONTENDED_FLAGS(_lock, try, lock, lockfl, flags) \ + lockfl((_lock), (flags)) + +#endif /* CONFIG_LOCKDEP */ + #ifdef CONFIG_GENERIC_HARDIRQS extern void early_init_irq_lock_class(void); #else diff --git a/trunk/kernel/spinlock.c b/trunk/kernel/spinlock.c index 29ab20749dd3..7283c6dc2d59 100644 --- a/trunk/kernel/spinlock.c +++ b/trunk/kernel/spinlock.c @@ -299,16 +299,8 @@ unsigned long __lockfunc _spin_lock_irqsave_nested(spinlock_t *lock, int subclas local_irq_save(flags); preempt_disable(); spin_acquire(&lock->dep_map, subclass, 0, _RET_IP_); - /* - * On lockdep we dont want the hand-coded irq-enable of - * _raw_spin_lock_flags() code, because lockdep assumes - * that interrupts are not re-enabled during lock-acquire: - */ -#ifdef CONFIG_LOCKDEP - LOCK_CONTENDED(lock, _raw_spin_trylock, _raw_spin_lock); -#else - _raw_spin_lock_flags(lock, &flags); -#endif + LOCK_CONTENDED_FLAGS(lock, _raw_spin_trylock, _raw_spin_lock, + _raw_spin_lock_flags, &flags); return flags; } EXPORT_SYMBOL(_spin_lock_irqsave_nested);