svn commit: r271611 - stable/10/sys/dev/xen/blkfront

Roger Pau Monné royger at FreeBSD.org
Mon Sep 15 08:58:18 UTC 2014


Author: royger
Date: Mon Sep 15 08:58:17 2014
New Revision: 271611
URL: http://svnweb.freebsd.org/changeset/base/271611

Log:
  MFC r271099: revert r269814: blkfront: add support for unmapped IO
  
  Current busdma code for unmapped bios will not properly align the
  segment size, causing corruption on blkfront devices. Revert the commit
  until busdma code is fixed.
  
  Reported by:	mav
  Approved by:	re

Modified:
  stable/10/sys/dev/xen/blkfront/blkfront.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/xen/blkfront/blkfront.c
==============================================================================
--- stable/10/sys/dev/xen/blkfront/blkfront.c	Mon Sep 15 07:20:40 2014	(r271610)
+++ stable/10/sys/dev/xen/blkfront/blkfront.c	Mon Sep 15 08:58:17 2014	(r271611)
@@ -272,12 +272,8 @@ xbd_queue_request(struct xbd_softc *sc, 
 {
 	int error;
 
-	if (cm->cm_bp != NULL)
-		error = bus_dmamap_load_bio(sc->xbd_io_dmat, cm->cm_map,
-		    cm->cm_bp, xbd_queue_cb, cm, 0);
-	else
-		error = bus_dmamap_load(sc->xbd_io_dmat, cm->cm_map,
-		    cm->cm_data, cm->cm_datalen, xbd_queue_cb, cm, 0);
+	error = bus_dmamap_load(sc->xbd_io_dmat, cm->cm_map, cm->cm_data,
+	    cm->cm_datalen, xbd_queue_cb, cm, 0);
 	if (error == EINPROGRESS) {
 		/*
 		 * Maintain queuing order by freezing the queue.  The next
@@ -337,6 +333,8 @@ xbd_bio_command(struct xbd_softc *sc)
 	}
 
 	cm->cm_bp = bp;
+	cm->cm_data = bp->bio_data;
+	cm->cm_datalen = bp->bio_bcount;
 	cm->cm_sector_number = (blkif_sector_t)bp->bio_pblkno;
 
 	switch (bp->bio_cmd) {
@@ -995,7 +993,7 @@ xbd_instance_create(struct xbd_softc *sc
 
 	sc->xbd_disk->d_mediasize = sectors * sector_size;
 	sc->xbd_disk->d_maxsize = sc->xbd_max_request_size;
-	sc->xbd_disk->d_flags = DISKFLAG_UNMAPPED_BIO;
+	sc->xbd_disk->d_flags = 0;
 	if ((sc->xbd_flags & (XBDF_FLUSH|XBDF_BARRIER)) != 0) {
 		sc->xbd_disk->d_flags |= DISKFLAG_CANFLUSHCACHE;
 		device_printf(sc->xbd_dev,


More information about the svn-src-all mailing list