bootm: fix size arg of flush_cache() in bootm_load_os().
authorPurna Chandra Mandal <purna.mandal@microchip.com>
Wed, 20 Jan 2016 08:37:39 +0000 (14:07 +0530)
committerTom Rini <trini@konsulko.com>
Mon, 25 Jan 2016 15:39:45 +0000 (10:39 -0500)
commit8d4f11c2033d0621f22a1501d92616596a8d1a62
tree58a0eb54cf8373443b23202006dc114c7ad1212d
parent6e2f1538959d79b54a0ceeed2f24643cf98ebaa4
bootm: fix size arg of flush_cache() in bootm_load_os().

Variable _load_end_ points to end address of uncompressed buffer
(*not* uncomress_buffer_end / sizeof(ulong)), so multipling uncompressed
size with sizeof(ulong) is grossly incorrect in flush_cache().
It might lead to access of address beyond valid memory range and hang the CPU.

Tested on MIPS architecture by using compressed(gzip, lzma)
and uncompressed uImage.

Signed-off-by: Purna Chandra Mandal <purna.mandal@microchip.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
common/bootm.c