summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/armv7/lib/cache.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/arch/armv7/lib/cache.c b/src/arch/armv7/lib/cache.c
index bcf82d2b18..de772a12b5 100644
--- a/src/arch/armv7/lib/cache.c
+++ b/src/arch/armv7/lib/cache.c
@@ -180,19 +180,21 @@ static unsigned int line_bytes(void)
static void dcache_op_mva(unsigned long addr,
unsigned long len, enum dcache_op op)
{
- unsigned long line, i;
+ unsigned long line, linesize;
- line = line_bytes();
+ linesize = line_bytes();
+ line = addr & ~(linesize - 1);
dsb();
- for (i = addr & ~(line - 1); i < addr + len; i += line) {
+ while (line < addr + len) {
switch(op) {
case OP_DCCIMVAC:
- dccimvac(i);
+ dccimvac(line);
break;
default:
break;
}
+ line += linesize;
}
isb();
}