summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMatwey V. Kornilov <matwey.kornilov@gmail.com>2021-08-06 00:22:58 +0300
committerTom Rini <trini@konsulko.com>2021-08-22 01:23:02 +0300
commitf52352f65e359c91f69faaa6f6cd1ea34f8adf6d (patch)
tree6c264e81a6783440d68f3666f9546299a10125b5 /lib
parentc091f65234cfed79cfe738a7a6e0e1bd574ba9e2 (diff)
downloadu-boot-f52352f65e359c91f69faaa6f6cd1ea34f8adf6d.tar.xz
display_options: Do not use %llu in print_size
tiny-printf variant doesn't know how to handle %llu format string, but both tiny-printf and print_size can meet in SPL when TFTP is used to obtain main u-boot image. This is known to lead to critical boot issue at AM335x platform when printf is catched in infinite loop. To avoid such issues and make print_size function tiny-printf friendly, use %u instead of %luu. Note, that the size value is guaranteed to be less than 1024 in this conditional branch, so the cast to unsigned int is safe. Signed-off-by: Matwey V. Kornilov <matwey.kornilov@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/display_options.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/display_options.c b/lib/display_options.c
index c08a87e316..4da1f5244f 100644
--- a/lib/display_options.c
+++ b/lib/display_options.c
@@ -107,7 +107,12 @@ void print_size(uint64_t size, const char *s)
}
if (!c) {
- printf("%llu Bytes%s", size, s);
+ /*
+ * SPL tiny-printf is not capable for printing uint64_t.
+ * We have just checked that the size is small enought to fit
+ * unsigned int safely.
+ */
+ printf("%u Bytes%s", (unsigned int)size, s);
return;
}