summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorgrange <grange@openbsd.org>2006-12-03 16:23:41 +0000
committergrange <grange@openbsd.org>2006-12-03 16:23:41 +0000
commit4b7dbe62b0a24816e91330b5ba05087625a5e992 (patch)
tree44b813d7de161da5b36e9e845b8890f14166c511 /sys
parentdon't schedule a USB task in {ural,rum}_newstate() if we're called from (diff)
downloadwireguard-openbsd-4b7dbe62b0a24816e91330b5ba05087625a5e992.tar.xz
wireguard-openbsd-4b7dbe62b0a24816e91330b5ba05087625a5e992.zip
Re-enable RX engine every time otherwise it occasionally
stops under unknown circumstances. Tested by many people, ok brad a long time ago.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/pci/if_sis.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/dev/pci/if_sis.c b/sys/dev/pci/if_sis.c
index 66072776164..5d88b3bf566 100644
--- a/sys/dev/pci/if_sis.c
+++ b/sys/dev/pci/if_sis.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_sis.c,v 1.75 2006/12/03 16:12:22 grange Exp $ */
+/* $OpenBSD: if_sis.c,v 1.76 2006/12/03 16:23:41 grange Exp $ */
/*
* Copyright (c) 1997, 1998, 1999
* Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved.
@@ -1507,8 +1507,10 @@ sis_intr(void *arg)
if (status & (SIS_ISR_RX_ERR | SIS_ISR_RX_OFLOW))
sis_rxeoc(sc);
+#if 0
if (status & (SIS_ISR_RX_IDLE))
SIS_SETBIT(sc, SIS_CSR, SIS_CSR_RX_ENABLE);
+#endif
if (status & SIS_ISR_SYSERR) {
sis_reset(sc);
@@ -1519,6 +1521,12 @@ sis_intr(void *arg)
/* Re-enable interrupts. */
CSR_WRITE_4(sc, SIS_IER, 1);
+ /*
+ * XXX: Re-enable RX engine every time otherwise it occasionally
+ * stops under unknown circumstances.
+ */
+ SIS_SETBIT(sc, SIS_CSR, SIS_CSR_RX_ENABLE);
+
if (!IFQ_IS_EMPTY(&ifp->if_snd))
sis_start(ifp);