aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/locking/spinlock.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2015-03-10 10:37:02 +0000
committerMark Brown <broonie@kernel.org>2015-03-10 10:37:02 +0000
commiteb5bc2a213f96bd43b5f00a625acb0c669613645 (patch)
tree6093a86c9e704ebfed54adb426ff3079a428da93 /kernel/locking/spinlock.c
parentASoC: rt5670: Check sysclk source by private data (diff)
parentLinux 4.0-rc3 (diff)
Merge tag 'v4.0-rc3' into asoc-rt5670
Linux 4.0-rc3 Conflicts: sound/soc/codecs/rt5670.c
Diffstat (limited to 'kernel/locking/spinlock.c')
-rw-r--r--kernel/locking/spinlock.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/locking/spinlock.c b/kernel/locking/spinlock.c
index 4b082b5cac9e..db3ccb1dd614 100644
--- a/kernel/locking/spinlock.c
+++ b/kernel/locking/spinlock.c
@@ -363,6 +363,14 @@ void __lockfunc _raw_spin_lock_nested(raw_spinlock_t *lock, int subclass)
}
EXPORT_SYMBOL(_raw_spin_lock_nested);
+void __lockfunc _raw_spin_lock_bh_nested(raw_spinlock_t *lock, int subclass)
+{
+ __local_bh_disable_ip(_RET_IP_, SOFTIRQ_LOCK_OFFSET);
+ spin_acquire(&lock->dep_map, subclass, 0, _RET_IP_);
+ LOCK_CONTENDED(lock, do_raw_spin_trylock, do_raw_spin_lock);
+}
+EXPORT_SYMBOL(_raw_spin_lock_bh_nested);
+
unsigned long __lockfunc _raw_spin_lock_irqsave_nested(raw_spinlock_t *lock,
int subclass)
{