[PATCH 11/11] sched/wait: Improve __var_waitqueue()

From: Peter Zijlstra
Date: Thu Mar 15 2018 - 08:38:07 EST


Since we fixed hash_64 to not suck, there is no need to play games to
attempt to improve the hash value on 64bit. Also, since we don't use
the bit value for the variables, use hash_ptr() directly.

Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: George Spelvin <linux@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
---
kernel/sched/wait_bit.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)

--- a/kernel/sched/wait_bit.c
+++ b/kernel/sched/wait_bit.c
@@ -151,12 +151,7 @@ EXPORT_SYMBOL(wake_up_bit);

wait_queue_head_t *__var_waitqueue(void *p)
{
- if (BITS_PER_LONG == 64) {
- unsigned long q = (unsigned long)p;
-
- return bit_waitqueue((void *)(q & ~1), q & 1);
- }
- return bit_waitqueue(p, 0);
+ return bit_wait_table + hash_ptr(p, WAIT_TABLE_BITS);
}
EXPORT_SYMBOL(__var_waitqueue);