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