From e52f997818951d22a197789d4aa9c32ab77ab70a Mon Sep 17 00:00:00 2001 From: cognet Date: Mon, 4 Mar 2013 10:41:54 +0000 Subject: [PATCH] If we're using a PIPT L2 cache, only merge 2 segments if both the virtual and the physical addreses are contiguous. Submitted by: Thomas Skibo --- sys/arm/arm/busdma_machdep-v6.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/arm/arm/busdma_machdep-v6.c b/sys/arm/arm/busdma_machdep-v6.c index c87f857866f..ab69683506c 100644 --- a/sys/arm/arm/busdma_machdep-v6.c +++ b/sys/arm/arm/busdma_machdep-v6.c @@ -1007,6 +1007,9 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat, } else { sl = &map->slist[map->sync_count - 1]; if (map->sync_count == 0 || +#ifdef ARM_L2_PIPT + curaddr != sl->busaddr + sl->datacount || +#endif vaddr != sl->vaddr + sl->datacount) { if (++map->sync_count > dmat->nsegments) goto cleanup; -- 2.45.2