From 29f07789b1fc26f60bc1c931437f78725f1bc994 Mon Sep 17 00:00:00 2001 From: sam Date: Fri, 14 Nov 2003 19:00:32 +0000 Subject: Drop the driver lock around calls to if_input to avoid a LOR when the packets are immediately returned for sending (e.g. when bridging or packet forwarding). There are more efficient ways to do this but for now use the least intrusive approach. Reviewed by: imp, rwatson --- sys/pci/if_sis.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'sys/pci/if_sis.c') diff --git a/sys/pci/if_sis.c b/sys/pci/if_sis.c index fec9a41..bd3a265 100644 --- a/sys/pci/if_sis.c +++ b/sys/pci/if_sis.c @@ -1594,6 +1594,8 @@ sis_rxeof(sc) int i, total_len = 0; u_int32_t rxstat; + SIS_LOCK_ASSERT(sc); + ifp = &sc->arpcom.ac_if; i = sc->sis_cdata.sis_rx_prod; @@ -1661,7 +1663,9 @@ sis_rxeof(sc) ifp->if_ipackets++; m->m_pkthdr.rcvif = ifp; + SIS_UNLOCK(sc); (*ifp->if_input)(ifp, m); + SIS_LOCK(sc); } sc->sis_cdata.sis_rx_prod = i; -- cgit v1.1