Message ID | 20210207212707.3958570-3-sjg@chromium.org |
---|---|
State | Accepted, archived |
Delegated to: | Heinrich Schuchardt |
Headers | show |
Series | Fix compiler warnings for 32-bit ARM | expand |
On 2/7/21 10:27 PM, Simon Glass wrote: > This occur when building on Raspberry Pi 400 (32-bit ARM). Fix them. > > Examples: > > cmd/efidebug.c: In function ‘do_efi_capsule_update’: > cmd/efidebug.c:75:49: warning: cast from pointer to integer of different > size [-Wpointer-to-int-cast] > ret = EFI_CALL(RT->update_capsule(&capsule, 1, (u64)NULL)); > ^ > include/efi_loader.h:104:9: note: in definition of macro ‘EFI_CALL’ > typeof(exp) _r = exp; \ > ^~~ > cmd/efidebug.c:75:49: warning: cast from pointer to integer of different > size [-Wpointer-to-int-cast] > ret = EFI_CALL(RT->update_capsule(&capsule, 1, (u64)NULL)); > ^ > include/efi_loader.h:104:19: note: in definition of macro ‘EFI_CALL’ > typeof(exp) _r = exp; \ > ^~~ > > In file included from include/common.h:20, > from lib/efi_loader/efi_capsule.c:9: > lib/efi_loader/efi_capsule.c: In function ‘efi_update_capsule’: > include/efi_loader.h:83:8: warning: format ‘%lu’ expects argument of type > ‘long unsigned int’, but argument 10 has type ‘size_t’ > {aka ‘unsigned int’} [-Wformat=] > debug("%sEFI: Entry %s(" format ")\n", __efi_nesting_inc(), \ > ^~~~~~~~~~~~~~~~~~ > include/linux/printk.h:37:21: note: in definition of macro ‘pr_fmt’ > #define pr_fmt(fmt) fmt > ^~~ > include/log.h:229:2: note: in expansion of macro ‘log’ > log(LOG_CATEGORY, LOGL_DEBUG, fmt, ##args); \ > ^~~ > include/log.h:249:2: note: in expansion of macro ‘debug_cond’ > debug_cond(_DEBUG, fmt, ##args) > ^~~~~~~~~~ > include/efi_loader.h:83:2: note: in expansion of macro ‘debug’ > debug("%sEFI: Entry %s(" format ")\n", __efi_nesting_inc(), \ > ^~~~~ > lib/efi_loader/efi_capsule.c:444:2: note: in expansion of macro ‘EFI_ENTRY’ > EFI_ENTRY("%p, %lu, %llu\n", capsule_header_array, capsule_count, > ^~~~~~~~~ > lib/efi_loader/efi_capsule.c:444:19: note: format string is defined here > EFI_ENTRY("%p, %lu, %llu\n", capsule_header_array, capsule_count, > ~~^ > %u > > Signed-off-by: Simon Glass <sjg@chromium.org> > --- > > cmd/efidebug.c | 2 +- > lib/efi_loader/efi_capsule.c | 4 ++-- > lib/efi_loader/efi_firmware.c | 4 ++-- > 3 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/cmd/efidebug.c b/cmd/efidebug.c > index bbbcb0a5464..09c41c950f7 100644 > --- a/cmd/efidebug.c > +++ b/cmd/efidebug.c > @@ -72,7 +72,7 @@ static int do_efi_capsule_update(struct cmd_tbl *cmdtp, int flag, > capsule->capsule_image_size); > } > > - ret = EFI_CALL(RT->update_capsule(&capsule, 1, (u64)NULL)); > + ret = EFI_CALL(RT->update_capsule(&capsule, 1, (uintptr_t)NULL)); Thanks for addressing this issue. According to the UEFI specification the third parameter is of type EFI_PHYSICAL_ADDRESS i.e. u64. Simply use 0 instead of (uintptr_t)NULL. > if (ret) { > printf("Cannot handle a capsule at %p", capsule); > return CMD_RET_FAILURE; > diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c > index 0d5a7b63ec8..1c0462ceb21 100644 > --- a/lib/efi_loader/efi_capsule.c > +++ b/lib/efi_loader/efi_capsule.c > @@ -441,7 +441,7 @@ efi_status_t EFIAPI efi_update_capsule( > unsigned int i; > efi_status_t ret; > > - EFI_ENTRY("%p, %lu, %llu\n", capsule_header_array, capsule_count, > + EFI_ENTRY("%p, %zu, %llu\n", capsule_header_array, capsule_count, > scatter_gather_list); ok > > if (!capsule_count) { > @@ -501,7 +501,7 @@ efi_status_t EFIAPI efi_query_capsule_caps( > unsigned int i; > efi_status_t ret; > > - EFI_ENTRY("%p, %lu, %p, %p\n", capsule_header_array, capsule_count, > + EFI_ENTRY("%p, %zu, %p, %p\n", capsule_header_array, capsule_count, ok > maximum_capsule_size, reset_type); > > if (!maximum_capsule_size) { > diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c > index 5e401bbca2b..7a3cca27936 100644 > --- a/lib/efi_loader/efi_firmware.c > +++ b/lib/efi_loader/efi_firmware.c > @@ -299,7 +299,7 @@ efi_status_t EFIAPI efi_firmware_fit_set_image( > efi_status_t (*progress)(efi_uintn_t completion), > u16 **abort_reason) > { > - EFI_ENTRY("%p %d %p %ld %p %p %p\n", this, image_index, image, > + EFI_ENTRY("%p %d %p %zd %p %p %p\n", this, image_index, image, > image_size, vendor_code, progress, abort_reason); ok > > if (!image || image_index != 1) > @@ -414,7 +414,7 @@ efi_status_t EFIAPI efi_firmware_raw_set_image( > efi_status_t status; > efi_uintn_t capsule_payload_size; > > - EFI_ENTRY("%p %d %p %ld %p %p %p\n", this, image_index, image, > + EFI_ENTRY("%p %d %p %zd %p %p %p\n", this, image_index, image, ok Otherwise Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de> > image_size, vendor_code, progress, abort_reason); > > if (!image) >
diff --git a/cmd/efidebug.c b/cmd/efidebug.c index bbbcb0a5464..09c41c950f7 100644 --- a/cmd/efidebug.c +++ b/cmd/efidebug.c @@ -72,7 +72,7 @@ static int do_efi_capsule_update(struct cmd_tbl *cmdtp, int flag, capsule->capsule_image_size); } - ret = EFI_CALL(RT->update_capsule(&capsule, 1, (u64)NULL)); + ret = EFI_CALL(RT->update_capsule(&capsule, 1, (uintptr_t)NULL)); if (ret) { printf("Cannot handle a capsule at %p", capsule); return CMD_RET_FAILURE; diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c index 0d5a7b63ec8..1c0462ceb21 100644 --- a/lib/efi_loader/efi_capsule.c +++ b/lib/efi_loader/efi_capsule.c @@ -441,7 +441,7 @@ efi_status_t EFIAPI efi_update_capsule( unsigned int i; efi_status_t ret; - EFI_ENTRY("%p, %lu, %llu\n", capsule_header_array, capsule_count, + EFI_ENTRY("%p, %zu, %llu\n", capsule_header_array, capsule_count, scatter_gather_list); if (!capsule_count) { @@ -501,7 +501,7 @@ efi_status_t EFIAPI efi_query_capsule_caps( unsigned int i; efi_status_t ret; - EFI_ENTRY("%p, %lu, %p, %p\n", capsule_header_array, capsule_count, + EFI_ENTRY("%p, %zu, %p, %p\n", capsule_header_array, capsule_count, maximum_capsule_size, reset_type); if (!maximum_capsule_size) { diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c index 5e401bbca2b..7a3cca27936 100644 --- a/lib/efi_loader/efi_firmware.c +++ b/lib/efi_loader/efi_firmware.c @@ -299,7 +299,7 @@ efi_status_t EFIAPI efi_firmware_fit_set_image( efi_status_t (*progress)(efi_uintn_t completion), u16 **abort_reason) { - EFI_ENTRY("%p %d %p %ld %p %p %p\n", this, image_index, image, + EFI_ENTRY("%p %d %p %zd %p %p %p\n", this, image_index, image, image_size, vendor_code, progress, abort_reason); if (!image || image_index != 1) @@ -414,7 +414,7 @@ efi_status_t EFIAPI efi_firmware_raw_set_image( efi_status_t status; efi_uintn_t capsule_payload_size; - EFI_ENTRY("%p %d %p %ld %p %p %p\n", this, image_index, image, + EFI_ENTRY("%p %d %p %zd %p %p %p\n", this, image_index, image, image_size, vendor_code, progress, abort_reason); if (!image)
This occur when building on Raspberry Pi 400 (32-bit ARM). Fix them. Examples: cmd/efidebug.c: In function ‘do_efi_capsule_update’: cmd/efidebug.c:75:49: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] ret = EFI_CALL(RT->update_capsule(&capsule, 1, (u64)NULL)); ^ include/efi_loader.h:104:9: note: in definition of macro ‘EFI_CALL’ typeof(exp) _r = exp; \ ^~~ cmd/efidebug.c:75:49: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] ret = EFI_CALL(RT->update_capsule(&capsule, 1, (u64)NULL)); ^ include/efi_loader.h:104:19: note: in definition of macro ‘EFI_CALL’ typeof(exp) _r = exp; \ ^~~ In file included from include/common.h:20, from lib/efi_loader/efi_capsule.c:9: lib/efi_loader/efi_capsule.c: In function ‘efi_update_capsule’: include/efi_loader.h:83:8: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 10 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=] debug("%sEFI: Entry %s(" format ")\n", __efi_nesting_inc(), \ ^~~~~~~~~~~~~~~~~~ include/linux/printk.h:37:21: note: in definition of macro ‘pr_fmt’ #define pr_fmt(fmt) fmt ^~~ include/log.h:229:2: note: in expansion of macro ‘log’ log(LOG_CATEGORY, LOGL_DEBUG, fmt, ##args); \ ^~~ include/log.h:249:2: note: in expansion of macro ‘debug_cond’ debug_cond(_DEBUG, fmt, ##args) ^~~~~~~~~~ include/efi_loader.h:83:2: note: in expansion of macro ‘debug’ debug("%sEFI: Entry %s(" format ")\n", __efi_nesting_inc(), \ ^~~~~ lib/efi_loader/efi_capsule.c:444:2: note: in expansion of macro ‘EFI_ENTRY’ EFI_ENTRY("%p, %lu, %llu\n", capsule_header_array, capsule_count, ^~~~~~~~~ lib/efi_loader/efi_capsule.c:444:19: note: format string is defined here EFI_ENTRY("%p, %lu, %llu\n", capsule_header_array, capsule_count, ~~^ %u Signed-off-by: Simon Glass <sjg@chromium.org> --- cmd/efidebug.c | 2 +- lib/efi_loader/efi_capsule.c | 4 ++-- lib/efi_loader/efi_firmware.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-)