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.