summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcanacar <canacar@openbsd.org>2004-08-22 18:16:20 +0000
committercanacar <canacar@openbsd.org>2004-08-22 18:16:20 +0000
commit39c6821c3169cd4f3183d83f13ccdf0254c4fdeb (patch)
treeee4e4c1771bdab21b688dbf0fa4ca850d3d02dbc
parenttweaks to sync w/ trek usd; (diff)
downloadwireguard-openbsd-39c6821c3169cd4f3183d83f13ccdf0254c4fdeb.tar.xz
wireguard-openbsd-39c6821c3169cd4f3183d83f13ccdf0254c4fdeb.zip
Do check for STATS_OFLOW in interrupt handler. The overflow interrupt is
already disabled and the status update function fails to clear the overflow, causing high interrupt load. Reported and tested by Arvid Grøtting. ok deraadt@
-rw-r--r--sys/dev/pci/if_ste.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/sys/dev/pci/if_ste.c b/sys/dev/pci/if_ste.c
index af7e714fe22..7362180a54b 100644
--- a/sys/dev/pci/if_ste.c
+++ b/sys/dev/pci/if_ste.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ste.c,v 1.23 2004/08/09 16:33:55 canacar Exp $ */
+/* $OpenBSD: if_ste.c,v 1.24 2004/08/22 18:16:20 canacar Exp $ */
/*
* Copyright (c) 1997, 1998, 1999
* Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved.
@@ -586,15 +586,9 @@ int ste_intr(xsc)
if (status & STE_ISR_TX_DONE)
ste_txeoc(sc);
- if (status & STE_ISR_STATS_OFLOW) {
- timeout_del(&sc->sc_stats_tmo);
- ste_stats_update(sc);
- }
-
if (status & STE_ISR_LINKEVENT)
mii_pollstat(&sc->sc_mii);
-
if (status & STE_ISR_HOSTERR) {
ste_reset(sc);
ste_init(sc);