Page MenuHomeFreeBSD

D55497.id180350.diff
No OneTemporary

D55497.id180350.diff

diff --git a/sys/compat/linuxkpi/common/include/linux/dma-mapping.h b/sys/compat/linuxkpi/common/include/linux/dma-mapping.h
--- a/sys/compat/linuxkpi/common/include/linux/dma-mapping.h
+++ b/sys/compat/linuxkpi/common/include/linux/dma-mapping.h
@@ -245,9 +245,7 @@
switch (direction) {
case DMA_BIDIRECTIONAL:
- op = BUS_DMASYNC_POSTREAD;
- linuxkpi_dma_sync(dev, dma, size, op);
- op = BUS_DMASYNC_PREREAD;
+ op = BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE;
break;
case DMA_TO_DEVICE:
op = BUS_DMASYNC_POSTWRITE;
@@ -277,13 +275,13 @@
switch (direction) {
case DMA_BIDIRECTIONAL:
- op = BUS_DMASYNC_PREWRITE;
+ op = BUS_DMASYNC_PREWRITE | BUS_DMASYNC_PREREAD;
break;
case DMA_TO_DEVICE:
- op = BUS_DMASYNC_PREREAD;
+ op = BUS_DMASYNC_PREWRITE;
break;
case DMA_FROM_DEVICE:
- op = BUS_DMASYNC_PREWRITE;
+ op = BUS_DMASYNC_PREREAD;
break;
default:
return;
diff --git a/sys/compat/linuxkpi/common/src/linux_pci.c b/sys/compat/linuxkpi/common/src/linux_pci.c
--- a/sys/compat/linuxkpi/common/src/linux_pci.c
+++ b/sys/compat/linuxkpi/common/src/linux_pci.c
@@ -1725,8 +1725,8 @@
/* dma_sync_single_for_cpu() unrolled to avoid lock recursicn. */
switch (direction) {
case DMA_BIDIRECTIONAL:
- bus_dmamap_sync(obj->dmat, obj->dmamap, BUS_DMASYNC_POSTREAD);
- bus_dmamap_sync(obj->dmat, obj->dmamap, BUS_DMASYNC_PREREAD);
+ bus_dmamap_sync(obj->dmat, obj->dmamap,
+ BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE);
break;
case DMA_TO_DEVICE:
bus_dmamap_sync(obj->dmat, obj->dmamap, BUS_DMASYNC_POSTWRITE);
@@ -1936,13 +1936,14 @@
switch (direction) {
case DMA_BIDIRECTIONAL:
- bus_dmamap_sync(priv->dmat, sgl->dma_map, BUS_DMASYNC_PREWRITE);
+ bus_dmamap_sync(priv->dmat, sgl->dma_map,
+ BUS_DMASYNC_PREWRITE | BUS_DMASYNC_PREREAD);
break;
case DMA_TO_DEVICE:
- bus_dmamap_sync(priv->dmat, sgl->dma_map, BUS_DMASYNC_PREREAD);
+ bus_dmamap_sync(priv->dmat, sgl->dma_map, BUS_DMASYNC_PREWRITE);
break;
case DMA_FROM_DEVICE:
- bus_dmamap_sync(priv->dmat, sgl->dma_map, BUS_DMASYNC_PREWRITE);
+ bus_dmamap_sync(priv->dmat, sgl->dma_map, BUS_DMASYNC_PREREAD);
break;
default:
break;
@@ -1970,8 +1971,8 @@
switch (direction) {
case DMA_BIDIRECTIONAL:
- bus_dmamap_sync(priv->dmat, sgl->dma_map, BUS_DMASYNC_POSTREAD);
- bus_dmamap_sync(priv->dmat, sgl->dma_map, BUS_DMASYNC_PREREAD);
+ bus_dmamap_sync(priv->dmat, sgl->dma_map,
+ BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE);
break;
case DMA_TO_DEVICE:
bus_dmamap_sync(priv->dmat, sgl->dma_map, BUS_DMASYNC_POSTWRITE);

File Metadata

Mime Type
text/plain
Expires
Sat, Sep 26, 8:33 AM (10 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
39650239
Default Alt Text
D55497.id180350.diff (2 KB)

Event Timeline