From 82f7de2724c42a6aecc0cff93881b3dfd09363ce Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Wed, 17 Mar 2021 13:14:50 +0100 Subject: [PATCH] printk: Use %zu to format size_t MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When compiling for 32-bit: util_lib/elf_info.c: In function ‘dump_dmesg_lockless’: util_lib/elf_info.c:1095:39: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=] 1095 | fprintf(stderr, "Failed to malloc %lu bytes for prb: %s\n", | ~~^ | | | long unsigned int | %u 1096 | printk_ringbuffer_sz, strerror(errno)); | ~~~~~~~~~~~~~~~~~~~~ | | | size_t {aka unsigned int} util_lib/elf_info.c:1101:49: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=] 1101 | fprintf(stderr, "Failed to read prb of size %lu bytes: %s\n", | ~~^ | | | long unsigned int | %u 1102 | printk_ringbuffer_sz, strerror(errno)); | ~~~~~~~~~~~~~~~~~~~~ | | | size_t {aka unsigned int} Indeed, "size_t" is "unsigned int" on 32-bit platforms, and "unsigned long" on 64-bit platforms. Fix this by formatting using "%zu". Fixes: 4149df9005f2cdd2 ("printk: add support for lockless ringbuffer") Signed-off-by: Geert Uytterhoeven Reviewed-by: John Ogness Signed-off-by: Simon Horman --- util_lib/elf_info.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util_lib/elf_info.c b/util_lib/elf_info.c index 7c0a2c3..676926c 100644 --- a/util_lib/elf_info.c +++ b/util_lib/elf_info.c @@ -1092,13 +1092,13 @@ static void dump_dmesg_lockless(int fd, void (*handler)(char*, unsigned int)) kaddr = read_file_pointer(fd, vaddr_to_offset(prb_vaddr)); m.prb = calloc(1, printk_ringbuffer_sz); if (!m.prb) { - fprintf(stderr, "Failed to malloc %lu bytes for prb: %s\n", + fprintf(stderr, "Failed to malloc %zu bytes for prb: %s\n", printk_ringbuffer_sz, strerror(errno)); exit(64); } ret = pread(fd, m.prb, printk_ringbuffer_sz, vaddr_to_offset(kaddr)); if (ret != printk_ringbuffer_sz) { - fprintf(stderr, "Failed to read prb of size %lu bytes: %s\n", + fprintf(stderr, "Failed to read prb of size %zu bytes: %s\n", printk_ringbuffer_sz, strerror(errno)); exit(65); } -- 2.31.1