diff options
author | scottl <scottl@FreeBSD.org> | 2005-03-02 15:56:42 +0000 |
---|---|---|
committer | scottl <scottl@FreeBSD.org> | 2005-03-02 15:56:42 +0000 |
commit | cee9e98f0ee1c954b22e9d755db15444797bf2ee (patch) | |
tree | c48910c2d463cee7ac6f508575d350d63e417ac7 | |
parent | 0724297b39f19c3ae6a3f32a46052298f4fff0a8 (diff) | |
download | FreeBSD-src-cee9e98f0ee1c954b22e9d755db15444797bf2ee.zip FreeBSD-src-cee9e98f0ee1c954b22e9d755db15444797bf2ee.tar.gz |
The existing locking in the esp driver appears to be fairly adequate, so
set the interrupt handler to be INTR_MPSAFE now that xpt_done() can be
called without Giant. Giant is still on the top half of the driver and
the timeout handlers.
-rw-r--r-- | sys/dev/esp/esp_sbus.c | 2 | ||||
-rw-r--r-- | sys/dev/esp/ncr53c9x.c | 2 |
2 files changed, 1 insertions, 3 deletions
diff --git a/sys/dev/esp/esp_sbus.c b/sys/dev/esp/esp_sbus.c index 95b2ceb..0567938 100644 --- a/sys/dev/esp/esp_sbus.c +++ b/sys/dev/esp/esp_sbus.c @@ -434,7 +434,7 @@ espattach(struct esp_softc *esc, struct ncr53c9x_glue *gluep) return; } if (bus_setup_intr(esc->sc_dev, esc->sc_irqres, - INTR_TYPE_BIO|INTR_ENTROPY, ncr53c9x_intr, sc, &esc->sc_irq)) { + INTR_TYPE_BIO|INTR_MPSAFE, ncr53c9x_intr, sc, &esc->sc_irq)) { device_printf(esc->sc_dev, "Cannot set up interrupt\n"); return; } diff --git a/sys/dev/esp/ncr53c9x.c b/sys/dev/esp/ncr53c9x.c index a222f3e..cecd1b4 100644 --- a/sys/dev/esp/ncr53c9x.c +++ b/sys/dev/esp/ncr53c9x.c @@ -1289,9 +1289,7 @@ ncr53c9x_done(struct ncr53c9x_softc *sc, struct ncr53c9x_ecb *ecb) ncr53c9x_free_ecb(sc, ecb); ti->cmds++; - mtx_unlock(&sc->sc_lock); xpt_done(ccb); - mtx_lock(&sc->sc_lock); } static void |