diff -ur sys/dev/em/if_em.c /usr/src/sys/dev/em/if_em.c --- sys/dev/em/if_em.c Sat Apr 8 12:21:31 2006 +++ /usr/src/sys/dev/em/if_em.c Mon Apr 10 14:58:54 2006 @@ -3083,7 +3083,9 @@ i = 0; if (m != NULL) { sc->next_rx_desc_to_check = i; + EM_UNLOCK(sc); (*ifp->if_input)(ifp, m); + EM_LOCK(sc); i = sc->next_rx_desc_to_check; } current_desc = &sc->rx_desc_base[i];