summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksandr Platonov <pam@wolpike.com>2014-01-14 14:40:07 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-01-14 14:46:07 +0100
commitfc48ad84c7b70756b326fdcdeeae75035a7d4fd0 (patch)
tree25ab6c0bffb8055a8584165e415d86a289d43ab6
parentsparc.t: Correct for V8/V9 (diff)
downloadrtems-fc48ad84c7b70756b326fdcdeeae75035a7d4fd0.tar.bz2
rtems_cache_invalidate_multiple_instruction_lines
According with comment in rtems_cache_invalidate_multiple_instruction_lines(), final_address indicates the last address which needs to be invalidated. But if in while loop we got final_address == i_addr condition then loop breaks and final_address will not be invalidated.
-rw-r--r--c/src/lib/libcpu/shared/src/cache_manager.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/c/src/lib/libcpu/shared/src/cache_manager.c b/c/src/lib/libcpu/shared/src/cache_manager.c
index 8e8ba25d2c..c4953d9523 100644
--- a/c/src/lib/libcpu/shared/src/cache_manager.c
+++ b/c/src/lib/libcpu/shared/src/cache_manager.c
@@ -222,7 +222,7 @@ rtems_cache_invalidate_multiple_instruction_lines( const void * i_addr, size_t n
final_address = (void *)((size_t)i_addr + n_bytes - 1);
i_addr = (void *)((size_t)i_addr & ~(CPU_INSTRUCTION_CACHE_ALIGNMENT - 1));
- while( final_address > i_addr ) {
+ while( final_address >= i_addr ) {
_CPU_cache_invalidate_1_instruction_line( i_addr );
i_addr = (void *)((size_t)i_addr + CPU_INSTRUCTION_CACHE_ALIGNMENT);
}