Page MenuHomeFreeBSD

D55497.diff
No OneTemporary

D55497.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
@@ -252,9 +252,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;
@@ -284,13 +282,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
Sun, Jul 12, 3:58 PM (3 h, 25 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35001474
Default Alt Text
D55497.diff (2 KB)

Event Timeline