[rtems commit] rtems_cache_invalidate_multiple_instruction_lines

Sebastian Huber sebh at rtems.org
Tue Jan 14 13:39:00 UTC 2014


Module:    rtems
Branch:    4.10
Commit:    fc48ad84c7b70756b326fdcdeeae75035a7d4fd0
Changeset: http://git.rtems.org/rtems/commit/?id=fc48ad84c7b70756b326fdcdeeae75035a7d4fd0

Author:    Aleksandr Platonov <pam at wolpike.com>
Date:      Tue Jan 14 14:40:07 2014 +0100

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.

---

 c/src/lib/libcpu/shared/src/cache_manager.c |    2 +-
 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 8e8ba25..c4953d9 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);
   }




More information about the vc mailing list