diff options
Diffstat (limited to 'sys/dev')
31 files changed, 62 insertions, 37 deletions
diff --git a/sys/dev/aac/aac_cam.c b/sys/dev/aac/aac_cam.c index 1b5690a..88112b5 100644 --- a/sys/dev/aac/aac_cam.c +++ b/sys/dev/aac/aac_cam.c @@ -171,7 +171,7 @@ aac_cam_attach(device_t dev) return (EIO); sim = cam_sim_alloc(aac_cam_action, aac_cam_poll, "aacp", camsc, - device_get_unit(dev), 1, 1, devq); + device_get_unit(dev), &Giant, 1, 1, devq); if (sim == NULL) { cam_simq_free(devq); return (EIO); diff --git a/sys/dev/advansys/advansys.c b/sys/dev/advansys/advansys.c index 5a37af7..79c1f06 100644 --- a/sys/dev/advansys/advansys.c +++ b/sys/dev/advansys/advansys.c @@ -1414,7 +1414,7 @@ adv_attach(adv) * Construct our SIM entry. */ adv->sim = cam_sim_alloc(adv_action, adv_poll, "adv", adv, adv->unit, - 1, adv->max_openings, devq); + &Giant, 1, adv->max_openings, devq); if (adv->sim == NULL) return (ENOMEM); diff --git a/sys/dev/advansys/adwcam.c b/sys/dev/advansys/adwcam.c index 78b8fdd..2ba42da 100644 --- a/sys/dev/advansys/adwcam.c +++ b/sys/dev/advansys/adwcam.c @@ -1234,7 +1234,7 @@ adw_attach(struct adw_softc *adw) * Construct our SIM entry. */ adw->sim = cam_sim_alloc(adw_action, adw_poll, "adw", adw, adw->unit, - 1, adw->max_acbs, devq); + &Giant, 1, adw->max_acbs, devq); if (adw->sim == NULL) { error = ENOMEM; goto fail; diff --git a/sys/dev/aha/aha.c b/sys/dev/aha/aha.c index 714c1bb..b52b201 100644 --- a/sys/dev/aha/aha.c +++ b/sys/dev/aha/aha.c @@ -605,8 +605,8 @@ aha_attach(struct aha_softc *aha) /* * Construct our SIM entry */ - aha->sim = cam_sim_alloc(ahaaction, ahapoll, "aha", aha, aha->unit, 2, - tagged_dev_openings, devq); + aha->sim = cam_sim_alloc(ahaaction, ahapoll, "aha", aha, aha->unit, + &Giant, 2, tagged_dev_openings, devq); if (aha->sim == NULL) { cam_simq_free(devq); return (ENOMEM); diff --git a/sys/dev/ahb/ahb.c b/sys/dev/ahb/ahb.c index 8887c80..3f4a588 100644 --- a/sys/dev/ahb/ahb.c +++ b/sys/dev/ahb/ahb.c @@ -553,7 +553,7 @@ ahbxptattach(struct ahb_softc *ahb) * Construct our SIM entry */ ahb->sim = cam_sim_alloc(ahbaction, ahbpoll, "ahb", ahb, ahb->unit, - 2, ahb->num_ecbs, devq); + &Giant, 2, ahb->num_ecbs, devq); if (ahb->sim == NULL) { cam_simq_free(devq); return (ENOMEM); diff --git a/sys/dev/aic/aic.c b/sys/dev/aic/aic.c index cd9fabc..b647cd4 100644 --- a/sys/dev/aic/aic.c +++ b/sys/dev/aic/aic.c @@ -30,6 +30,9 @@ __FBSDID("$FreeBSD$"); #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> +#include <sys/lock.h> +#include <sys/mutex.h> +#include <sys/malloc.h> #include <sys/bus.h> #include <machine/bus.h> @@ -1540,7 +1543,7 @@ aic_attach(struct aic_softc *aic) * Construct our SIM entry */ aic->sim = cam_sim_alloc(aic_action, aic_poll, "aic", aic, - aic->unit, 2, 256, devq); + aic->unit, &Giant, 2, 256, devq); if (aic->sim == NULL) { cam_simq_free(devq); return (ENOMEM); diff --git a/sys/dev/aic7xxx/aic79xx_osm.c b/sys/dev/aic7xxx/aic79xx_osm.c index e16b421..aef520d 100644 --- a/sys/dev/aic7xxx/aic79xx_osm.c +++ b/sys/dev/aic7xxx/aic79xx_osm.c @@ -143,7 +143,7 @@ ahd_attach(struct ahd_softc *ahd) */ sim = cam_sim_alloc(ahd_action, ahd_poll, "ahd", ahd, device_get_unit(ahd->dev_softc), - 1, /*XXX*/256, devq); + &Giant, 1, /*XXX*/256, devq); if (sim == NULL) { cam_simq_free(devq); goto fail; diff --git a/sys/dev/aic7xxx/aic7xxx_osm.c b/sys/dev/aic7xxx/aic7xxx_osm.c index f3b106c..b53f96a 100644 --- a/sys/dev/aic7xxx/aic7xxx_osm.c +++ b/sys/dev/aic7xxx/aic7xxx_osm.c @@ -196,7 +196,7 @@ ahc_attach(struct ahc_softc *ahc) */ sim = cam_sim_alloc(ahc_action, ahc_poll, "ahc", ahc, device_get_unit(ahc->dev_softc), - 1, AHC_MAX_QUEUE, devq); + &Giant, 1, AHC_MAX_QUEUE, devq); if (sim == NULL) { cam_simq_free(devq); goto fail; @@ -227,7 +227,8 @@ ahc_attach(struct ahc_softc *ahc) if (ahc->features & AHC_TWIN) { sim2 = cam_sim_alloc(ahc_action, ahc_poll, "ahc", - ahc, device_get_unit(ahc->dev_softc), 1, + ahc, device_get_unit(ahc->dev_softc), + &Giant, 1, AHC_MAX_QUEUE, devq); if (sim2 == NULL) { diff --git a/sys/dev/amd/amd.c b/sys/dev/amd/amd.c index 4c8ed41..7e5c4df 100644 --- a/sys/dev/amd/amd.c +++ b/sys/dev/amd/amd.c @@ -58,6 +58,7 @@ #include <sys/module.h> #include <sys/lock.h> #include <sys/mutex.h> +#include <sys/malloc.h> #include <vm/vm.h> #include <vm/pmap.h> @@ -2481,8 +2482,8 @@ amd_attach(device_t dev) } amd->psim = cam_sim_alloc(amd_action, amd_poll, "amd", - amd, amd->unit, 1, MAX_TAGS_CMD_QUEUE, - devq); + amd, amd->unit, &Giant, + 1, MAX_TAGS_CMD_QUEUE, devq); if (amd->psim == NULL) { cam_simq_free(devq); if (bootverbose) diff --git a/sys/dev/amr/amr_cam.c b/sys/dev/amr/amr_cam.c index 3553d43..78cd4ec 100644 --- a/sys/dev/amr/amr_cam.c +++ b/sys/dev/amr/amr_cam.c @@ -148,6 +148,7 @@ amr_cam_attach(struct amr_softc *sc) "amr", sc, device_get_unit(sc->amr_dev), + &Giant, 1, AMR_MAX_SCSI_CMDS, devq)) == NULL) { diff --git a/sys/dev/arcmsr/arcmsr.c b/sys/dev/arcmsr/arcmsr.c index e6441b2..f4e79b5 100644 --- a/sys/dev/arcmsr/arcmsr.c +++ b/sys/dev/arcmsr/arcmsr.c @@ -2145,8 +2145,9 @@ static u_int32_t arcmsr_attach(device_t dev) printf("arcmsr%d: cam_simq_alloc failure!\n", unit); return ENXIO; } - acb->psim=cam_sim_alloc(arcmsr_action, arcmsr_poll - , "arcmsr", acb, unit, 1, ARCMSR_MAX_OUTSTANDING_CMD, devq); + acb->psim=cam_sim_alloc(arcmsr_action, arcmsr_poll, + "arcmsr", acb, unit, &Giant, 1, + ARCMSR_MAX_OUTSTANDING_CMD, devq); if(acb->psim == NULL) { arcmsr_free_resource(acb); bus_release_resource(dev, SYS_RES_IRQ, 0, acb->irqres); diff --git a/sys/dev/asr/asr.c b/sys/dev/asr/asr.c index 1de0bfd..260cbbd 100644 --- a/sys/dev/asr/asr.c +++ b/sys/dev/asr/asr.c @@ -2651,7 +2651,8 @@ asr_attach(device_t dev) * Construct our first channel SIM entry */ sc->ha_sim[bus] = cam_sim_alloc(asr_action, asr_poll, "asr", sc, - unit, 1, QueueSize, devq); + unit, &Giant, + 1, QueueSize, devq); if (sc->ha_sim[bus] == NULL) { continue; } diff --git a/sys/dev/ata/atapi-cam.c b/sys/dev/ata/atapi-cam.c index ebabf03..4f2bd34 100644 --- a/sys/dev/ata/atapi-cam.c +++ b/sys/dev/ata/atapi-cam.c @@ -210,7 +210,7 @@ atapi_cam_attach(device_t dev) } if ((sim = cam_sim_alloc(atapi_action, atapi_poll, "ata", - (void *)scp, unit, 1, 1, devq)) == NULL) { + (void *)scp, unit, &Giant, 1, 1, devq)) == NULL) { error = ENOMEM; goto out; } diff --git a/sys/dev/buslogic/bt.c b/sys/dev/buslogic/bt.c index 7eee35b..21579ea 100644 --- a/sys/dev/buslogic/bt.c +++ b/sys/dev/buslogic/bt.c @@ -874,7 +874,7 @@ bt_attach(device_t dev) * Construct our SIM entry */ bt->sim = cam_sim_alloc(btaction, btpoll, "bt", bt, bt->unit, - 2, tagged_dev_openings, devq); + &Giant, 2, tagged_dev_openings, devq); if (bt->sim == NULL) { cam_simq_free(devq); return (ENOMEM); diff --git a/sys/dev/ciss/ciss.c b/sys/dev/ciss/ciss.c index f23017b..6d71334 100644 --- a/sys/dev/ciss/ciss.c +++ b/sys/dev/ciss/ciss.c @@ -2476,8 +2476,8 @@ ciss_cam_init(struct ciss_softc *sc) if ((sc->ciss_cam_sim[i] = cam_sim_alloc(ciss_cam_action, ciss_cam_poll, "ciss", sc, device_get_unit(sc->ciss_dev), + &Giant, 1, sc->ciss_max_requests - 2, - 1, sc->ciss_cam_devq)) == NULL) { ciss_printf(sc, "can't allocate CAM SIM for controller %d\n", i); return(ENOMEM); @@ -2499,8 +2499,8 @@ ciss_cam_init(struct ciss_softc *sc) if ((sc->ciss_cam_sim[i] = cam_sim_alloc(ciss_cam_action, ciss_cam_poll, "ciss", sc, device_get_unit(sc->ciss_dev), + &Giant, 1, sc->ciss_max_requests - 2, - 1, sc->ciss_cam_devq)) == NULL) { ciss_printf(sc, "can't allocate CAM SIM for controller %d\n", i); return (ENOMEM); diff --git a/sys/dev/dpt/dpt_scsi.c b/sys/dev/dpt/dpt_scsi.c index 9238292..276f0c9 100644 --- a/sys/dev/dpt/dpt_scsi.c +++ b/sys/dev/dpt/dpt_scsi.c @@ -1566,7 +1566,8 @@ dpt_attach(dpt_softc_t *dpt) * Construct our SIM entry */ dpt->sims[i] = cam_sim_alloc(dpt_action, dpt_poll, "dpt", - dpt, dpt->unit, /*untagged*/2, + dpt, dpt->unit, &Giant, + /*untagged*/2, /*tagged*/dpt->max_dccbs, devq); if (dpt->sims[i] == NULL) { if (i == 0) diff --git a/sys/dev/esp/ncr53c9x.c b/sys/dev/esp/ncr53c9x.c index 50c6295..cba58d5 100644 --- a/sys/dev/esp/ncr53c9x.c +++ b/sys/dev/esp/ncr53c9x.c @@ -325,7 +325,7 @@ ncr53c9x_attach(struct ncr53c9x_softc *sc) } sim = cam_sim_alloc(ncr53c9x_action, ncr53c9x_poll, "esp", sc, - device_get_unit(sc->sc_dev), 1, + device_get_unit(sc->sc_dev), &Giant, 1, NCR_TAG_DEPTH, devq); if (sim == NULL) { device_printf(sc->sc_dev, "cannot allocate SIM entry\n"); diff --git a/sys/dev/firewire/sbp.c b/sys/dev/firewire/sbp.c index c796d68..fb88553 100644 --- a/sys/dev/firewire/sbp.c +++ b/sys/dev/firewire/sbp.c @@ -1964,6 +1964,7 @@ END_DEBUG sbp->sim = cam_sim_alloc(sbp_action, sbp_poll, "sbp", sbp, device_get_unit(dev), + &Giant, /*untagged*/ 1, /*tagged*/ SBP_QUEUE_LEN - 1, devq); diff --git a/sys/dev/firewire/sbp_targ.c b/sys/dev/firewire/sbp_targ.c index eb23412..f943772 100644 --- a/sys/dev/firewire/sbp_targ.c +++ b/sys/dev/firewire/sbp_targ.c @@ -1626,7 +1626,7 @@ sbp_targ_attach(device_t dev) return (ENXIO); sc->sim = cam_sim_alloc(sbp_targ_action, sbp_targ_poll, - "sbp_targ", sc, device_get_unit(dev), + "sbp_targ", sc, device_get_unit(dev), &Giant, /*untagged*/ 1, /*tagged*/ 1, devq); if (sc->sim == NULL) { cam_simq_free(devq); diff --git a/sys/dev/hptmv/entry.c b/sys/dev/hptmv/entry.c index bab49a8..f58329d 100644 --- a/sys/dev/hptmv/entry.c +++ b/sys/dev/hptmv/entry.c @@ -1960,7 +1960,8 @@ hpt_attach(device_t dev) * Construct our SIM entry */ if ((hpt_vsim = cam_sim_alloc(hpt_action, hpt_poll, __str(PROC_DIR_NAME), - pAdapter, device_get_unit(pAdapter->hpt_dev), /*untagged*/1, /*tagged*/8, devq)) == NULL) { + pAdapter, device_get_unit(pAdapter->hpt_dev), + &Giant, /*untagged*/1, /*tagged*/8, devq)) == NULL) { cam_simq_free(devq); return ENOMEM; } diff --git a/sys/dev/iir/iir.c b/sys/dev/iir/iir.c index 51a636c..b58306b 100644 --- a/sys/dev/iir/iir.c +++ b/sys/dev/iir/iir.c @@ -502,7 +502,8 @@ iir_attach(struct gdt_softc *gdt) * Construct our SIM entry */ gdt->sims[i] = cam_sim_alloc(iir_action, iir_poll, "iir", - gdt, gdt->sc_hanum, /*untagged*/1, + gdt, gdt->sc_hanum, &Giant, + /*untagged*/1, /*tagged*/GDT_MAXCMDS, devq); if (xpt_bus_register(gdt->sims[i], i) != CAM_SUCCESS) { cam_sim_free(gdt->sims[i], /*free_devq*/i == 0); diff --git a/sys/dev/isp/isp_freebsd.c b/sys/dev/isp/isp_freebsd.c index f422659..6c4fd06 100644 --- a/sys/dev/isp/isp_freebsd.c +++ b/sys/dev/isp/isp_freebsd.c @@ -137,7 +137,7 @@ isp_attach(ispsoftc_t *isp) */ ISPLOCK_2_CAMLOCK(isp); sim = cam_sim_alloc(isp_action, isp_poll, "isp", isp, - device_get_unit(isp->isp_dev), 1, isp->isp_maxcmds, devq); + device_get_unit(isp->isp_dev), &Giant, 1, isp->isp_maxcmds, devq); if (sim == NULL) { cam_simq_free(devq); CAMLOCK_2_ISPLOCK(isp); @@ -224,7 +224,8 @@ isp_attach(ispsoftc_t *isp) if (IS_DUALBUS(isp)) { ISPLOCK_2_CAMLOCK(isp); sim = cam_sim_alloc(isp_action, isp_poll, "isp", isp, - device_get_unit(isp->isp_dev), 1, isp->isp_maxcmds, devq); + device_get_unit(isp->isp_dev), &Giant, 1, + isp->isp_maxcmds, devq); if (sim == NULL) { xpt_bus_deregister(cam_sim_path(isp->isp_sim)); xpt_free_path(isp->isp_path); @@ -2147,7 +2148,7 @@ isp_make_here(ispsoftc_t *isp, int tgt) * Allocate a CCB, create a wildcard path for this bus, * and schedule a rescan. */ - ccb = xpt_alloc_ccb_nowait(); + ccb = xpt_alloc_ccb_nowait(isp->isp_osinfo.sim); if (ccb == NULL) { isp_prt(isp, ISP_LOGWARN, "unable to alloc CCB for rescan"); CAMLOCK_2_ISPLOCK(mpt); diff --git a/sys/dev/mly/mly.c b/sys/dev/mly/mly.c index 62052b0..f9ca34b 100644 --- a/sys/dev/mly/mly.c +++ b/sys/dev/mly/mly.c @@ -1945,6 +1945,7 @@ mly_cam_attach(struct mly_softc *sc) if ((sc->mly_cam_sim[chn] = cam_sim_alloc(mly_cam_action, mly_cam_poll, "mly", sc, device_get_unit(sc->mly_dev), + &Giant, sc->mly_controllerinfo->maximum_parallel_commands, 1, devq)) == NULL) { return(ENOMEM); @@ -1964,6 +1965,7 @@ mly_cam_attach(struct mly_softc *sc) for (i = 0; i < sc->mly_controllerinfo->virtual_channels_present; i++, chn++) { if ((sc->mly_cam_sim[chn] = cam_sim_alloc(mly_cam_action, mly_cam_poll, "mly", sc, device_get_unit(sc->mly_dev), + &Giant, sc->mly_controllerinfo->maximum_parallel_commands, 0, devq)) == NULL) { return(ENOMEM); diff --git a/sys/dev/mpt/mpt_cam.c b/sys/dev/mpt/mpt_cam.c index ac5dffa..5d7c5a5 100644 --- a/sys/dev/mpt/mpt_cam.c +++ b/sys/dev/mpt/mpt_cam.c @@ -311,7 +311,7 @@ mpt_cam_attach(struct mpt_softc *mpt) * Construct our SIM entry. */ mpt->sim = cam_sim_alloc(mpt_action, mpt_poll, "mpt", mpt, - mpt->unit, 1, maxq, devq); + mpt->unit, &Giant, 1, maxq, devq); if (mpt->sim == NULL) { mpt_prt(mpt, "Unable to allocate CAM SIM!\n"); cam_simq_free(devq); @@ -348,7 +348,7 @@ mpt_cam_attach(struct mpt_softc *mpt) * Create a "bus" to export all hidden disks to CAM. */ mpt->phydisk_sim = cam_sim_alloc(mpt_action, mpt_poll, "mpt", mpt, - mpt->unit, 1, maxq, devq); + mpt->unit, &Giant, 1, maxq, devq); if (mpt->phydisk_sim == NULL) { mpt_prt(mpt, "Unable to allocate Physical Disk CAM SIM!\n"); error = ENOMEM; @@ -2087,6 +2087,7 @@ mpt_cam_event(struct mpt_softc *mpt, request_t *req, { union ccb *ccb; uint32_t pathid; + struct cam_sim *sim; /* * In general this means a device has been added to the loop. */ @@ -2095,16 +2096,17 @@ mpt_cam_event(struct mpt_softc *mpt, request_t *req, break; } if (mpt->phydisk_sim) { - pathid = cam_sim_path(mpt->phydisk_sim);; + sim = mpt->phydisk_sim; } else { - pathid = cam_sim_path(mpt->sim); + sim = mpt->sim; } + pathid = cam_sim_path(sim); MPTLOCK_2_CAMLOCK(mpt); /* * Allocate a CCB, create a wildcard path for this bus, * and schedule a rescan. */ - ccb = xpt_alloc_ccb_nowait(); + ccb = xpt_alloc_ccb_nowait(sim); if (ccb == NULL) { mpt_prt(mpt, "unable to alloc CCB for rescan\n"); CAMLOCK_2_MPTLOCK(mpt); diff --git a/sys/dev/ppbus/vpo.c b/sys/dev/ppbus/vpo.c index abb2ef8..c9510b2 100644 --- a/sys/dev/ppbus/vpo.c +++ b/sys/dev/ppbus/vpo.c @@ -32,6 +32,8 @@ __FBSDID("$FreeBSD$"); #include <sys/systm.h> #include <sys/module.h> #include <sys/bus.h> +#include <sys/lock.h> +#include <sys/mutex.h> #include <sys/malloc.h> #include <cam/cam.h> @@ -160,7 +162,7 @@ vpo_attach(device_t dev) return (ENXIO); vpo->sim = cam_sim_alloc(vpo_action, vpo_poll, "vpo", vpo, - device_get_unit(dev), + device_get_unit(dev), &Giant, /*untagged*/1, /*tagged*/0, devq); if (vpo->sim == NULL) { cam_simq_free(devq); diff --git a/sys/dev/rr232x/osm_bsd.c b/sys/dev/rr232x/osm_bsd.c index 1e77fbf..ae394f4 100644 --- a/sys/dev/rr232x/osm_bsd.c +++ b/sys/dev/rr232x/osm_bsd.c @@ -1088,7 +1088,8 @@ static void hpt_final_init(void *dummy) } vbus_ext->sim = cam_sim_alloc(hpt_action, hpt_poll, driver_name, - vbus_ext, 0, os_max_queue_comm, /*tagged*/8, devq); + vbus_ext, 0, &Giant, + os_max_queue_comm, /*tagged*/8, devq); if (!vbus_ext->sim) { os_printk("cam_sim_alloc failed"); diff --git a/sys/dev/sym/sym_hipd.c b/sys/dev/sym/sym_hipd.c index e4357b1..679b98b 100644 --- a/sys/dev/sym/sym_hipd.c +++ b/sys/dev/sym/sym_hipd.c @@ -8973,7 +8973,7 @@ static int sym_cam_attach(hcb_p np) * Construct our SIM entry. */ sim = cam_sim_alloc(sym_action, sym_poll, "sym", np, np->unit, - 1, SYM_SETUP_MAX_TAG, devq); + &Giant, 1, SYM_SETUP_MAX_TAG, devq); if (!sim) goto fail; devq = 0; diff --git a/sys/dev/trm/trm.c b/sys/dev/trm/trm.c index 31cad43..b3690ac 100644 --- a/sys/dev/trm/trm.c +++ b/sys/dev/trm/trm.c @@ -3636,6 +3636,7 @@ trm_attach(device_t dev) "trm", pACB, unit, + &Giant, 1, TRM_MAX_TAGS_CMD_QUEUE, device_Q); diff --git a/sys/dev/twa/tw_osl_cam.c b/sys/dev/twa/tw_osl_cam.c index 6b6afeb..e5a1143 100644 --- a/sys/dev/twa/tw_osl_cam.c +++ b/sys/dev/twa/tw_osl_cam.c @@ -102,7 +102,7 @@ tw_osli_cam_attach(struct twa_softc *sc) */ tw_osli_dbg_dprintf(3, sc, "Calling cam_sim_alloc"); sc->sim = cam_sim_alloc(twa_action, twa_poll, "twa", sc, - device_get_unit(sc->bus_dev), + device_get_unit(sc->bus_dev), &Giant, TW_OSLI_MAX_NUM_IOS - 1, 1, devq); if (sc->sim == NULL) { cam_simq_free(devq); diff --git a/sys/dev/usb/umass.c b/sys/dev/usb/umass.c index de15d47..5c071b3 100644 --- a/sys/dev/usb/umass.c +++ b/sys/dev/usb/umass.c @@ -110,6 +110,8 @@ #include <sys/systm.h> #include <sys/kernel.h> #include <sys/module.h> +#include <sys/lock.h> +#include <sys/mutex.h> #include <sys/bus.h> #include <sys/sysctl.h> @@ -2257,6 +2259,7 @@ umass_cam_attach_sim(struct umass_softc *sc) DEVNAME_SIM, sc /*priv*/, device_get_unit(sc->sc_dev) /*unit number*/, + &Giant, 1 /*maximum device openings*/, 0 /*maximum tagged device openings*/, devq); diff --git a/sys/dev/wds/wd7000.c b/sys/dev/wds/wd7000.c index 8c91f75..05695c7 100644 --- a/sys/dev/wds/wd7000.c +++ b/sys/dev/wds/wd7000.c @@ -132,6 +132,7 @@ __FBSDID("$FreeBSD$"); #include <sys/errno.h> #include <sys/kernel.h> #include <sys/assym.h> +#include <sys/malloc.h> #include <sys/bio.h> #include <sys/buf.h> @@ -606,7 +607,7 @@ wds_attach(device_t dev) goto bad; sim = cam_sim_alloc(wds_action, wds_poll, "wds", (void *) wp, - wp->unit, 1, 1, devq); + wp->unit, &Giant, 1, 1, devq); if (sim == NULL) { cam_simq_free(devq); goto bad; |