aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/locking/rwsem.c
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2025-07-19 19:25:53 +0200
committerPeter Zijlstra <peterz@infradead.org>2025-07-19 19:25:53 +0200
commitba28549bad8ab2b09264ebc8c2ca24af3537ee52 (patch)
tree202ce15fa4875018ae4cde5fb9a5c703737f35ec /kernel/locking/rwsem.c
parentlocal_lock: Move this_cpu_ptr() notation from internal to main header (diff)
parentlockdep: Speed up lockdep_unregister_key() with expedited RCU synchronization (diff)
downloadlinux-ba28549bad8ab2b09264ebc8c2ca24af3537ee52.tar.gz
linux-ba28549bad8ab2b09264ebc8c2ca24af3537ee52.zip
Merge tag 'lockdep-for-tip.2025.07.16' of git://git.kernel.org/pub/scm/linux/kernel/git/boqun/linux into locking/core
Locking changes for v6.17: - General - Mark devm_mutex_init() as __must_check - Add #[must_use] to Lock::try_lock() - Remove OWNER_SPINNABLE in rwsem - Remove redundant #ifdefs in mutex - Lockdep - Avoid returning struct in lock_stats() - Change `static const` into enum for LOCKF_*_IRQ_* - Temporarily use synchronize_rcu_expedited() in lockdep_unregister_key() to speed things up. Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Diffstat (limited to 'kernel/locking/rwsem.c')
-rw-r--r--kernel/locking/rwsem.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c
index 2ddb827e3bea..8572dba95af4 100644
--- a/kernel/locking/rwsem.c
+++ b/kernel/locking/rwsem.c
@@ -727,8 +727,6 @@ static inline bool rwsem_can_spin_on_owner(struct rw_semaphore *sem)
return ret;
}
-#define OWNER_SPINNABLE (OWNER_NULL | OWNER_WRITER | OWNER_READER)
-
static inline enum owner_state
rwsem_owner_state(struct task_struct *owner, unsigned long flags)
{
@@ -835,7 +833,7 @@ static bool rwsem_optimistic_spin(struct rw_semaphore *sem)
enum owner_state owner_state;
owner_state = rwsem_spin_on_owner(sem);
- if (!(owner_state & OWNER_SPINNABLE))
+ if (owner_state == OWNER_NONSPINNABLE)
break;
/*