diff options
Diffstat (limited to 'sys/dev/if_ndis/if_ndis.c')
-rw-r--r-- | sys/dev/if_ndis/if_ndis.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/dev/if_ndis/if_ndis.c b/sys/dev/if_ndis/if_ndis.c index 6b5b78f..0d1a168 100644 --- a/sys/dev/if_ndis/if_ndis.c +++ b/sys/dev/if_ndis/if_ndis.c @@ -757,8 +757,6 @@ ndis_txeof(adapter, packet, status) sc = (struct ndis_softc *)block->nmb_ifp; ifp = block->nmb_ifp; - NDIS_LOCK(sc); - m = packet->np_m0; idx = packet->np_txidx; ifp->if_opackets++; @@ -772,8 +770,6 @@ ndis_txeof(adapter, packet, status) ifp->if_timer = 0; ifp->if_flags &= ~IFF_OACTIVE; - NDIS_UNLOCK(sc); - m_freem(m); taskqueue_enqueue(taskqueue_swi, &sc->ndis_starttask); @@ -843,7 +839,9 @@ ndis_intrtask(arg, pending) sc = arg; ifp = &sc->arpcom.ac_if; + NDIS_LOCK(sc); ndis_intrhand(sc); + NDIS_UNLOCK(sc); mtx_lock(&sc->ndis_intrmtx); ndis_enable_intr(sc); mtx_unlock(&sc->ndis_intrmtx); |