diff options
author | 2001-09-05 19:22:39 +0000 | |
---|---|---|
committer | 2001-09-05 19:22:39 +0000 | |
commit | 44df5b710e0b64dcc8f57eeec2f8b3b4fb7b88fe (patch) | |
tree | 9192597749ab5950b6598a1aa34bc743074254de | |
parent | use %ll instead of %q (diff) | |
download | wireguard-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.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 |