diff options
| author | Paolo Pisati <piso@FreeBSD.org> | 2007-02-23 12:19:07 +0000 |
|---|---|---|
| committer | Paolo Pisati <piso@FreeBSD.org> | 2007-02-23 12:19:07 +0000 |
| commit | ef544f631226436ef590825881e7a28369df82f6 (patch) | |
| tree | 10833d4edb6c0d0a5efcf7762d842a4c378404b0 /sys/dev/msk | |
| parent | 68cb8659050380e1245328796e2783f030c94974 (diff) | |
Notes
Diffstat (limited to 'sys/dev/msk')
| -rw-r--r-- | sys/dev/msk/if_msk.c | 9 |
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 |
