From a6b86949fc76b7c8e1979818e74ff2b153e90bab Mon Sep 17 00:00:00 2001 From: Scott Long Date: Wed, 2 Mar 2005 15:56:42 +0000 Subject: [PATCH] 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. --- sys/dev/esp/esp_sbus.c | 2 +- sys/dev/esp/ncr53c9x.c | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/sys/dev/esp/esp_sbus.c b/sys/dev/esp/esp_sbus.c index 95b2cebf3bc..05679384167 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 a222f3e366a..cecd1b49a47 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