Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Apr 2013 17:29:17 +0000 (UTC)
From:      "Kenneth D. Merry" <ken@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r249028 - head/sys/cam/ctl
Message-ID:  <201304021729.r32HTHAw073869@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ken
Date: Tue Apr  2 17:29:17 2013
New Revision: 249028
URL: http://svnweb.freebsd.org/changeset/base/249028

Log:
  Fix sending virtual scatter/gather lists from the CTL CAM frontend
  peripheral.
  
  Sponsored by:	Spectra Logic

Modified:
  head/sys/cam/ctl/scsi_ctl.c

Modified: head/sys/cam/ctl/scsi_ctl.c
==============================================================================
--- head/sys/cam/ctl/scsi_ctl.c	Tue Apr  2 17:11:07 2013	(r249027)
+++ head/sys/cam/ctl/scsi_ctl.c	Tue Apr  2 17:29:17 2013	(r249028)
@@ -916,7 +916,7 @@ ctlfestart(struct cam_periph *periph, un
 				if (io->io_hdr.flags & CTL_FLAG_BUS_ADDR)
 					flags |= CAM_DATA_SG_PADDR;
 				else
-					flags &= ~CAM_DATA_SG;
+					flags |= CAM_DATA_SG;
 				data_ptr = (uint8_t *)cam_sglist;
 				dxfer_len = io->scsiio.kern_data_len;
 			} else {
@@ -938,6 +938,10 @@ ctlfestart(struct cam_periph *periph, un
 				data_ptr = sglist[*ti].addr;
 				dxfer_len = sglist[*ti].len;
 				csio->sglist_cnt = 0;
+				if (io->io_hdr.flags & CTL_FLAG_BUS_ADDR)
+					flags |= CAM_DATA_PADDR;
+				else
+					flags |= CAM_DATA_VADDR;
 				cmd_info->flags |= CTLFE_CMD_PIECEWISE;
 				(*ti)++;
 			}



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