[PATCH] bnx2x: use correct format characters

Bill Wendling posted 1 patch 4 years, 3 months ago
drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH] bnx2x: use correct format characters
Posted by Bill Wendling 4 years, 3 months ago
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 <morbo@google.com>
---
 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
Re: [PATCH] bnx2x: use correct format characters
Posted by patchwork-bot+netdevbpf@kernel.org 4 years, 3 months ago
Hello:

This patch was applied to netdev/net-next.git (master)
by Jakub Kicinski <kuba@kernel.org>:

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