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.
This commit is contained in:
Scott Long 2005-03-02 15:56:42 +00:00
parent bf7c33df9c
commit a6b86949fc
2 changed files with 1 additions and 3 deletions

View File

@ -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;
}

View File

@ -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