Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/bge/if_bge.c
Show First 20 Lines • Show All 4,644 Lines • ▼ Show 20 Lines | if ((status & BGE_STATFLAG_LINKSTATE_CHANGED) != 0) | ||||
bge_link_upd(sc); | bge_link_upd(sc); | ||||
/* Let controller work. */ | /* Let controller work. */ | ||||
bge_writembx(sc, BGE_MBX_IRQ0_LO, status_tag); | bge_writembx(sc, BGE_MBX_IRQ0_LO, status_tag); | ||||
if (if_getdrvflags(ifp) & IFF_DRV_RUNNING && | if (if_getdrvflags(ifp) & IFF_DRV_RUNNING && | ||||
sc->bge_rx_saved_considx != rx_prod) { | sc->bge_rx_saved_considx != rx_prod) { | ||||
/* Check RX return ring producer/consumer. */ | /* Check RX return ring producer/consumer. */ | ||||
BGE_UNLOCK(sc); | bge_rxeof(sc, rx_prod, 1); | ||||
bge_rxeof(sc, rx_prod, 0); | |||||
BGE_LOCK(sc); | |||||
} | } | ||||
if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { | if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { | ||||
/* Check TX ring producer/consumer. */ | /* Check TX ring producer/consumer. */ | ||||
bge_txeof(sc, tx_cons); | bge_txeof(sc, tx_cons); | ||||
if (!if_sendq_empty(ifp)) | if (!if_sendq_empty(ifp)) | ||||
bge_start_locked(ifp); | bge_start_locked(ifp); | ||||
} | } | ||||
BGE_UNLOCK(sc); | BGE_UNLOCK(sc); | ||||
▲ Show 20 Lines • Show All 2,133 Lines • Show Last 20 Lines |