diff mbox series

[2/7] efi: Fix compiler warnings

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

Commit Message

Simon Glass Feb. 7, 2021, 9:27 p.m. UTC
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(-)

Comments

Heinrich Schuchardt Feb. 7, 2021, 9:49 p.m. UTC | #1
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 mbox series

Patch

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)