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();
 }

Reply via email to