Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 57f4257e authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Linus Torvalds
Browse files

lockref: use BLOATED_SPINLOCKS to avoid explicit config dependencies



Avoid the fragile Kconfig construct guestimating spinlock_t sizes; use a
friendly compile-time test to determine this.

[kirill.shutemov@linux.intel.com: drop CONFIG_CMPXCHG_LOCKREF]
Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
Signed-off-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent ea1e7ed3
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -15,10 +15,15 @@
 */

#include <linux/spinlock.h>
#include <generated/bounds.h>

#define USE_CMPXCHG_LOCKREF \
	(IS_ENABLED(CONFIG_ARCH_USE_CMPXCHG_LOCKREF) && \
	 IS_ENABLED(CONFIG_SMP) && !BLOATED_SPINLOCKS)

struct lockref {
	union {
#ifdef CONFIG_CMPXCHG_LOCKREF
#if USE_CMPXCHG_LOCKREF
		aligned_u64 lock_count;
#endif
		struct {
+0 −7
Original line number Diff line number Diff line
@@ -51,13 +51,6 @@ config PERCPU_RWSEM
config ARCH_USE_CMPXCHG_LOCKREF
	bool

config CMPXCHG_LOCKREF
	def_bool y if ARCH_USE_CMPXCHG_LOCKREF
	depends on SMP
	depends on !GENERIC_LOCKBREAK
	depends on !DEBUG_SPINLOCK
	depends on !DEBUG_LOCK_ALLOC

config CRC_CCITT
	tristate "CRC-CCITT functions"
	help
+1 −1
Original line number Diff line number Diff line
#include <linux/export.h>
#include <linux/lockref.h>

#ifdef CONFIG_CMPXCHG_LOCKREF
#if USE_CMPXCHG_LOCKREF

/*
 * Allow weakly-ordered memory architectures to provide barrier-less