diff options
author | Jason Wright <jason@cvs.openbsd.org> | 2001-05-10 00:44:34 +0000 |
---|---|---|
committer | Jason Wright <jason@cvs.openbsd.org> | 2001-05-10 00:44:34 +0000 |
commit | 874e7adaeec0155f00b7518442df3f1565895831 (patch) | |
tree | 486b33c8df14ba9460ce23cf6ffd987a03798153 | |
parent | b31a7bf9dcdd978cc90c7ca12008414196f99339 (diff) |
in txp_intr() only refill the rx buffer ring if it is empty; based on
suggestion from Pankaj Chhabra.
-rw-r--r-- | sys/dev/pci/if_txp.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/pci/if_txp.c b/sys/dev/pci/if_txp.c index 82ba5503897..3a49c01d28c 100644 --- a/sys/dev/pci/if_txp.c +++ b/sys/dev/pci/if_txp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_txp.c,v 1.26 2001/05/09 02:25:08 jason Exp $ */ +/* $OpenBSD: if_txp.c,v 1.27 2001/05/10 00:44:33 jason Exp $ */ /* * Copyright (c) 2001 @@ -536,6 +536,7 @@ txp_intr(vsc) void *vsc; { struct txp_softc *sc = vsc; + struct txp_hostvar *hv = sc->sc_hostvar; u_int32_t isr; int claimed = 0; @@ -556,7 +557,8 @@ txp_intr(vsc) if ((*sc->sc_rxlor.r_roff) != (*sc->sc_rxlor.r_woff)) txp_rx_reclaim(sc, &sc->sc_rxlor); - txp_rxbuf_reclaim(sc); + if (hv->hv_rx_buf_write_idx == hv->hv_rx_buf_read_idx) + txp_rxbuf_reclaim(sc); if (sc->sc_txhir.r_cnt && (sc->sc_txhir.r_cons != TXP_OFFSET2IDX(*(sc->sc_txhir.r_off)))) |