Re: [PATCH 1/1] bridge: mdb: report complete_info ptr as not a kmemleak

From: Eduardo Valentin
Date: Tue Jul 11 2017 - 17:44:24 EST


On Wed, Jul 05, 2017 at 09:05:14AM -0700, Eduardo Valentin wrote:
> On Tue, Jul 04, 2017 at 01:48:42AM -0700, David Miller wrote:
> > From: Eduardo Valentin <eduval@xxxxxxxxxx>
> > Date: Mon, 3 Jul 2017 10:06:34 -0700
> >
> > > We currently get the following kmemleak report:
> > ...
> > > This patch flags the complete_info ptr object as not a leak as it will
> > > get freed when .complete_priv() is called,
> >
> > We don't call .complete_priv(). We call .complete().
>
> True, I can fix this wording in the commit next version.
>
> >
> > for the br mdb case, it
> > > will be freed at br_mdb_complete().
> > >
> > > Cc: stable <stable@xxxxxxxxxxxxxxx> # v4.9+
> > > Reviewed-by: Vallish Vaidyeshwara <vallish@xxxxxxxxxx>
> > > Signed-off-by: Eduardo Valentin <eduval@xxxxxxxxxx>
> >
> > I don't understand why kmemleak cannot see this.
> >
> > We store the pointer globally when we do the switchdev_port_obv_add()
> > call and it should be able to see that.
>
> I see and agree. But even then I get these reports consistently on RTM_NEWMDB type.
> This is why I am proposing marking as a non-kmemleak.
>
> To me, this is only a leak if .complete() never gets called.

Ok. So, in fact, I believe the problem I am seeing in more when switchdev_port_obj_add() fails.

I will send a patch for that.

>
>
> --
> All the best,
> Eduardo Valentin

--
All the best,
Eduardo Valentin