summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2024-04-25 09:06:32 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2024-04-25 09:06:42 +0200
commitd44aaa7d1e06edfbb4460d97cde4813ecf6e88a7 (patch)
tree7ab32732e645f0b043b6782b49a05ac29d868931
parentb986aad24ab85b386b3884ccb047f011ebb9847f (diff)
downloadbarebox-d44aaa7d1e06edfbb4460d97cde4813ecf6e88a7.tar.gz
barebox-d44aaa7d1e06edfbb4460d97cde4813ecf6e88a7.tar.xz
Revert "ARM64: let 'end' point after the range in cache functions"
This reverts commit 65ef5d885263dd9fc61c1d78bd5b951396058d88. The change is correct, but unveils other bugs in the code that need to be fixed first, so revert for now. To be applied again when the other bugs are fixed. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--arch/arm/cpu/dma_64.c2
-rw-r--r--arch/arm/cpu/mmu_64.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/arch/arm/cpu/dma_64.c b/arch/arm/cpu/dma_64.c
index b50572f5e6..74d7167860 100644
--- a/arch/arm/cpu/dma_64.c
+++ b/arch/arm/cpu/dma_64.c
@@ -6,7 +6,7 @@ void arch_sync_dma_for_device(void *vaddr, size_t size,
enum dma_data_direction dir)
{
unsigned long start = (unsigned long)vaddr;
- unsigned long end = start + size;
+ unsigned long end = start + size - 1;
if (dir == DMA_FROM_DEVICE)
v8_inv_dcache_range(start, end);
diff --git a/arch/arm/cpu/mmu_64.c b/arch/arm/cpu/mmu_64.c
index 71c0d8930e..f907421da9 100644
--- a/arch/arm/cpu/mmu_64.c
+++ b/arch/arm/cpu/mmu_64.c
@@ -282,7 +282,7 @@ void mmu_disable(void)
void dma_inv_range(void *ptr, size_t size)
{
unsigned long start = (unsigned long)ptr;
- unsigned long end = start + size;
+ unsigned long end = start + size - 1;
v8_inv_dcache_range(start, end);
}
@@ -290,7 +290,7 @@ void dma_inv_range(void *ptr, size_t size)
void dma_flush_range(void *ptr, size_t size)
{
unsigned long start = (unsigned long)ptr;
- unsigned long end = start + size;
+ unsigned long end = start + size - 1;
v8_flush_dcache_range(start, end);
}