Re: [PATCH] net/core/neighbour: tell kmemleak about hash tables

From: Konstantin Khlebnikov
Date: Thu Jan 10 2019 - 23:26:21 EST


On Thu, Jan 10, 2019 at 11:45 PM Cong Wang <xiyou.wangcong@xxxxxxxxx> wrote:
>
> On Tue, Jan 8, 2019 at 1:30 AM Konstantin Khlebnikov
> <khlebnikov@xxxxxxxxxxxxxx> wrote:
> > @@ -443,12 +444,14 @@ static struct neigh_hash_table *neigh_hash_alloc(unsigned int shift)
> > ret = kmalloc(sizeof(*ret), GFP_ATOMIC);
> > if (!ret)
> > return NULL;
> > - if (size <= PAGE_SIZE)
> > + if (size <= PAGE_SIZE) {
> > buckets = kzalloc(size, GFP_ATOMIC);
> > - else
> > + } else {
> > buckets = (struct neighbour __rcu **)
> > __get_free_pages(GFP_ATOMIC | __GFP_ZERO,
> > get_order(size));
> > + kmemleak_alloc(buckets, size, 0, GFP_ATOMIC);
>
> Why min_count is 0 rather than 1 here?

The api isn't clear and I've misread description.
So it should be 1 for reporting leak of hash table itself.
But 0 doesn't add any new issues.