svn commit: r298142 - in head/sys/cam: . ata scsi

Warner Losh imp at FreeBSD.org
Sun Apr 17 05:24:30 UTC 2016


Author: imp
Date: Sun Apr 17 05:24:28 2016
New Revision: 298142
URL: https://svnweb.freebsd.org/changeset/base/298142

Log:
  tag_action is not used at all in ata. It's set to 1 for ordered
  transactions, but that value isn't used. It's bogusly used to report
  in devstat, due to a cut and paste error from SCSI. Mark it as unused
  in cam_fill_ataio. Reclaim the memory as a new ata_flags. In addition,
  tag_id and init_id are completely unused, so reclaim those as 'unused'
  now too. These were needlessly copied when ata was split from scsi.
  
  This allows us, in the future, to create structures that can
  communicate AUXILIARY regsiter to the SIMs, which cannot be done now.
  
  Differential Revision: https://reviews.freebsd.org/D5598

Modified:
  head/sys/cam/ata/ata_da.c
  head/sys/cam/cam_ccb.h
  head/sys/cam/cam_periph.c
  head/sys/cam/scsi/scsi_pass.c

Modified: head/sys/cam/ata/ata_da.c
==============================================================================
--- head/sys/cam/ata/ata_da.c	Sun Apr 17 03:57:37 2016	(r298141)
+++ head/sys/cam/ata/ata_da.c	Sun Apr 17 05:24:28 2016	(r298142)
@@ -1851,7 +1851,7 @@ adastart(struct cam_periph *periph, unio
 			    ada_retry_count,
 			    adadone,
 			    rw_op,
-			    tag_code,
+			    0,
 			    data_ptr,
 			    bp->bio_bcount,
 			    ada_default_timeout*1000);

Modified: head/sys/cam/cam_ccb.h
==============================================================================
--- head/sys/cam/cam_ccb.h	Sun Apr 17 03:57:37 2016	(r298141)
+++ head/sys/cam/cam_ccb.h	Sun Apr 17 05:24:28 2016	(r298142)
@@ -744,15 +744,8 @@ struct ccb_ataio {
 	u_int8_t   *data_ptr;		/* Ptr to the data buf/SG list */
 	u_int32_t  dxfer_len;		/* Data transfer length */
 	u_int32_t  resid;		/* Transfer residual length: 2's comp */
-	u_int8_t   tag_action;		/* What to do for tag queueing */
-	/*
-	 * The tag action should be either the define below (to send a
-	 * non-tagged transaction) or one of the defined scsi tag messages
-	 * from scsi_message.h.
-	 */
-#define		CAM_TAG_ACTION_NONE	0x00
-	u_int	   tag_id;		/* tag id from initator (target mode) */
-	u_int	   init_id;		/* initiator id of who selected */
+	u_int8_t   ata_flags;		/* Flags for the rest of the buffer */
+	uint32_t   unused[2];		/* Keep the same size */
 };
 
 struct ccb_accept_tio {
@@ -1298,7 +1291,7 @@ cam_fill_ctio(struct ccb_scsiio *csio, u
 static __inline void
 cam_fill_ataio(struct ccb_ataio *ataio, u_int32_t retries,
 	      void (*cbfcnp)(struct cam_periph *, union ccb *),
-	      u_int32_t flags, u_int tag_action,
+	      u_int32_t flags, u_int tag_action __unused,
 	      u_int8_t *data_ptr, u_int32_t dxfer_len,
 	      u_int32_t timeout)
 {
@@ -1309,7 +1302,7 @@ cam_fill_ataio(struct ccb_ataio *ataio, 
 	ataio->ccb_h.timeout = timeout;
 	ataio->data_ptr = data_ptr;
 	ataio->dxfer_len = dxfer_len;
-	ataio->tag_action = tag_action;
+	ataio->ata_flags = 0;
 }
 
 static __inline void

Modified: head/sys/cam/cam_periph.c
==============================================================================
--- head/sys/cam/cam_periph.c	Sun Apr 17 03:57:37 2016	(r298141)
+++ head/sys/cam/cam_periph.c	Sun Apr 17 05:24:28 2016	(r298142)
@@ -1117,7 +1117,7 @@ cam_periph_runccb(union ccb *ccb,
 		} else if (ccb->ccb_h.func_code == XPT_ATA_IO) {
 			devstat_end_transaction(ds,
 					ccb->ataio.dxfer_len - ccb->ataio.resid,
-					ccb->ataio.tag_action & 0x3,
+					0, /* Not used in ATA */
 					((ccb->ccb_h.flags & CAM_DIR_MASK) ==
 					CAM_DIR_NONE) ?  DEVSTAT_NO_DATA : 
 					(ccb->ccb_h.flags & CAM_DIR_OUT) ?

Modified: head/sys/cam/scsi/scsi_pass.c
==============================================================================
--- head/sys/cam/scsi/scsi_pass.c	Sun Apr 17 03:57:37 2016	(r298141)
+++ head/sys/cam/scsi/scsi_pass.c	Sun Apr 17 05:24:28 2016	(r298142)
@@ -945,7 +945,7 @@ passdone(struct cam_periph *periph, unio
 		case XPT_ATA_IO:
 			devstat_end_transaction(softc->device_stats,
 			    done_ccb->ataio.dxfer_len - done_ccb->ataio.resid,
-			    done_ccb->ataio.tag_action & 0x3,
+			    0, /* Not used in ATA */
 			    ((done_ccb->ccb_h.flags & CAM_DIR_MASK) ==
 			    CAM_DIR_NONE) ? DEVSTAT_NO_DATA : 
 			    (done_ccb->ccb_h.flags & CAM_DIR_OUT) ?


More information about the svn-src-head mailing list