diff options
Diffstat (limited to 'sys/dev/sf/if_sf.c')
-rw-r--r-- | sys/dev/sf/if_sf.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/sf/if_sf.c b/sys/dev/sf/if_sf.c index e1def22..254277a 100644 --- a/sys/dev/sf/if_sf.c +++ b/sys/dev/sf/if_sf.c @@ -955,6 +955,8 @@ sf_rxeof(sc) u_int32_t rxcons, rxprod; int cmpprodidx, cmpconsidx, bufprodidx; + SF_LOCK_ASSERT(sc); + ifp = &sc->arpcom.ac_if; rxcons = csr_read_4(sc, SF_CQ_CONSIDX); @@ -988,7 +990,9 @@ sf_rxeof(sc) m = m0; ifp->if_ipackets++; + SF_UNLOCK(sc); (*ifp->if_input)(ifp, m); + SF_LOCK(sc); } csr_write_4(sc, SF_CQ_CONSIDX, |