2018-02-21 21:34:38

by Anders Roxell

[permalink] [raw]
Subject: [PATCH] tools/gpio/gpio-event-mon: fix warning

PRIu64 is defined in user space to match libc's uint64_t definition.
However, gpioevent_data structure in the kernel is defined using the
kernel's own __u64 type.

gpio-event-mon.c: In function ‘monitor_device’:
gpio-event-mon.c:102:19: warning: format ‘%lu’ expects argument of type
‘long unsigned int’, but argument 3 has type ‘__u64 {aka long long
unsigned int}’ [-Wformat=]
fprintf(stdout, "GPIO EVENT %" PRIu64 ": ", event.timestamp);
^~~~~~~~~~~~~~
LD /tmp/kselftest/gpiogpio-event-mon-in.o
LINK /tmp/kselftest/gpiogpio-event-mon

Fix is to replace PRIu64 with llu, which we know is what the kernel uses
for __u64.

Signed-off-by: Anders Roxell <[email protected]>
---
tools/gpio/gpio-event-mon.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/gpio/gpio-event-mon.c b/tools/gpio/gpio-event-mon.c
index dac4d4131d9b..c864544efe05 100644
--- a/tools/gpio/gpio-event-mon.c
+++ b/tools/gpio/gpio-event-mon.c
@@ -99,7 +99,7 @@ int monitor_device(const char *device_name,
ret = -EIO;
break;
}
- fprintf(stdout, "GPIO EVENT %" PRIu64 ": ", event.timestamp);
+ fprintf(stdout, "GPIO EVENT %llu: ", event.timestamp);
switch (event.id) {
case GPIOEVENT_EVENT_RISING_EDGE:
fprintf(stdout, "rising edge");
--
2.11.0



2018-02-21 21:44:07

by Daniel Díaz

[permalink] [raw]
Subject: Re: [PATCH] tools/gpio/gpio-event-mon: fix warning

On 21 February 2018 at 15:33, Anders Roxell <[email protected]> wrote:
> PRIu64 is defined in user space to match libc's uint64_t definition.
> However, gpioevent_data structure in the kernel is defined using the
> kernel's own __u64 type.
>
> gpio-event-mon.c: In function ‘monitor_device’:
> gpio-event-mon.c:102:19: warning: format ‘%lu’ expects argument of type
> ‘long unsigned int’, but argument 3 has type ‘__u64 {aka long long
> unsigned int}’ [-Wformat=]
> fprintf(stdout, "GPIO EVENT %" PRIu64 ": ", event.timestamp);
> ^~~~~~~~~~~~~~
> LD /tmp/kselftest/gpiogpio-event-mon-in.o
> LINK /tmp/kselftest/gpiogpio-event-mon
>
> Fix is to replace PRIu64 with llu, which we know is what the kernel uses
> for __u64.
>
> Signed-off-by: Anders Roxell <[email protected]>

Tested-by: Daniel Díaz <[email protected]>


> ---
> tools/gpio/gpio-event-mon.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/gpio/gpio-event-mon.c b/tools/gpio/gpio-event-mon.c
> index dac4d4131d9b..c864544efe05 100644
> --- a/tools/gpio/gpio-event-mon.c
> +++ b/tools/gpio/gpio-event-mon.c
> @@ -99,7 +99,7 @@ int monitor_device(const char *device_name,
> ret = -EIO;
> break;
> }
> - fprintf(stdout, "GPIO EVENT %" PRIu64 ": ", event.timestamp);
> + fprintf(stdout, "GPIO EVENT %llu: ", event.timestamp);
> switch (event.id) {
> case GPIOEVENT_EVENT_RISING_EDGE:
> fprintf(stdout, "rising edge");
> --
> 2.11.0

2018-03-01 14:29:02

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH] tools/gpio/gpio-event-mon: fix warning

On Wed, Feb 21, 2018 at 10:33 PM, Anders Roxell
<[email protected]> wrote:

> PRIu64 is defined in user space to match libc's uint64_t definition.
> However, gpioevent_data structure in the kernel is defined using the
> kernel's own __u64 type.
>
> gpio-event-mon.c: In function ‘monitor_device’:
> gpio-event-mon.c:102:19: warning: format ‘%lu’ expects argument of type
> ‘long unsigned int’, but argument 3 has type ‘__u64 {aka long long
> unsigned int}’ [-Wformat=]
> fprintf(stdout, "GPIO EVENT %" PRIu64 ": ", event.timestamp);
> ^~~~~~~~~~~~~~
> LD /tmp/kselftest/gpiogpio-event-mon-in.o
> LINK /tmp/kselftest/gpiogpio-event-mon
>
> Fix is to replace PRIu64 with llu, which we know is what the kernel uses
> for __u64.
>
> Signed-off-by: Anders Roxell <[email protected]>

Patch applied with Daniel's test tag.

Yours,
Linus Walleij