summaryrefslogtreecommitdiff
path: root/sys/dev/ic
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2007-11-23 18:26:04 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2007-11-23 18:26:04 +0000
commit5cd805ff3b1d0280f963cb1e1a1a0436bc3c05f5 (patch)
tree12f73c3f9aedc69d978153a66e05b65812c37853 /sys/dev/ic
parent11193c8305abc0f04801b9de03641d1d631fce7a (diff)
If the card has gone away, return imediately from the interrupt handler.
ok dlg@
Diffstat (limited to 'sys/dev/ic')
-rw-r--r--sys/dev/ic/sili.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/ic/sili.c b/sys/dev/ic/sili.c
index 99fb1166119..0d309d1239b 100644
--- a/sys/dev/ic/sili.c
+++ b/sys/dev/ic/sili.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sili.c,v 1.36 2007/11/23 18:21:55 dlg Exp $ */
+/* $OpenBSD: sili.c,v 1.37 2007/11/23 18:26:03 kettenis Exp $ */
/*
* Copyright (c) 2007 David Gwynne <dlg@openbsd.org>
@@ -391,8 +391,9 @@ sili_intr(void *arg)
u_int32_t is;
int port;
+ /* If the card has gone away, this will return 0xffffffff. */
is = sili_read(sc, SILI_REG_GIS);
- if (is == 0)
+ if (is == 0 || is == 0xffffffff)
return (0);
sili_write(sc, SILI_REG_GIS, is);
DPRINTF(SILI_D_INTR, "sili_intr, GIS: %08x\n", is);