Date: Sun, 3 Dec 2006 07:21:55 GMT From: Matt Jacob <mjacob@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 110928 for review Message-ID: <200612030721.kB37Ltpr005059@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=110928 Change 110928 by mjacob@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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200612030721.kB37Ltpr005059>