diff options
Diffstat (limited to 'sys/dev/ic/hme.c')
-rw-r--r-- | sys/dev/ic/hme.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/dev/ic/hme.c b/sys/dev/ic/hme.c index 5bea4e1002e..d4bd60608b3 100644 --- a/sys/dev/ic/hme.c +++ b/sys/dev/ic/hme.c @@ -1,4 +1,4 @@ -/* $OpenBSD: hme.c,v 1.61 2009/10/15 17:54:54 deraadt Exp $ */ +/* $OpenBSD: hme.c,v 1.62 2011/07/05 05:25:09 bluhm Exp $ */ /* $NetBSD: hme.c,v 1.21 2001/07/07 15:59:37 thorpej Exp $ */ /*- @@ -362,6 +362,13 @@ hme_tick(arg) bus_space_write_4(t, mac, HME_MACI_EXCNT, 0); bus_space_write_4(t, mac, HME_MACI_LTCNT, 0); + /* + * If buffer allocation fails, the receive ring may become + * empty. There is no receive interrupt to recover from that. + */ + if (sc->sc_rx_cnt == 0) + hme_fill_rx_ring(sc); + mii_tick(&sc->sc_mii); splx(s); |