summaryrefslogtreecommitdiff
path: root/sys/dev/ic/re.c
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2010-02-17 22:16:35 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2010-02-17 22:16:35 +0000
commit9e750496c5e5750067b5c6d5ae0f93932882c048 (patch)
treea3b1e527d3ec8d8e62ee58bceb5268e70e03aab3 /sys/dev/ic/re.c
parent570f63006f94faadcea5967d4cfefa407b834a5f (diff)
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@
Diffstat (limited to 'sys/dev/ic/re.c')
-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;