Thread (4 messages) 4 messages, 3 authors, 2015-06-30

Re: [PATCH v3.17 .. v3.19] lib/rhashtable: fix race between rhashtable_lookup_compare and hashtable resize

From: Thomas Graf <tgraf@suug.ch>
Date: 2015-06-30 06:28:39
Also in: netdev

On 06/26/15 at 01:48pm, Konstantin Khlebnikov wrote:
Hash value passed as argument into rhashtable_lookup_compare could be
computed using different hash table than rhashtable_lookup_compare sees.

This patch passes key into rhashtable_lookup_compare() instead of hash and
compures hash value right in place using the same table as for lookup.

Also it adds comment for rhashtable_hashfn and rhashtable_obj_hashfn:
user must prevent concurrent insert/remove otherwise returned hash value
could be invalid.

Signed-off-by: Konstantin Khlebnikov <redacted>
Fixes: e341694e3eb5 ("netlink: Convert netlink_lookup() to use RCU protected hash table")
Link: http://lkml.kernel.org/r/20150514042151.GA5482@gondor.apana.org.au
Cc: Stable <redacted> (v3.17 .. v3.19)
Nice catch.

For reference, this is a partial cherry pick of
8d24c0b43125e ("rhashtable: Do hashing inside of rhashtable_lookup_compare()")

nft_hash is not affected as it doesn't use the lookup API until 4.0.

Acked-by: Thomas Graf <tgraf@suug.ch>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help