X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2Frhashtable.c;h=3d2b4733f6cb7cf2fdca301d80f7d7bb0d6d61cc;hb=f86dc4b04dd5292cae3708c16ca6e46dbb5c95fa;hp=7b36e4d40ed7e3a1e0e1ddb87f386768c8b256aa;hpb=84de67b29882efaacd05861f41e749c5e8f0c3ed;p=firefly-linux-kernel-4.4.55.git diff --git a/lib/rhashtable.c b/lib/rhashtable.c index 7b36e4d40ed7..3d2b4733f6cb 100644 --- a/lib/rhashtable.c +++ b/lib/rhashtable.c @@ -54,7 +54,7 @@ static u32 __hashfn(const struct rhashtable *ht, const void *key, /** * rhashtable_hashfn - compute hash for key of given length - * @ht: hash table to compuate for + * @ht: hash table to compute for * @key: pointer to key * @len: length of key * @@ -85,7 +85,7 @@ static u32 obj_hashfn(const struct rhashtable *ht, const void *ptr, u32 hsize) /** * rhashtable_obj_hashfn - compute hash for hashed object - * @ht: hash table to compuate for + * @ht: hash table to compute for * @ptr: pointer to hashed object * * Computes the hash value using the hash function `hashfn` respectively @@ -588,13 +588,13 @@ EXPORT_SYMBOL_GPL(rhashtable_init); * rhashtable_destroy - destroy hash table * @ht: the hash table to destroy * - * Frees the bucket array. + * Frees the bucket array. This function is not rcu safe, therefore the caller + * has to make sure that no resizing may happen by unpublishing the hashtable + * and waiting for the quiescent cycle before releasing the bucket array. */ void rhashtable_destroy(const struct rhashtable *ht) { - const struct bucket_table *tbl = rht_dereference(ht->tbl, ht); - - bucket_table_free(tbl); + bucket_table_free(ht->tbl); } EXPORT_SYMBOL_GPL(rhashtable_destroy);