Page MenuHomeFreeBSD

D35553.diff
No OneTemporary

D35553.diff

diff --git a/sys/arm/arm/busdma_machdep.c b/sys/arm/arm/busdma_machdep.c
--- a/sys/arm/arm/busdma_machdep.c
+++ b/sys/arm/arm/busdma_machdep.c
@@ -1183,10 +1183,13 @@
if ((bz = dmat->bounce_zone) != NULL) {
free_bounce_pages(dmat, map);
- bz = dmat->bounce_zone;
- bz->free_bpages += map->pagesreserved;
- bz->reserved_bpages -= map->pagesreserved;
- map->pagesreserved = 0;
+ if (map->pagesreserved != 0) {
+ mtx_lock(&bounce_lock);
+ bz->free_bpages += map->pagesreserved;
+ bz->reserved_bpages -= map->pagesreserved;
+ mtx_unlock(&bounce_lock);
+ map->pagesreserved = 0;
+ }
map->pagesneeded = 0;
}
map->sync_count = 0;

File Metadata

Mime Type
text/plain
Expires
Thu, Jan 16, 6:33 PM (21 h, 47 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15828112
Default Alt Text
D35553.diff (654 B)

Event Timeline