summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2010-02-17 22:16:34 +0000
committerkettenis <kettenis@openbsd.org>2010-02-17 22:16:34 +0000
commitdb5642324aa3842183ed750f32a40b23550c517a (patch)
tree108e8d54c8158fa7bdd39a9c6d79cb8139a0629c
parentForgot to bump version number in comments; from Seth Wright via jmc@, thanks. (diff)
downloadwireguard-openbsd-db5642324aa3842183ed750f32a40b23550c517a.tar.xz
wireguard-openbsd-db5642324aa3842183ed750f32a40b23550c517a.zip
Make sure we claim the interrupt as ours if the time out bit is set in the
interrupt status register. Fixes a problem with spurious interrupts on the fuloong. ok miod@
-rw-r--r--sys/dev/ic/re.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/ic/re.c b/sys/dev/ic/re.c
index 29069056e6f..64b152af1eb 100644
--- a/sys/dev/ic/re.c
+++ b/sys/dev/ic/re.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: re.c,v 1.116 2009/11/24 17:40:43 kettenis Exp $ */
+/* $OpenBSD: re.c,v 1.117 2010/02/17 22:16:34 kettenis Exp $ */
/* $FreeBSD: if_re.c,v 1.31 2004/09/04 07:54:05 ru Exp $ */
/*
* Copyright (c) 1997, 1998-2003
@@ -1602,6 +1602,9 @@ re_intr(void *arg)
if (status)
CSR_WRITE_2(sc, RL_ISR, status);
+ if (status & RL_ISR_TIMEOUT_EXPIRED)
+ claimed = 1;
+
if ((status & RL_INTRS_CPLUS) == 0)
break;