Author: royger
Date: Thu Sep  4 14:56:24 2014
New Revision: 271099
URL: http://svnweb.freebsd.org/changeset/base/271099

Log:
  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
  MFC after:    1 day

Modified:
  head/sys/dev/xen/blkfront/blkfront.c

Modified: head/sys/dev/xen/blkfront/blkfront.c
==============================================================================
--- head/sys/dev/xen/blkfront/blkfront.c        Thu Sep  4 14:26:25 2014        
(r271098)
+++ head/sys/dev/xen/blkfront/blkfront.c        Thu Sep  4 14:56:24 2014        
(r271099)
@@ -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,
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to