summaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2009-08-11 10:48:40 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2009-08-11 10:48:40 +0000
commit7035c50aa03b0b748dccbbc784660fe81251bcb1 (patch)
tree8864ca55097a5e627019a514fdbc7422e9f9975f /sys/kern
parent505f886839138aff8c1318c4bc79555e168349fc (diff)
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
Diffstat (limited to 'sys/kern')
-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);
}