diff options
author | 2006-12-03 16:23:41 +0000 | |
---|---|---|
committer | 2006-12-03 16:23:41 +0000 | |
commit | 4b7dbe62b0a24816e91330b5ba05087625a5e992 (patch) | |
tree | 44b813d7de161da5b36e9e845b8890f14166c511 /sys/dev | |
parent | don't schedule a USB task in {ural,rum}_newstate() if we're called from (diff) | |
download | wireguard-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/dev')
-rw-r--r-- | sys/dev/pci/if_sis.c | 10 |
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); |