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

Reply via email to