Apply by doing: cd /usr/src patch -p0 < 012_trunklacp.patch Then build and install a new kernel. Index: sys/net/trunklacp.c =================================================================== RCS file: /cvs/src/sys/net/trunklacp.c,v retrieving revision 1.9 retrieving revision 1.9.6.1 diff -u -r1.9 -r1.9.6.1 --- sys/net/trunklacp.c 1 Dec 2008 10:40:57 -0000 1.9 +++ sys/net/trunklacp.c 14 May 2010 11:54:14 -0000 1.9.6.1 @@ -1,4 +1,4 @@ -/* $OpenBSD: trunklacp.c,v 1.9 2008/12/01 10:40:57 brad Exp $ */ +/* $OpenBSD: trunklacp.c,v 1.9.6.1 2010/05/14 11:54:14 stephan Exp $ */ /* $NetBSD: ieee8023ad_lacp.c,v 1.3 2005/12/11 12:24:54 christos Exp $ */ /* $FreeBSD:ieee8023ad_lacp.c,v 1.15 2008/03/16 19:25:30 thompsa Exp $ */ @@ -365,7 +365,7 @@ struct mbuf *m; struct ether_header *eh; struct lacpdu *du; - int error; + int error, s; m = m_gethdr(M_DONTWAIT, MT_DATA); if (m == NULL) @@ -409,7 +409,9 @@ * XXX should use higher priority queue. * otherwise network congestion can break aggregation. */ + s = splnet(); error = trunk_enqueue(lp->lp_ifp, m); + splx(s); return (error); } @@ -420,7 +422,7 @@ struct mbuf *m; struct ether_header *eh; struct markerdu *mdu; - int error; + int error, s; m = m_gethdr(M_DONTWAIT, MT_DATA); if (m == NULL) @@ -452,7 +454,9 @@ ntohl(mdu->mdu_info.mi_rq_xid))); m->m_flags |= M_MCAST; + s = splnet(); error = trunk_enqueue(lp->lp_ifp, m); + splx(s); return (error); }