aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/msk
diff options
context:
space:
mode:
authorPaolo Pisati <piso@FreeBSD.org>2007-02-23 12:19:07 +0000
committerPaolo Pisati <piso@FreeBSD.org>2007-02-23 12:19:07 +0000
commitef544f631226436ef590825881e7a28369df82f6 (patch)
tree10833d4edb6c0d0a5efcf7762d842a4c378404b0 /sys/dev/msk
parent68cb8659050380e1245328796e2783f030c94974 (diff)
Notes
Diffstat (limited to 'sys/dev/msk')
-rw-r--r--sys/dev/msk/if_msk.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/dev/msk/if_msk.c b/sys/dev/msk/if_msk.c
index d6b10bff07a14..d93a69f5ee345 100644
--- a/sys/dev/msk/if_msk.c
+++ b/sys/dev/msk/if_msk.c
@@ -228,7 +228,7 @@ static int msk_attach(device_t);
static int msk_detach(device_t);
static void msk_tick(void *);
-static void msk_intr(void *);
+static int msk_intr(void *);
static void msk_int_task(void *, int);
static void msk_intr_phy(struct msk_if_softc *);
static void msk_intr_gmac(struct msk_if_softc *);
@@ -1784,7 +1784,7 @@ mskc_attach(device_t dev)
device_get_nameunit(sc->msk_dev));
/* Hook interrupt last to avoid having to lock softc. */
error = bus_setup_intr(dev, sc->msk_irq[0], INTR_TYPE_NET |
- INTR_MPSAFE | INTR_FAST, msk_intr, sc, &sc->msk_intrhand[0]);
+ INTR_MPSAFE, msk_intr, NULL, sc, &sc->msk_intrhand[0]);
if (error != 0) {
device_printf(dev, "couldn't set up interrupt handler\n");
@@ -3483,7 +3483,7 @@ msk_handle_events(struct msk_softc *sc)
return (sc->msk_stat_cons != CSR_READ_2(sc, STAT_PUT_IDX));
}
-static void
+static int
msk_intr(void *xsc)
{
struct msk_softc *sc;
@@ -3494,10 +3494,11 @@ msk_intr(void *xsc)
/* Reading B0_Y2_SP_ISRC2 masks further interrupts. */
if (status == 0 || status == 0xffffffff) {
CSR_WRITE_4(sc, B0_Y2_SP_ICR, 2);
- return;
+ return (FILTER_STRAY);
}
taskqueue_enqueue(sc->msk_tq, &sc->msk_int_task);
+ return (FILTER_HANDLED);
}
static void