summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2025-04-16 18:29:11 +0200
committerPeter Zijlstra <peterz@infradead.org>2025-05-03 12:02:07 +0200
commit9a9bdfdd687395a3dc949d3ae3323494395a93d4 (patch)
treea23ba01108ffc8c91611bec67fee7a9b0d3c3aab
parentb04b8f3032aae6121303bfa324c768faba032242 (diff)
futex: Create helper function to initialize a hash slot
Factor out the futex_hash_bucket initialisation into a helpr function. The helper function will be used in a follow up patch implementing process private hash buckets. 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-12-bigeasy@linutronix.de
-rw-r--r--kernel/futex/core.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/kernel/futex/core.c b/kernel/futex/core.c
index 1443a98dfa7f..afc66780f84f 100644
--- a/kernel/futex/core.c
+++ b/kernel/futex/core.c
@@ -1160,6 +1160,13 @@ void futex_exit_release(struct task_struct *tsk)
futex_cleanup_end(tsk, FUTEX_STATE_DEAD);
}
+static void futex_hash_bucket_init(struct futex_hash_bucket *fhb)
+{
+ atomic_set(&fhb->waiters, 0);
+ plist_head_init(&fhb->chain);
+ spin_lock_init(&fhb->lock);
+}
+
static int __init futex_init(void)
{
unsigned long hashsize, i;
@@ -1177,11 +1184,8 @@ static int __init futex_init(void)
hashsize, hashsize);
hashsize = 1UL << futex_shift;
- for (i = 0; i < hashsize; i++) {
- atomic_set(&futex_queues[i].waiters, 0);
- plist_head_init(&futex_queues[i].chain);
- spin_lock_init(&futex_queues[i].lock);
- }
+ for (i = 0; i < hashsize; i++)
+ futex_hash_bucket_init(&futex_queues[i]);
futex_hashmask = hashsize - 1;
return 0;