Skip to content

Commit

Permalink
rhashtable: Fix cmpxchg RCU warnings
Browse files Browse the repository at this point in the history
As cmpxchg is a non-RCU mechanism it will cause sparse warnings
when we use it for RCU.  This patch adds explicit casts to silence
those warnings.  This should probably be moved to RCU itself in
future.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Herbert Xu authored and David S. Miller committed May 16, 2019
1 parent ba6306e commit e9458a4
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions lib/rhashtable.c
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ static union nested_table *nested_table_alloc(struct rhashtable *ht,
INIT_RHT_NULLS_HEAD(ntbl[i].bucket);
}

if (cmpxchg(prev, NULL, ntbl) == NULL)
if (cmpxchg((union nested_table **)prev, NULL, ntbl) == NULL)
return ntbl;
/* Raced with another thread. */
kfree(ntbl);
Expand Down Expand Up @@ -296,7 +296,8 @@ static int rhashtable_rehash_attach(struct rhashtable *ht,
* rcu_assign_pointer().
*/

if (cmpxchg(&old_tbl->future_tbl, NULL, new_tbl) != NULL)
if (cmpxchg((struct bucket_table **)&old_tbl->future_tbl, NULL,
new_tbl) != NULL)
return -EEXIST;

return 0;
Expand Down

0 comments on commit e9458a4

Please sign in to comment.