diff options
author | David S. Miller | 2014-10-02 11:25:43 -0700 |
---|---|---|
committer | David S. Miller | 2014-10-02 11:25:43 -0700 |
commit | 739e4a758e0e2930f4bcdddd244254bae8dd7499 (patch) | |
tree | 0179d038669ad55591ae05a90b210d7090edf56e /lib | |
parent | d068b02cfdfc27f5962ec82ec5568b706f599edc (diff) | |
parent | 50dddff3cb9af328dd42bafe3437c7f47e8b38a9 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/usb/r8152.c
net/netfilter/nfnetlink.c
Both r8152 and nfnetlink conflicts were simple overlapping changes.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/genalloc.c | 1 | ||||
-rw-r--r-- | lib/rhashtable.c | 8 |
2 files changed, 5 insertions, 4 deletions
diff --git a/lib/genalloc.c b/lib/genalloc.c index bdb9a456bcbb..38d2db82228c 100644 --- a/lib/genalloc.c +++ b/lib/genalloc.c @@ -588,6 +588,7 @@ struct gen_pool *of_get_named_gen_pool(struct device_node *np, if (!np_pool) return NULL; pdev = of_find_device_by_node(np_pool); + of_node_put(np_pool); if (!pdev) return NULL; return dev_get_gen_pool(&pdev->dev); diff --git a/lib/rhashtable.c b/lib/rhashtable.c index 25f14c586ad7..3943e14da628 100644 --- a/lib/rhashtable.c +++ b/lib/rhashtable.c @@ -592,13 +592,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); |