diff options
author | mjacob <mjacob@FreeBSD.org> | 2006-06-05 22:22:14 +0000 |
---|---|---|
committer | mjacob <mjacob@FreeBSD.org> | 2006-06-05 22:22:14 +0000 |
commit | 3917690ec7fab11e3115f650ef093de42789895e (patch) | |
tree | 5834de0754adaa40199fc4f34e1951475579c24e /sys/cam/cam_ccb.h | |
parent | a79e05219daec49e78769738e234b5922bcaa3b9 (diff) | |
download | FreeBSD-src-3917690ec7fab11e3115f650ef093de42789895e.zip FreeBSD-src-3917690ec7fab11e3115f650ef093de42789895e.tar.gz |
Add PIM_SEQSCAN for HBA misc flags and code that understands
what to do with it.
This forces us to scan targets sequentially, not in parallel.
The reason we might want to do this is that SPI negotiation
might not work right at the SIM level if we try to do it
in parallel. We *could* fix this for each SIM where this is
broken, but it's a lot harder to do that when we can simply
ask CAM to probe sequentially.
If PIM_SEQSCAN is not set (default), the original behaviour for
probing is unchanged.
LUN probing is still done in parallel for each target in either
case.
While we're at it, clean up some resource leakage for error
cases.
Reviewed by: ken, scott, scsi@
MFC after: 1 week
Diffstat (limited to 'sys/cam/cam_ccb.h')
-rw-r--r-- | sys/cam/cam_ccb.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/cam/cam_ccb.h b/sys/cam/cam_ccb.h index e03f3f9..32cb31d 100644 --- a/sys/cam/cam_ccb.h +++ b/sys/cam/cam_ccb.h @@ -514,7 +514,8 @@ typedef enum { PIM_NOREMOVE = 0x40, /* Removeable devices not included in scan */ PIM_NOINITIATOR = 0x20, /* Initiator role not supported. */ PIM_NOBUSRESET = 0x10, /* User has disabled initial BUS RESET */ - PIM_NO_6_BYTE = 0x08 /* Do not send 6-byte commands */ + PIM_NO_6_BYTE = 0x08, /* Do not send 6-byte commands */ + PIM_SEQSCAN = 0x04 /* Do bus scans sequentially, not in parallel */ } pi_miscflag; #ifdef CAM_NEW_TRAN_CODE |