diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2007-11-23 18:26:04 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2007-11-23 18:26:04 +0000 |
commit | 5cd805ff3b1d0280f963cb1e1a1a0436bc3c05f5 (patch) | |
tree | 12f73c3f9aedc69d978153a66e05b65812c37853 /sys/dev/ic | |
parent | 11193c8305abc0f04801b9de03641d1d631fce7a (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.c | 5 |
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); |