forked from Imagelibrary/rtems
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.
This commit is contained in:
committed by
Sebastian Huber
parent
3a7f5887f3
commit
fc6a0ae1a6
@@ -235,7 +235,7 @@ rtems_cache_invalidate_multiple_instruction_lines( const void * i_addr, size_t n
|
|||||||
|
|
||||||
final_address = (void *)((size_t)i_addr + n_bytes - 1);
|
final_address = (void *)((size_t)i_addr + n_bytes - 1);
|
||||||
i_addr = (void *)((size_t)i_addr & ~(CPU_INSTRUCTION_CACHE_ALIGNMENT - 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 );
|
_CPU_cache_invalidate_1_instruction_line( i_addr );
|
||||||
i_addr = (void *)((size_t)i_addr + CPU_INSTRUCTION_CACHE_ALIGNMENT);
|
i_addr = (void *)((size_t)i_addr + CPU_INSTRUCTION_CACHE_ALIGNMENT);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user