summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2009-08-11 10:48:39 +0000
committerderaadt <deraadt@openbsd.org>2009-08-11 10:48:39 +0000
commit87f7165adf6211471a55895acf26a38222ae1b8a (patch)
treec54c1d2dc86f3ffaf26aac447989b1267ca6e9b2
parentThe shutdown hook is no longer required now that we shutdown all interfaces (diff)
downloadwireguard-openbsd-87f7165adf6211471a55895acf26a38222ae1b8a.tar.xz
wireguard-openbsd-87f7165adf6211471a55895acf26a38222ae1b8a.zip
Must move the splx() lower in m_clget() so that it protects atomic access
to the per-ipf mbuf cluster reference counters ok dlg claudio
-rw-r--r--sys/kern/uipc_mbuf.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c
index 6fe7e1ab646..7636f9ad2d7 100644
--- a/sys/kern/uipc_mbuf.c
+++ b/sys/kern/uipc_mbuf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: uipc_mbuf.c,v 1.128 2009/08/09 21:08:30 deraadt Exp $ */
+/* $OpenBSD: uipc_mbuf.c,v 1.129 2009/08/11 10:48:39 deraadt Exp $ */
/* $NetBSD: uipc_mbuf.c,v 1.15.4.1 1996/06/13 17:11:44 cgd Exp $ */
/*
@@ -421,7 +421,6 @@ m_clget(struct mbuf *m, int how, struct ifnet *ifp, u_int pktlen)
splx(s);
return (NULL);
}
- splx(s);
if (m->m_ext.ext_buf != NULL) {
m->m_data = m->m_ext.ext_buf;
m->m_flags |= M_EXT|M_CLUSTER;
@@ -436,6 +435,7 @@ m_clget(struct mbuf *m, int how, struct ifnet *ifp, u_int pktlen)
MCLINITREFERENCE(m);
}
+ splx(s);
return (m);
}