PERFORCE change 110928 for review
Matt Jacob
mjacob at FreeBSD.org
Sat Dec 2 23:21:56 PST 2006
http://perforce.freebsd.org/chv.cgi?CH=110928
Change 110928 by mjacob at newisp on 2006/12/03 07:21:23
Fix XPT_GET_TRANSPORT_SETTINGS to zero validity and flags-
this was causing us to not negotiate sync at all, or at
random.
Affected files ...
.. //depot/projects/newisp/dev/isp/isp_freebsd.c#30 edit
Differences ...
==== //depot/projects/newisp/dev/isp/isp_freebsd.c#30 (text+ko) ====
@@ -2741,8 +2741,9 @@
*dptr &= ~DPARM_SYNC;
}
isp_prt(isp, ISP_LOGDEBUG0,
- "SET bus %d targ %d to flags %x off %x per %x",
- bus, tgt, sdp->isp_devparam[tgt].goal_flags,
+ "SET (%d.%d.%d) to flags %x off %x per %x",
+ bus, tgt, cts->ccb_h.target_lun,
+ sdp->isp_devparam[tgt].goal_flags,
sdp->isp_devparam[tgt].goal_offset,
sdp->isp_devparam[tgt].goal_period);
sdp->isp_devparam[tgt].dev_update = 1;
@@ -2809,20 +2810,22 @@
cts->transport = XPORT_SPI;
cts->transport_version = 2;
- scsi->flags &= ~CTS_SCSI_FLAGS_TAG_ENB;
- spi->flags &= ~CTS_SPI_FLAGS_DISC_ENB;
+ spi->valid = 0;
+ scsi->valid = 0;
+ spi->flags = 0;
+ scsi->flags = 0;
if (dval & DPARM_DISC) {
spi->flags |= CTS_SPI_FLAGS_DISC_ENB;
}
- if (dval & DPARM_TQING) {
- scsi->flags |= CTS_SCSI_FLAGS_TAG_ENB;
- }
if ((dval & DPARM_SYNC) && oval && pval) {
spi->sync_offset = oval;
spi->sync_period = pval;
- spi->valid |= CTS_SPI_VALID_SYNC_OFFSET;
- spi->valid |= CTS_SPI_VALID_SYNC_RATE;
+ } else {
+ spi->sync_offset = 0;
+ spi->sync_period = 0;
}
+ spi->valid |= CTS_SPI_VALID_SYNC_OFFSET;
+ spi->valid |= CTS_SPI_VALID_SYNC_RATE;
spi->valid |= CTS_SPI_VALID_BUS_WIDTH;
if (dval & DPARM_WIDE) {
spi->bus_width = MSG_EXT_WDTR_BUS_16_BIT;
@@ -2831,14 +2834,15 @@
}
if (cts->ccb_h.target_lun != CAM_LUN_WILDCARD) {
scsi->valid = CTS_SCSI_VALID_TQ;
+ if (dval & DPARM_TQING) {
+ scsi->flags |= CTS_SCSI_FLAGS_TAG_ENB;
+ }
spi->valid |= CTS_SPI_VALID_DISC;
- } else {
- scsi->valid = 0;
}
isp_prt(isp, ISP_LOGDEBUG0,
- "GET %s bus %d targ %d to flags %x off %x per %x",
+ "GET %s (%d.%d.%d) to flags %x off %x per %x",
IS_CURRENT_SETTINGS(cts)? "ACTIVE" : "NVRAM",
- bus, tgt, dval, oval, pval);
+ bus, tgt, cts->ccb_h.target_lun, dval, oval, pval);
}
ISPLOCK_2_CAMLOCK(isp);
ccb->ccb_h.status = CAM_REQ_CMP;
More information about the p4-projects
mailing list