On Tue, Jul 28, 2020 at 4:42 PM Vitaliy Makkoveev <[email protected]> wrote:
>
> On Tue, Jul 28, 2020 at 04:10:01PM -0400, sven falempin wrote:
> > Hello,
> >
> > I am running some trunk interfaces in a multi core environment,
> > it's a slightly modified version, i have a few NET_ASSERT_LOCKED();
> > suspecting some multi core shenanigans, which i guess was confirmed:
> > (unsure the have X meaning, but i ' m pretty sure 256 is very wrong)
> > the if_trunk.c locking is completely unmodified
> > The code is 6.7-stable
> >
> > splassert: lacp_detach: want 2 have 0
> > splassert: lacp_detach: want 2 have 0
> > splassert: lacp_detach: want 2 have 256
> >
> > I noticed : trunk_clone_destroy ,call
> >
> >     if (tr->tr_proto != TRUNK_PROTO_NONE)
> >         tr->tr_detach(tr);
> >
> > outside the lock, and that trunk_ioctl call it
> >
> >         if (tr->tr_proto != TRUNK_PROTO_NONE)
> >             error = tr->tr_detach(tr);
> >
> > but ioctl is as far as i understand locked.
> > I'm unsure if the difficult and amazing unlocking work
> > did an oopsies or if ioctl is already assumed unlocked.
> >
> > Kindly inform me.
> > Best regards, thank you for reading.
> >
>
> lacp_detach() touches nothing which requires NET_LOCK(). What is the
> reason you placed assertion to lacp_detach()?

<<it's a slightly modified version, i have a few NET_ASSERT_LOCKED()>>

the lacp_detach is not yours, i put them here because i have a NULL pointer
popping in other 'driver' callback.

I'm tracking this and trying to understand  how this memory is 'nullified'
mid function.

I do not think putting NET_ASSERT_LOCKED can be harmful in any way.
If so please tell me.

I am just tracking  a bug  and noticed these detach locking strangeness.

Reply via email to