summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authormjacob <mjacob@cvs.openbsd.org>2001-09-05 19:22:40 +0000
committermjacob <mjacob@cvs.openbsd.org>2001-09-05 19:22:40 +0000
commitfa5bd50f1082d526bed10700b1466f0a4516f8f9 (patch)
tree1b784bd36b9f998b6338bca30bebdf89077cdb45 /sys
parent480d1706d59e52bc1732a36d9e707e5f78efc705 (diff)
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.
Diffstat (limited to 'sys')
-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