Page MenuHomeFreeBSD

D60099.1793590531.diff
No OneTemporary

Authored By
Unknown
Size
915 B
Referenced Files
None
Subscribers
None

D60099.1793590531.diff

diff --git a/FreeBSD/sys/arm64/arm64/busdma_bounce.c b/FreeBSD/sys/arm64/arm64/busdma_bounce.c
--- a/FreeBSD/sys/arm64/arm64/busdma_bounce.c
+++ b/FreeBSD/sys/arm64/arm64/busdma_bounce.c
@@ -1095,14 +1095,20 @@
if (op == BUS_DMASYNC_POSTWRITE)
return;
+ if (map == NULL) {
+ if ((op & BUS_DMASYNC_POSTREAD) != 0)
+ dmb(oshld);
+ if ((op & (BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE)) != 0)
+ dmb(oshst);
+ return;
+ }
+
if ((op & BUS_DMASYNC_POSTREAD) != 0) {
/*
* Wait for any DMA operations to complete before the bcopy.
*/
dsb(sy);
}
- if (map == NULL)
- goto out;
if ((bpage = STAILQ_FIRST(&map->bpages)) != NULL) {
CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x op 0x%x "
@@ -1173,7 +1179,6 @@
dma_dcache_sync(sl, op);
}
-out:
if ((op & (BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE)) != 0) {
/*
* Wait for the bcopy to complete before any DMA operations.

File Metadata

Mime Type
text/plain
Expires
Mon, Nov 2, 3:35 AM (15 h, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
39888982
Default Alt Text
D60099.1793590531.diff (915 B)

Event Timeline