On Fri, Jul 21, 2017 at 04:51:31PM +0200, Phil Sutter wrote: > During concurrent access testing, threadfunc() concatenated thread ID > and object index to create a unique key like so: > > | tdata->objs[i].value = (tdata->id << 16) | i; > > This breaks if a user passes an entries parameter of 64k or higher, > since 'i' might use more than 16 bits then. Effectively, this will lead > to duplicate keys in the table. > > Fix the problem by introducing a struct holding object and thread ID and > using that as key instead of a single integer type field. > > Fixes: f4a3e90ba5739 ("rhashtable-test: extend to test concurrency") > Reported by: Manuel Messner <m...@skelett.io> > Signed-off-by: Phil Sutter <p...@nwl.cc>
Acked-by: Herbert Xu <herb...@gondor.apana.org.au> -- Email: Herbert Xu <herb...@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt