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