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()?
