aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/rwlock.h
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2017-10-03 19:25:29 +0100
committerIngo Molnar <mingo@kernel.org>2017-10-10 11:50:19 +0200
commita4c1887d4c1462b0ec5a8989f8ba3cdd9057a299 (patch)
tree4b0f4364502ec0e8f790ebbe61fa3f4b019a667c /include/linux/rwlock.h
parentlocking/arch: Remove dummy arch_{read,spin,write}_relax() implementations (diff)
downloadlinux-dev-a4c1887d4c1462b0ec5a8989f8ba3cdd9057a299.tar.xz
linux-dev-a4c1887d4c1462b0ec5a8989f8ba3cdd9057a299.zip
locking/arch: Remove dummy arch_{read,spin,write}_lock_flags() implementations
The arch_{read,spin,write}_lock_flags() macros are simply mapped to the non-flags versions by the majority of architectures, so do this in core code and remove the dummy implementations. Also remove the implementation in spinlock_up.h, since all callers of do_raw_spin_lock_flags() call local_irq_save(flags) anyway. Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/1507055129-12300-4-git-send-email-will.deacon@arm.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/linux/rwlock.h')
-rw-r--r--include/linux/rwlock.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/rwlock.h b/include/linux/rwlock.h
index 766c5ca5cbd1..3dcd617e65ae 100644
--- a/include/linux/rwlock.h
+++ b/include/linux/rwlock.h
@@ -38,6 +38,15 @@ do { \
extern int do_raw_write_trylock(rwlock_t *lock);
extern void do_raw_write_unlock(rwlock_t *lock) __releases(lock);
#else
+
+#ifndef arch_read_lock_flags
+# define arch_read_lock_flags(lock, flags) arch_read_lock(lock)
+#endif
+
+#ifndef arch_write_lock_flags
+# define arch_write_lock_flags(lock, flags) arch_write_lock(lock)
+#endif
+
# define do_raw_read_lock(rwlock) do {__acquire(lock); arch_read_lock(&(rwlock)->raw_lock); } while (0)
# define do_raw_read_lock_flags(lock, flags) \
do {__acquire(lock); arch_read_lock_flags(&(lock)->raw_lock, *(flags)); } while (0)