summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormjacob <mjacob@openbsd.org>2001-09-05 19:22:39 +0000
committermjacob <mjacob@openbsd.org>2001-09-05 19:22:39 +0000
commit44df5b710e0b64dcc8f57eeec2f8b3b4fb7b88fe (patch)
tree9192597749ab5950b6598a1aa34bc743074254de
parentuse %ll instead of %q (diff)
downloadwireguard-openbsd-44df5b710e0b64dcc8f57eeec2f8b3b4fb7b88fe.tar.xz
wireguard-openbsd-44df5b710e0b64dcc8f57eeec2f8b3b4fb7b88fe.zip
Pick up a bugfix from FreeBSD: In wx_hw_stop, a bogus additional write
to WXREG_IMASK enabled *all* interrupt causes while we were trying to *disable* them all. Oops.
-rw-r--r--sys/dev/pci/if_wx.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/dev/pci/if_wx.c b/sys/dev/pci/if_wx.c
index 46c762fc025..4ea427eced6 100644
--- a/sys/dev/pci/if_wx.c
+++ b/sys/dev/pci/if_wx.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_wx.c,v 1.15 2001/08/25 10:13:29 art Exp $ */
+/* $OpenBSD: if_wx.c,v 1.16 2001/09/05 19:22:39 mjacob Exp $ */
/*
* Principal Author: Matthew Jacob
* Copyright (c) 1999, 2001 by Traakan Software
@@ -1761,17 +1761,16 @@ wx_hw_stop(wx_softc_t *sc)
{
u_int32_t icr;
DPRINTF(sc, ("%s: wx_hw_stop\n", sc->wx_name));
+ WX_DISABLE_INT(sc);
if (sc->wx_idnrev < WX_WISEMAN_2_1) {
wx_mwi_whackon(sc);
}
WRITE_CSR(sc, WXREG_DCR, WXDCR_RST);
DELAY(20 * 1000);
- WRITE_CSR(sc, WXREG_IMASK, ~0);
icr = READ_CSR(sc, WXREG_ICR);
if (sc->wx_idnrev < WX_WISEMAN_2_1) {
wx_mwi_unwhack(sc);
}
- WX_DISABLE_INT(sc);
}
static void