diff options
author | Thomas Graf <tgraf@suug.ch> | 2014-08-13 16:38:29 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-08-14 15:13:39 -0700 |
commit | 5300fdcb7b7e97d83033bc7196582705524d35ea (patch) | |
tree | 4aff86f9863ee5b4bf21827580c7423c515647d5 | |
parent | 0c9ab09223fe9922baeb22546c9a90d774a4bde6 (diff) | |
download | op-kernel-dev-5300fdcb7b7e97d83033bc7196582705524d35ea.zip op-kernel-dev-5300fdcb7b7e97d83033bc7196582705524d35ea.tar.gz |
rhashtable: RCU annotations for next pointers
Properly annotate next pointers as access is RCU protected in
the lookup path.
Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/linux/rhashtable.h | 4 | ||||
-rw-r--r-- | lib/rhashtable.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/rhashtable.h b/include/linux/rhashtable.h index 9cda293..8c6048e 100644 --- a/include/linux/rhashtable.h +++ b/include/linux/rhashtable.h @@ -21,7 +21,7 @@ #include <linux/rculist.h> struct rhash_head { - struct rhash_head *next; + struct rhash_head __rcu *next; }; #define INIT_HASH_HEAD(ptr) ((ptr)->next = NULL) @@ -97,7 +97,7 @@ u32 rhashtable_obj_hashfn(const struct rhashtable *ht, void *ptr); void rhashtable_insert(struct rhashtable *ht, struct rhash_head *node, gfp_t); bool rhashtable_remove(struct rhashtable *ht, struct rhash_head *node, gfp_t); void rhashtable_remove_pprev(struct rhashtable *ht, struct rhash_head *obj, - struct rhash_head **pprev, gfp_t flags); + struct rhash_head __rcu **pprev, gfp_t flags); bool rht_grow_above_75(const struct rhashtable *ht, size_t new_size); bool rht_shrink_below_30(const struct rhashtable *ht, size_t new_size); diff --git a/lib/rhashtable.c b/lib/rhashtable.c index e6940cf..338dd7a 100644 --- a/lib/rhashtable.c +++ b/lib/rhashtable.c @@ -386,7 +386,7 @@ EXPORT_SYMBOL_GPL(rhashtable_insert); * deletion when combined with walking or lookup. */ void rhashtable_remove_pprev(struct rhashtable *ht, struct rhash_head *obj, - struct rhash_head **pprev, gfp_t flags) + struct rhash_head __rcu **pprev, gfp_t flags) { struct bucket_table *tbl = rht_dereference(ht->tbl, ht); |