[lkml]   [2019]   [Apr]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH 0/5] Fix rhashtable bit-locking for m68k
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.



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(-)


 \ /
  Last update: 2019-04-12 03:53    [W:0.093 / U:3.656 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site