lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <20190408023445.ihid3a6tx6k37xhd@gondor.apana.org.au> Date: Mon, 8 Apr 2019 10:34:46 +0800 From: Herbert Xu <herbert@...dor.apana.org.au> To: NeilBrown <neilb@...e.com> Cc: Thomas Graf <tgraf@...g.ch>, netdev@...r.kernel.org, linux-kernel@...r.kernel.org Subject: Re: [PATCH 1/4] rhashtable: use cmpxchg() in nested_table_alloc() On Tue, Apr 02, 2019 at 10:07:45AM +1100, NeilBrown wrote: > nested_table_alloc() relies on the fact that there is > at most one spinlock allocated for every slot in the top > level nested table, so it is not possible for two threads > to try to allocate the same table at the same time. > > This assumption is a little fragile (it is not explicit) and is > unnecessary as cmpxchg() can be used instead. > > A future patch will replace the spinlocks by per-bucket bitlocks, > and then we won't be able to protect the slot pointer with a spinlock. > > So replace rcu_assign_pointer() with cmpxchg() - which has equivalent > barrier properties. > If it the cmp fails, free the table that was just allocated. > > Signed-off-by: NeilBrown <neilb@...e.com> Acked-by: Herbert Xu <herbert@...dor.apana.org.au> -- Email: Herbert Xu <herbert@...dor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Powered by blists - more mailing lists