2022-03-17 06:31:07

by Bill Wendling

[permalink] [raw]
Subject: [PATCH] bnx2x: use correct format characters

When compiling with -Wformat, clang emits the following warnings:

drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c:6181:40: warning: format
specifies type 'unsigned short' but the argument has type 'u32'
(aka 'unsigned int') [-Wformat]
ret = scnprintf(str, *len, "%hx.%hx", num >> 16, num);
~~~ ^~~~~~~~~
%x
drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c:6181:51: warning: format
specifies type 'unsigned short' but the argument has type 'u32'
(aka 'unsigned int') [-Wformat]
ret = scnprintf(str, *len, "%hx.%hx", num >> 16, num);
~~~ ^~~
%x
drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c:6196:47: warning: format
specifies type 'unsigned char' but the argument has type 'u32'
(aka 'unsigned int') [-Wformat]
ret = scnprintf(str, *len, "%hhx.%hhx.%hhx", num >> 16, num >> 8, num);
~~~~ ^~~~~~~~~
%x
drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c:6196:58: warning: format
specifies type 'unsigned char' but the argument has type 'u32'
(aka 'unsigned int') [-Wformat]
ret = scnprintf(str, *len, "%hhx.%hhx.%hhx", num >> 16, num >> 8, num);
~~~~ ^~~~~~~~
%x
drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c:6196:68: warning: format
specifies type 'unsigned char' but the argument has type 'u32'
(aka 'unsigned int') [-Wformat]
ret = scnprintf(str, *len, "%hhx.%hhx.%hhx", num >> 16, num >> 8, num);
~~~~ ^~~
%x

The types of these arguments are unconditionally defined, so this patch
updates the format character to the correct ones for ints and unsigned
ints.

Link: ClangBuiltLinux/linux#378
Signed-off-by: Bill Wendling <[email protected]>
---
drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
index 4e85e7dbc2be..bede16760388 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
@@ -6178,7 +6178,7 @@ static int bnx2x_format_ver(u32 num, u8 *str, u16 *len)
return -EINVAL;
}

- ret = scnprintf(str, *len, "%hx.%hx", num >> 16, num);
+ ret = scnprintf(str, *len, "%x.%x", num >> 16, num);
*len -= ret;
return 0;
}
@@ -6193,7 +6193,7 @@ static int bnx2x_3_seq_format_ver(u32 num, u8 *str, u16 *len)
return -EINVAL;
}

- ret = scnprintf(str, *len, "%hhx.%hhx.%hhx", num >> 16, num >> 8, num);
+ ret = scnprintf(str, *len, "%x.%x.%x", num >> 16, num >> 8, num);
*len -= ret;
return 0;
}
--
2.35.1.723.g4982287a31-goog


2022-03-18 00:22:05

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH] bnx2x: use correct format characters

Hello:

This patch was applied to netdev/net-next.git (master)
by Jakub Kicinski <[email protected]>:

On Wed, 16 Mar 2022 14:31:04 -0700 you wrote:
> When compiling with -Wformat, clang emits the following warnings:
>
> drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c:6181:40: warning: format
> specifies type 'unsigned short' but the argument has type 'u32'
> (aka 'unsigned int') [-Wformat]
> ret = scnprintf(str, *len, "%hx.%hx", num >> 16, num);
> ~~~ ^~~~~~~~~
> %x
> drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c:6181:51: warning: format
> specifies type 'unsigned short' but the argument has type 'u32'
> (aka 'unsigned int') [-Wformat]
> ret = scnprintf(str, *len, "%hx.%hx", num >> 16, num);
> ~~~ ^~~
> %x
> drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c:6196:47: warning: format
> specifies type 'unsigned char' but the argument has type 'u32'
> (aka 'unsigned int') [-Wformat]
> ret = scnprintf(str, *len, "%hhx.%hhx.%hhx", num >> 16, num >> 8, num);
> ~~~~ ^~~~~~~~~
> %x
> drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c:6196:58: warning: format
> specifies type 'unsigned char' but the argument has type 'u32'
> (aka 'unsigned int') [-Wformat]
> ret = scnprintf(str, *len, "%hhx.%hhx.%hhx", num >> 16, num >> 8, num);
> ~~~~ ^~~~~~~~
> %x
> drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c:6196:68: warning: format
> specifies type 'unsigned char' but the argument has type 'u32'
> (aka 'unsigned int') [-Wformat]
> ret = scnprintf(str, *len, "%hhx.%hhx.%hhx", num >> 16, num >> 8, num);
> ~~~~ ^~~
> %x
>
> [...]

Here is the summary with links:
- bnx2x: use correct format characters
https://git.kernel.org/netdev/net-next/c/d65aea8e8298

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html