[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <155503371949.17793.8266195008003399968.stgit@noble.brown>
Date: Fri, 12 Apr 2019 11:52:07 +1000
From: NeilBrown <neilb@...e.com>
To: Thomas Graf <tgraf@...g.ch>,
Herbert Xu <herbert@...dor.apana.org.au>,
David Miller <davem@...emloft.net>
Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
Guenter Roeck <linux@...ck-us.net>
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.
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
Powered by blists - more mailing lists