[PATCH 0/5] Fix rhashtable bit-locking for m68k
From: NeilBrown
Date: Thu Apr 11 2019 - 21:52:33 EST
As reported by Guenter Roeck, the new rhashtable bit-locking
doesn't work on m68k as it only requires 2-byte alignment, so BIT(1)
is addresses is not unused.
We current use BIT(0) to identify a NULLS marker, but that is only
needed in ->next pointers. The bucket head does not need a NULLS
marker, so the lsb there can be used for locking.
the first 4 patches make some small improvements and re-arrange some
code. The final patch converts to using only BIT(0) for these two
different special purposes.
I had previously suggested dropping the series until I fix it. Given
that this was fairly easy, I retract that I think it best simply to
add these patches to fix the code.
Thanks,
NeilBrown
---
NeilBrown (5):
rhashtable: fix some __rcu annotation errors
rhashtable: reorder some inline functions and macros.
rhashtable: move dereference inside rht_ptr()
rhashtable: replace rht_ptr_locked() with rht_assign_locked()
rhashtable: use BIT(0) for locking.
include/linux/rhashtable.h | 226 +++++++++++++++++++++++++-------------------
lib/rhashtable.c | 24 ++---
lib/test_rhashtable.c | 2
3 files changed, 142 insertions(+), 110 deletions(-)
--
Signature