diff options
author | mjacob <mjacob@cvs.openbsd.org> | 2001-09-05 19:22:40 +0000 |
---|---|---|
committer | mjacob <mjacob@cvs.openbsd.org> | 2001-09-05 19:22:40 +0000 |
commit | fa5bd50f1082d526bed10700b1466f0a4516f8f9 (patch) | |
tree | 1b784bd36b9f998b6338bca30bebdf89077cdb45 /sys | |
parent | 480d1706d59e52bc1732a36d9e707e5f78efc705 (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.c | 5 |
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 |