We are going to lock the whole pipex(4) by NET_LOCK(). So move `multicast_session' freeing undet NET_LOCK() too.
Index: sys/net/pipex.c =================================================================== RCS file: /cvs/src/sys/net/pipex.c,v retrieving revision 1.120 diff -u -p -r1.120 pipex.c --- sys/net/pipex.c 17 Jul 2020 08:57:27 -0000 1.120 +++ sys/net/pipex.c 17 Jul 2020 13:23:16 -0000 @@ -192,8 +192,8 @@ pipex_iface_stop(struct pipex_iface_cont void pipex_iface_fini(struct pipex_iface_context *pipex_iface) { - pool_put(&pipex_session_pool, pipex_iface->multicast_session); NET_LOCK(); + pool_put(&pipex_session_pool, pipex_iface->multicast_session); pipex_iface_stop(pipex_iface); NET_UNLOCK(); }