Message ID | 20220707221456.1782048-1-justinstitt@google.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 9d899dbe23016856effc01eafec31c587a3c8791 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | l2tp: l2tp_debugfs: fix Clang -Wformat warnings | expand |
On Thu, Jul 07, 2022 at 03:14:56PM -0700, Justin Stitt wrote: > When building with Clang we encounter the following warnings: > | net/l2tp/l2tp_debugfs.c:187:40: error: format specifies type 'unsigned > | short' but the argument has type 'u32' (aka 'unsigned int') > | [-Werror,-Wformat] seq_printf(m, " nr %hu, ns %hu\n", session->nr, > | session->ns); > - > | net/l2tp/l2tp_debugfs.c:196:32: error: format specifies type 'unsigned > | short' but the argument has type 'int' [-Werror,-Wformat] > | session->l2specific_type, l2tp_get_l2specific_len(session)); > - > | net/l2tp/l2tp_debugfs.c:219:6: error: format specifies type 'unsigned > | short' but the argument has type 'u32' (aka 'unsigned int') > | [-Werror,-Wformat] session->nr, session->ns, > > Both session->nr and ->nc are of type `u32`. The currently used format > specifier is `%hu` which describes a `u16`. My proposed fix is to listen > to Clang and use the correct format specifier `%u`. > > For the warning at line 196, l2tp_get_l2specific_len() returns an int > and should therefore be using the `%d` format specifier. Acked-by: Guillaume Nault <gnault@redhat.com>
Hello: This patch was applied to netdev/net-next.git (master) by David S. Miller <davem@davemloft.net>: On Thu, 7 Jul 2022 15:14:56 -0700 you wrote: > When building with Clang we encounter the following warnings: > | net/l2tp/l2tp_debugfs.c:187:40: error: format specifies type 'unsigned > | short' but the argument has type 'u32' (aka 'unsigned int') > | [-Werror,-Wformat] seq_printf(m, " nr %hu, ns %hu\n", session->nr, > | session->ns); > - > | net/l2tp/l2tp_debugfs.c:196:32: error: format specifies type 'unsigned > | short' but the argument has type 'int' [-Werror,-Wformat] > | session->l2specific_type, l2tp_get_l2specific_len(session)); > - > | net/l2tp/l2tp_debugfs.c:219:6: error: format specifies type 'unsigned > | short' but the argument has type 'u32' (aka 'unsigned int') > | [-Werror,-Wformat] session->nr, session->ns, > > [...] Here is the summary with links: - l2tp: l2tp_debugfs: fix Clang -Wformat warnings https://git.kernel.org/netdev/net-next/c/9d899dbe2301 You are awesome, thank you!
diff --git a/net/l2tp/l2tp_debugfs.c b/net/l2tp/l2tp_debugfs.c index 9d1aafe75f92..4595b56d175d 100644 --- a/net/l2tp/l2tp_debugfs.c +++ b/net/l2tp/l2tp_debugfs.c @@ -184,7 +184,7 @@ static void l2tp_dfs_seq_session_show(struct seq_file *m, void *v) session->pwtype == L2TP_PWTYPE_PPP ? "PPP" : ""); if (session->send_seq || session->recv_seq) - seq_printf(m, " nr %hu, ns %hu\n", session->nr, session->ns); + seq_printf(m, " nr %u, ns %u\n", session->nr, session->ns); seq_printf(m, " refcnt %d\n", refcount_read(&session->ref_count)); seq_printf(m, " config 0/0/%c/%c/-/%s %08x %u\n", session->recv_seq ? 'R' : '-', @@ -192,7 +192,7 @@ static void l2tp_dfs_seq_session_show(struct seq_file *m, void *v) session->lns_mode ? "LNS" : "LAC", 0, jiffies_to_msecs(session->reorder_timeout)); - seq_printf(m, " offset 0 l2specific %hu/%hu\n", + seq_printf(m, " offset 0 l2specific %hu/%d\n", session->l2specific_type, l2tp_get_l2specific_len(session)); if (session->cookie_len) { seq_printf(m, " cookie %02x%02x%02x%02x", @@ -215,7 +215,7 @@ static void l2tp_dfs_seq_session_show(struct seq_file *m, void *v) seq_puts(m, "\n"); } - seq_printf(m, " %hu/%hu tx %ld/%ld/%ld rx %ld/%ld/%ld\n", + seq_printf(m, " %u/%u tx %ld/%ld/%ld rx %ld/%ld/%ld\n", session->nr, session->ns, atomic_long_read(&session->stats.tx_packets), atomic_long_read(&session->stats.tx_bytes),
When building with Clang we encounter the following warnings: | net/l2tp/l2tp_debugfs.c:187:40: error: format specifies type 'unsigned | short' but the argument has type 'u32' (aka 'unsigned int') | [-Werror,-Wformat] seq_printf(m, " nr %hu, ns %hu\n", session->nr, | session->ns); - | net/l2tp/l2tp_debugfs.c:196:32: error: format specifies type 'unsigned | short' but the argument has type 'int' [-Werror,-Wformat] | session->l2specific_type, l2tp_get_l2specific_len(session)); - | net/l2tp/l2tp_debugfs.c:219:6: error: format specifies type 'unsigned | short' but the argument has type 'u32' (aka 'unsigned int') | [-Werror,-Wformat] session->nr, session->ns, Both session->nr and ->nc are of type `u32`. The currently used format specifier is `%hu` which describes a `u16`. My proposed fix is to listen to Clang and use the correct format specifier `%u`. For the warning at line 196, l2tp_get_l2specific_len() returns an int and should therefore be using the `%d` format specifier. Link: https://github.com/ClangBuiltLinux/linux/issues/378 Signed-off-by: Justin Stitt <justinstitt@google.com> --- Related l2tp -Wformat patch: https://lore.kernel.org/all/20220706230833.535238-1-justinstitt@google.com/ net/l2tp/l2tp_debugfs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)