cpu/mips/cpu.c: Fix flush_cache bug
Cache operations have to take line address (addr), not start_addr. I noticed this bug when debugging ping failure.
Signed-off-by Shinya Kuribayashi <[email protected]>
---
cpu/mips/cpu.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
cpu/mips/cpu.c +2 -2
@@ -56,8 +56,8 @@ void flush_cache(ulong start_addr, ulong size)unsigned long aend = (start_addr + size -1 ) & ~(lsize -1 );while (1 ) { -cache_op (Hit_Writeback_Inv_D, start_addr); -cache_op (Hit_Invalidate_I, start_addr); +cache_op (Hit_Writeback_Inv_D, addr); +cache_op (Hit_Invalidate_I, addr);if (addr == aend)break ; addr += lsize;
Wolfgang Denk
AppliedQuoted 8 lines · In message <[email protected]> you wrote:
Cache operations have to take line address (addr), not
start_addr. I noticed this bug when debugging ping failure.Signed-off-by Shinya Kuribayashi <[email protected]>---
cpu/mips/cpu.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
Applied, thanks.
Best regards,
Wolfgang Denk
Signature · 6 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
It is impractical for the standard to attempt to constrain the
behavior of code that does not obey the constraints of the standard.
- Doug Gwyn