Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Jul 2017 15:10:16 +0000 (UTC)
From:      "Kenneth D. Merry" <ken@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r320600 - stable/11/sys/cam/scsi
Message-ID:  <201707031510.v63FAGgK053633@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ken
Date: Mon Jul  3 15:10:16 2017
New Revision: 320600
URL: https://svnweb.freebsd.org/changeset/base/320600

Log:
  MFC r320420:
  
    ------------------------------------------------------------------------
    r320420 | ken | 2017-06-27 11:55:25 -0600 (Tue, 27 Jun 2017) | 25 lines
  
    In scsi_zbc_in(), fill in the length in the ZBC IN CDB.
  
    Without the allocation length set, the target will either reject
    the command or complete it without transferring any data.
  
    This fixes the REPORT ZONES command for SCSI ZBC protocol devices,
    as well as ATA ZAC protocol devices that are behind a SCSI to ATA
    translation layer.  (LSI/Broadcom's 12Gb SAS adapters translate ZBC
    commands to ZAC commands.)  Those are Host Aware and Host Managed SMR
    drives.
  
    This will fix REPORT ZONE commands sent to the da(4) driver via the
    GEOM bio interface and zonectl, and REPORT ZONE commands sent from
    camcontrol(8).
  
    Note that in the case of camcontrol(8), we currently only send
    SCSI ZBC commands to native SCSI protocol devices, not ATA devices
    behind a SAT layer.
  
    sys/cam/scsi/scsi_da.c:
    	Fill in the length field in scsi_zbc_in().
  
    Sponsored by:	Spectra Logic
    ------------------------------------------------------------------------

Modified:
  stable/11/sys/cam/scsi/scsi_da.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/cam/scsi/scsi_da.c
==============================================================================
--- stable/11/sys/cam/scsi/scsi_da.c	Mon Jul  3 14:31:38 2017	(r320599)
+++ stable/11/sys/cam/scsi/scsi_da.c	Mon Jul  3 15:10:16 2017	(r320600)
@@ -5748,6 +5748,7 @@ scsi_zbc_in(struct ccb_scsiio *csio, uint32_t retries,
 	scsi_cmd = (struct scsi_zbc_in *)&csio->cdb_io.cdb_bytes;
 	scsi_cmd->opcode = ZBC_IN;
 	scsi_cmd->service_action = service_action;
+	scsi_ulto4b(dxfer_len, scsi_cmd->length);
 	scsi_u64to8b(zone_start_lba, scsi_cmd->zone_start_lba);
 	scsi_cmd->zone_options = zone_options;
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201707031510.v63FAGgK053633>