[PATCH 2/7] efi: Fix compiler warnings
Heinrich Schuchardt
xypron.glpk at gmx.de
Sun Feb 7 22:49:36 CET 2021
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 at 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 at gmx.de>
> image_size, vendor_code, progress, abort_reason);
>
> if (!image)
>
More information about the U-Boot
mailing list