summaryrefslogtreecommitdiffstats
path: root/kernel/futex/waitwake.c
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2025-04-16 18:29:04 +0200
committerPeter Zijlstra <peterz@infradead.org>2025-05-03 12:02:05 +0200
commit2fb292096d950a67a1941949a08a60ddd3193da3 (patch)
tree5180dd19cd125202d83726b793d7abb255a504c4 /kernel/futex/waitwake.c
parentfutex: Move futex_queue() into futex_wait_setup() (diff)
downloadlinux-2fb292096d950a67a1941949a08a60ddd3193da3.tar.gz
linux-2fb292096d950a67a1941949a08a60ddd3193da3.zip
futex: Pull futex_hash() out of futex_q_lock()
Getting the hash bucket and queuing it are two distinct actions. In light of wanting to add a put hash bucket function later, untangle them. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lore.kernel.org/r/20250416162921.513656-5-bigeasy@linutronix.de
Diffstat (limited to 'kernel/futex/waitwake.c')
-rw-r--r--kernel/futex/waitwake.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/futex/waitwake.c b/kernel/futex/waitwake.c
index 6cf10701294b..1108f373fd31 100644
--- a/kernel/futex/waitwake.c
+++ b/kernel/futex/waitwake.c
@@ -441,7 +441,8 @@ retry:
struct futex_q *q = &vs[i].q;
u32 val = vs[i].w.val;
- hb = futex_q_lock(q);
+ hb = futex_hash(&q->key);
+ futex_q_lock(q, hb);
ret = futex_get_value_locked(&uval, uaddr);
if (!ret && uval == val) {
@@ -611,7 +612,8 @@ retry:
return ret;
retry_private:
- hb = futex_q_lock(q);
+ hb = futex_hash(&q->key);
+ futex_q_lock(q, hb);
ret = futex_get_value_locked(&uval, uaddr);