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.
