2018-08-06 22:36:00

by Bart Van Assche

[permalink] [raw]
Subject: [PATCH] lib/vsprintf: Do not handle %pO[^F] as %px

This patch avoids that gcc reports the following when building with W=1:

lib/vsprintf.c:1941:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
switch (fmt[1]) {
^~~~~~

Fixes: ce4fecf1fe15 ("vsprintf: Add %p extension "%pOF" for device tree")
Signed-off-by: Bart Van Assche <[email protected]>
Cc: Pantelis Antoniou <[email protected]>
Cc: Joe Perches <[email protected]>
Cc: Rob Herring <[email protected]>
---
lib/vsprintf.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index a48aaa79d352..cda186230287 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -1942,6 +1942,7 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
case 'F':
return device_node_string(buf, end, ptr, spec, fmt + 1);
}
+ break;
case 'x':
return pointer_string(buf, end, ptr, spec);
}
--
2.18.0



2018-08-07 13:41:21

by Petr Mladek

[permalink] [raw]
Subject: Re: [PATCH] lib/vsprintf: Do not handle %pO[^F] as %px

On Mon 2018-08-06 15:34:21, Bart Van Assche wrote:
> This patch avoids that gcc reports the following when building with W=1:
>
> lib/vsprintf.c:1941:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
> switch (fmt[1]) {
> ^~~~~~
>
> Fixes: ce4fecf1fe15 ("vsprintf: Add %p extension "%pOF" for device tree")

To be precise, the above commit was fine because it was the last
"case" in "switch". It has got broken by the commit
7b1924a1d930eb2 ("vsprintf: add printk specifier %px").

Other than that the patch fixes a real problem. I have updated the "Fixes"
tag, added stable tag and pushed it into printk.git, for-4.19 branch.

Best Regards,
Petr