diff options
author | piso <piso@FreeBSD.org> | 2007-02-23 12:19:07 +0000 |
---|---|---|
committer | piso <piso@FreeBSD.org> | 2007-02-23 12:19:07 +0000 |
commit | 6a2ffa86e5b748ba71e36d37462a936eb9101be7 (patch) | |
tree | 10833d4edb6c0d0a5efcf7762d842a4c378404b0 /sys/dev/msk/if_msk.c | |
parent | 7b48c9d78377cdb9fc6e8bcc5406e28819aef6e3 (diff) | |
download | FreeBSD-src-6a2ffa86e5b748ba71e36d37462a936eb9101be7.zip FreeBSD-src-6a2ffa86e5b748ba71e36d37462a936eb9101be7.tar.gz |
o break newbus api: add a new argument of type driver_filter_t to
bus_setup_intr()
o add an int return code to all fast handlers
o retire INTR_FAST/IH_FAST
For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current
Reviewed by: many
Approved by: re@
Diffstat (limited to 'sys/dev/msk/if_msk.c')
-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 d6b10bff..d93a69f 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 |