diff options
author | scottl <scottl@FreeBSD.org> | 2007-04-15 08:49:19 +0000 |
---|---|---|
committer | scottl <scottl@FreeBSD.org> | 2007-04-15 08:49:19 +0000 |
commit | 7605c12c0f2bf784960d36288b7cb6e451b99a15 (patch) | |
tree | 010146772b36d16e6f98671b4bed7ce094acd633 /sys/dev/firewire | |
parent | 3e3198a9661d5d1c3e35abc313ad0d4688c6eea6 (diff) | |
download | FreeBSD-src-7605c12c0f2bf784960d36288b7cb6e451b99a15.zip FreeBSD-src-7605c12c0f2bf784960d36288b7cb6e451b99a15.tar.gz |
Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will
use to synchornize and protect all data objects that are used for that
SIM. Drivers that are not yet MPSAFE register Giant and operate as
usual. RIght now, no drivers are MPSAFE, though a few will be changed
in the coming week as this work settles down.
The driver API has changed, so all CAM drivers will need to be recompiled.
The userland API has not changed, so tools like camcontrol do not need to
be recompiled.
Diffstat (limited to 'sys/dev/firewire')
-rw-r--r-- | sys/dev/firewire/sbp.c | 1 | ||||
-rw-r--r-- | sys/dev/firewire/sbp_targ.c | 2 |
2 files changed, 2 insertions, 1 deletions
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); |