svn commit: r271099 - head/sys/dev/xen/blkfront
Roger Pau Monné
royger at FreeBSD.org
Thu Sep 4 14:56:24 UTC 2014
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,
More information about the svn-src-head
mailing list