svn commit: r279534 - head/sys/cam/scsi
Kenneth D. Merry
ken at FreeBSD.org
Mon Mar 2 18:09:50 UTC 2015
Author: ken
Date: Mon Mar 2 18:09:49 2015
New Revision: 279534
URL: https://svnweb.freebsd.org/changeset/base/279534
Log:
Change the sa(4) driver to check for long position support on
SCSI-2 devices.
Some older tape devices claim to be SCSI-2, but actually do support
long position information. (Long position information includes
the current file mark.) For example, the COMPAQ SuperDLT1.
So we now only disable the check on SCSI-1 and older devices.
sys/cam/scsi/scsi_sa.c:
In saregister(), only disable fetching long position
information on SCSI-1 and older drives. Update the
comment to explain why.
Confirmed by: dvl
Sponsored by: Spectra Logic
MFC after: 3 weeks
Modified:
head/sys/cam/scsi/scsi_sa.c
Modified: head/sys/cam/scsi/scsi_sa.c
==============================================================================
--- head/sys/cam/scsi/scsi_sa.c Mon Mar 2 18:08:39 2015 (r279533)
+++ head/sys/cam/scsi/scsi_sa.c Mon Mar 2 18:09:49 2015 (r279534)
@@ -2396,9 +2396,13 @@ saregister(struct cam_periph *periph, vo
* Long format data for READ POSITION was introduced in SSC, which
* was after SCSI-2. (Roughly equivalent to SCSI-3.) If the drive
* reports that it is SCSI-2 or older, it is unlikely to support
- * long position data.
+ * long position data, but it might. Some drives from that era
+ * claim to be SCSI-2, but do support long position information.
+ * So, instead of immediately disabling long position information
+ * for SCSI-2 devices, we'll try one pass through sagetpos(), and
+ * then disable long position information if we get an error.
*/
- if (cgd->inq_data.version <= SCSI_REV_2)
+ if (cgd->inq_data.version <= SCSI_REV_CCS)
softc->quirks |= SA_QUIRK_NO_LONG_POS;
if (cgd->inq_data.spc3_flags & SPC3_SID_PROTECT) {
More information about the svn-src-all
mailing list