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
| ||
|
Date: Fri, 18 Dec 2015 13:34:16 +0800 From: Herbert Xu <herbert@...dor.apana.org.au> To: kernel test robot <ying.huang@...ux.intel.com> Cc: lkp@...org, LKML <linux-kernel@...r.kernel.org>, Colin Ian King <colin.king@...onical.com>, 0day robot <fengguang.wu@...el.com>, netdev@...r.kernel.org Subject: Re: [lkp] [rhashtable] f9f51b8070: INFO: suspicious RCU usage. ] On Fri, Dec 18, 2015 at 09:39:22AM +0800, kernel test robot wrote: > FYI, we noticed the below changes on > > https://github.com/0day-ci/linux Herbert-Xu/rhashtable-Fix-walker-list-corruption/20151216-164833 > commit f9f51b8070be3e829100614a7372b219723b864f ("rhashtable: Fix walker list corruption") > > > [ 8.933376] =============================== > [ 8.933376] =============================== > [ 8.934629] [ INFO: suspicious RCU usage. ] > [ 8.934629] [ INFO: suspicious RCU usage. ] > [ 8.935941] 4.4.0-rc3-00995-gf9f51b8 #2 Not tainted > [ 8.935941] 4.4.0-rc3-00995-gf9f51b8 #2 Not tainted > [ 8.937494] ------------------------------- > [ 8.937494] ------------------------------- > [ 8.938818] lib/rhashtable.c:504 suspicious rcu_dereference_protected() usage! > [ 8.938818] lib/rhashtable.c:504 suspicious rcu_dereference_protected() usage! This is actually a false positive because the new spin lock that we hold prevents ht->tbl from disappearing under us. So here is a patch to kill the warning with a comment. ---8<--- The commit f9f51b8070be3e829100614a7372b219723b864f ("rhashtable: Fix walker list corruption") causes a suspicious RCU usage warning because we no longer hold ht->mutex when we dereference ht->tbl. However, this is a false positive because we now hold ht->lock which also guarantees that ht->tbl won't disppear from under us. This patch kills the warning by using rcu_dereference_raw and adding a comment. Signed-off-by: Herbert Xu <herbert@...dor.apana.org.au> diff --git a/lib/rhashtable.c b/lib/rhashtable.c index eb9240c..3404b06 100644 --- a/lib/rhashtable.c +++ b/lib/rhashtable.c @@ -519,7 +519,11 @@ int rhashtable_walk_init(struct rhashtable *ht, struct rhashtable_iter *iter) return -ENOMEM; spin_lock(&ht->lock); - iter->walker->tbl = rht_dereference(ht->tbl, ht); + /* We do not need RCU protection because we hold ht->lock + * which guarantees that if we see ht->tbl then it won't + * die on us. + */ + iter->walker->tbl = rcu_dereference_raw(ht->tbl); list_add(&iter->walker->list, &iter->walker->tbl->walkers); spin_unlock(&ht->lock); -- 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 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists