summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiso <piso@FreeBSD.org>2007-02-27 15:31:11 +0000
committerpiso <piso@FreeBSD.org>2007-02-27 15:31:11 +0000
commit44fdc89cd9410e4366f22e761c5bde53d15623fa (patch)
tree8eb18b5f6617df038e35300dc670bb8a9f653393
parent833c0dc8bdbc56a6e5c3e1f713dbba4a82e86240 (diff)
downloadFreeBSD-src-44fdc89cd9410e4366f22e761c5bde53d15623fa.zip
FreeBSD-src-44fdc89cd9410e4366f22e761c5bde53d15623fa.tar.gz
Add proper return codes to zs_intr() filter, and fix accordinlgly zs_intr()
prototype.
-rw-r--r--sys/dev/zs/z8530var.h2
-rw-r--r--sys/dev/zs/zs.c7
2 files changed, 6 insertions, 3 deletions
diff --git a/sys/dev/zs/z8530var.h b/sys/dev/zs/z8530var.h
index 1e5fef7..ecab65a 100644
--- a/sys/dev/zs/z8530var.h
+++ b/sys/dev/zs/z8530var.h
@@ -65,7 +65,7 @@ struct zstty_softc {
int zs_attach(device_t dev);
int zs_probe(device_t dev);
-void zs_intr(void *v);
+int zs_intr(void *v);
int zstty_attach(device_t dev);
int zstty_probe(device_t dev);
diff --git a/sys/dev/zs/zs.c b/sys/dev/zs/zs.c
index 21195a2..f6795af 100644
--- a/sys/dev/zs/zs.c
+++ b/sys/dev/zs/zs.c
@@ -197,7 +197,7 @@ zs_attach(device_t dev)
return (0);
}
-void
+int
zs_intr(void *v)
{
struct zs_softc *sc = v;
@@ -216,8 +216,11 @@ zs_intr(void *v)
needsoft |= zstty_intr(sc->sc_child[0], rr3 >> 3);
if ((rr3 & (ZSRR3_IP_B_RX | ZSRR3_IP_B_TX | ZSRR3_IP_B_STAT)) != 0)
needsoft |= zstty_intr(sc->sc_child[1], rr3);
- if (needsoft)
+ if (needsoft) {
swi_sched(sc->sc_softih, 0);
+ return (FILTER_HANDLED);
+ }
+ return (FILTER_STRAY);
}
static void
OpenPOWER on IntegriCloud