aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Pisati <piso@FreeBSD.org>2007-02-27 15:31:11 +0000
committerPaolo Pisati <piso@FreeBSD.org>2007-02-27 15:31:11 +0000
commitfe59e41138a0bf10b2360bba6e64dfaf37e29507 (patch)
tree8eb18b5f6617df038e35300dc670bb8a9f653393
parentad3b9f70edfee478f6d49a3da81e1f62b0a4526c (diff)
downloadsrc-fe59e41138a0bf10b2360bba6e64dfaf37e29507.tar.gz
src-fe59e41138a0bf10b2360bba6e64dfaf37e29507.zip
Add proper return codes to zs_intr() filter, and fix accordinlgly zs_intr()
prototype.
Notes
Notes: svn path=/head/; revision=167073
-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 1e5fef7d3282..ecab65aa60fb 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 21195a233b4a..f6795af9a871 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