diff options
author | simokawa <simokawa@FreeBSD.org> | 2004-01-05 14:21:18 +0000 |
---|---|---|
committer | simokawa <simokawa@FreeBSD.org> | 2004-01-05 14:21:18 +0000 |
commit | 007605b9187cb852ffd9e2b660a880791ad06c92 (patch) | |
tree | 8e94b8afeea0a4c99a0df0234a9c6aecde42494f /sys/dev/firewire/sbp.c | |
parent | 8f8e1b2ede43eac06fdfa820bf577e5e2a052a48 (diff) | |
download | FreeBSD-src-007605b9187cb852ffd9e2b660a880791ad06c92.zip FreeBSD-src-007605b9187cb852ffd9e2b660a880791ad06c92.tar.gz |
MFp4:
* firewire
- Remove pending list.
- Ignore timeout for the FWXF_START state.
- Define M_FWMEM for debugging.
- Comment out DELAY() in fw_asybusy().
- Improve debugging messages
* sbp
- Freeze simq while bus reset.
Diffstat (limited to 'sys/dev/firewire/sbp.c')
-rw-r--r-- | sys/dev/firewire/sbp.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/dev/firewire/sbp.c b/sys/dev/firewire/sbp.c index 39c7536..3b02699 100644 --- a/sys/dev/firewire/sbp.c +++ b/sys/dev/firewire/sbp.c @@ -216,6 +216,8 @@ struct sbp_softc { struct fw_bind fwb; bus_dma_tag_t dmat; struct timeval last_busreset; +#define SIMQ_FREEZED 1 + int flags; }; static void sbp_post_explore __P((void *)); @@ -764,6 +766,10 @@ sbp_post_busreset(void *arg) SBP_DEBUG(0) printf("sbp_post_busreset\n"); END_DEBUG + if ((sbp->sim->flags & SIMQ_FREEZED) == 0) { + xpt_freeze_simq(sbp->sim, /*count*/1); + sbp->sim->flags |= SIMQ_FREEZED; + } microtime(&sbp->last_busreset); } @@ -833,6 +839,8 @@ END_DEBUG if (target->num_lun == 0) sbp_free_target(target); } + xpt_release_simq(sbp->sim, /*run queue*/TRUE); + sbp->sim->flags &= ~SIMQ_FREEZED; } #if NEED_RESPONSE |