diff options
author | piso <piso@FreeBSD.org> | 2007-02-27 15:31:11 +0000 |
---|---|---|
committer | piso <piso@FreeBSD.org> | 2007-02-27 15:31:11 +0000 |
commit | 44fdc89cd9410e4366f22e761c5bde53d15623fa (patch) | |
tree | 8eb18b5f6617df038e35300dc670bb8a9f653393 | |
parent | 833c0dc8bdbc56a6e5c3e1f713dbba4a82e86240 (diff) | |
download | FreeBSD-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.h | 2 | ||||
-rw-r--r-- | sys/dev/zs/zs.c | 7 |
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 |