linux-next.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* linux-next: build warning after merge of the landlock tree
@ 2023-10-03  3:27 Stephen Rothwell
       [not found] ` <20230920092641.832134-12-konstantin.meskhidze@huawei.com>
  0 siblings, 1 reply; 8+ messages in thread
From: Stephen Rothwell @ 2023-10-03  3:27 UTC (permalink / raw)
  To: Mickaël Salaün
  Cc: Konstantin Meskhidze, Linux Kernel Mailing List, Linux Next Mailing List

[-- Attachment #1: Type: text/plain, Size: 1245 bytes --]

Hi all,

After merging the landlock tree, today's linux-next build (powerpc
allyesconfig) produced this warning:

samples/landlock/sandboxer.c: In function 'populate_ruleset_net':
samples/landlock/sandboxer.c:170:78: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 3 has type '__u64' {aka 'long unsigned int'} [-Wformat=]
  170 |                                 "Failed to update the ruleset with port \"%llu\": %s\n",
      |                                                                           ~~~^
      |                                                                              |
      |                                                                              long long unsigned int
      |                                                                           %lu
  171 |                                 net_port.port, strerror(errno));
      |                                 ~~~~~~~~~~~~~                                 
      |                                         |
      |                                         __u64 {aka long unsigned int}

Introduced by commit

  24889e7a2079 ("samples/landlock: Add network demo")

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: linux-next: build warning after merge of the landlock tree
       [not found] ` <20230920092641.832134-12-konstantin.meskhidze@huawei.com>
@ 2023-10-03 13:15   ` Mickaël Salaün
  2023-10-03 13:23     ` Geert Uytterhoeven
  2023-10-03 13:40     ` Arnd Bergmann
  0 siblings, 2 replies; 8+ messages in thread
From: Mickaël Salaün @ 2023-10-03 13:15 UTC (permalink / raw)
  To: Stephen Rothwell
  Cc: Konstantin Meskhidze, Linux Kernel Mailing List,
	Linux Next Mailing List, willemdebruijn.kernel, gnoack3000,
	linux-security-module, netdev, netfilter-devel, yusongping,
	artem.kuzin, Geert Uytterhoeven, Arnd Bergmann, Randy Dunlap

PowerPC-64 follows the LP64 data model and then uses int-l64.h (instead of
int-ll64.h like most architectures) for user space code.

Here is the same code with the (suggested) "%lu" token on x86_86:

  samples/landlock/sandboxer.c: In function ‘populate_ruleset_net’:
  samples/landlock/sandboxer.c:170:77: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘__u64’ {aka ‘long long unsigned int’} [-Werror=format=]
    170 |                                 "Failed to update the ruleset with port \"%lu\": %s\n",
        |                                                                           ~~^
        |                                                                             |
        |                                                                             long unsigned int
        |                                                                           %llu
    171 |                                 net_port.port, strerror(errno));
        |                                 ~~~~~~~~~~~~~
        |                                         |
        |                                         __u64 {aka long long unsigned int}


We would then need to cast __u64 to unsigned long long to avoid this warning,
which may look useless, of even buggy, for people taking a look at this sample.

Anyway, it makes more sense to cast it to __u16 because it is the
expected type for a TCP port. I'm updating the patch with that.
Konstantin, please take this fix for the next series:
https://git.kernel.org/mic/c/fc9de206a61a


On Tue, Oct 03, 2023 at 02:27:37PM +1100, Stephen Rothwell wrote:
> Hi all,
> 
> After merging the landlock tree, today's linux-next build (powerpc
> allyesconfig) produced this warning:
> 
> samples/landlock/sandboxer.c: In function 'populate_ruleset_net':
> samples/landlock/sandboxer.c:170:78: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 3 has type '__u64' {aka 'long unsigned int'} [-Wformat=]
>   170 |                                 "Failed to update the ruleset with port \"%llu\": %s\n",
>       |                                                                           ~~~^
>       |                                                                              |
>       |                                                                              long long unsigned int
>       |                                                                           %lu
>   171 |                                 net_port.port, strerror(errno));
>       |                                 ~~~~~~~~~~~~~                                 
>       |                                         |
>       |                                         __u64 {aka long unsigned int}
> 
> Introduced by commit
> 
>   24889e7a2079 ("samples/landlock: Add network demo")
> 
> -- 
> Cheers,
> Stephen Rothwell



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: linux-next: build warning after merge of the landlock tree
  2023-10-03 13:15   ` Mickaël Salaün
@ 2023-10-03 13:23     ` Geert Uytterhoeven
  2023-10-04 11:01       ` Mickaël Salaün
  2023-10-03 13:40     ` Arnd Bergmann
  1 sibling, 1 reply; 8+ messages in thread
From: Geert Uytterhoeven @ 2023-10-03 13:23 UTC (permalink / raw)
  To: Mickaël Salaün
  Cc: Stephen Rothwell, Konstantin Meskhidze,
	Linux Kernel Mailing List, Linux Next Mailing List,
	willemdebruijn.kernel, gnoack3000, linux-security-module, netdev,
	netfilter-devel, yusongping, artem.kuzin, Arnd Bergmann,
	Randy Dunlap

Hi Mickaël,

On Tue, Oct 3, 2023 at 3:15 PM Mickaël Salaün <mic@digikod.net> wrote:
> On Tue, Oct 03, 2023 at 02:27:37PM +1100, Stephen Rothwell wrote:
> > After merging the landlock tree, today's linux-next build (powerpc
> > allyesconfig) produced this warning:
> >
> > samples/landlock/sandboxer.c: In function 'populate_ruleset_net':
> > samples/landlock/sandboxer.c:170:78: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 3 has type '__u64' {aka 'long unsigned int'} [-Wformat=]
> >   170 |                                 "Failed to update the ruleset with port \"%llu\": %s\n",
> >       |                                                                           ~~~^
> >       |                                                                              |
> >       |                                                                              long long unsigned int
> >       |                                                                           %lu
> >   171 |                                 net_port.port, strerror(errno));
> >       |                                 ~~~~~~~~~~~~~
> >       |                                         |
> >       |                                         __u64 {aka long unsigned int}
> >
> > Introduced by commit
> >
> >   24889e7a2079 ("samples/landlock: Add network demo")
>
> PowerPC-64 follows the LP64 data model and then uses int-l64.h (instead of
> int-ll64.h like most architectures) for user space code.
>
> Here is the same code with the (suggested) "%lu" token on x86_86:
>
>   samples/landlock/sandboxer.c: In function ‘populate_ruleset_net’:
>   samples/landlock/sandboxer.c:170:77: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘__u64’ {aka ‘long long unsigned int’} [-Werror=format=]
>     170 |                                 "Failed to update the ruleset with port \"%lu\": %s\n",
>         |                                                                           ~~^
>         |                                                                             |
>         |                                                                             long unsigned int
>         |                                                                           %llu
>     171 |                                 net_port.port, strerror(errno));
>         |                                 ~~~~~~~~~~~~~
>         |                                         |
>         |                                         __u64 {aka long long unsigned int}
>
>
> We would then need to cast __u64 to unsigned long long to avoid this warning,
> which may look useless, of even buggy, for people taking a look at this sample.

In userspace code, you are supposed to #include <inttypes.h>
and use PRIu64.

> Anyway, it makes more sense to cast it to __u16 because it is the
> expected type for a TCP port. I'm updating the patch with that.
> Konstantin, please take this fix for the next series:
> https://git.kernel.org/mic/c/fc9de206a61a

Until someone passes a too large number, and it becomes truncated...

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: linux-next: build warning after merge of the landlock tree
  2023-10-03 13:15   ` Mickaël Salaün
  2023-10-03 13:23     ` Geert Uytterhoeven
@ 2023-10-03 13:40     ` Arnd Bergmann
  2023-10-04 11:02       ` Mickaël Salaün
  1 sibling, 1 reply; 8+ messages in thread
From: Arnd Bergmann @ 2023-10-03 13:40 UTC (permalink / raw)
  To: Mickaël Salaün, Stephen Rothwell
  Cc: Konstantin Meskhidze, Linux Kernel Mailing List, linux-next,
	Willem de Bruijn, gnoack3000, linux-security-module, Netdev,
	netfilter-devel, yusongping, artem.kuzin, Geert Uytterhoeven,
	Randy Dunlap

On Tue, Oct 3, 2023, at 15:15, Mickaël Salaün wrote:
> PowerPC-64 follows the LP64 data model and then uses int-l64.h (instead of
> int-ll64.h like most architectures) for user space code.
>
> Here is the same code with the (suggested) "%lu" token on x86_86:
>
>   samples/landlock/sandboxer.c: In function ‘populate_ruleset_net’:
>   samples/landlock/sandboxer.c:170:77: error: format ‘%lu’ expects 
> argument of type ‘long unsigned int’, but argument 3 has type ‘__u64’ 
> {aka ‘long long unsigned int’} [-Werror=format=]
>     170 |                                 "Failed to update the ruleset 
> with port \"%lu\": %s\n",
>         |                                                               
>             ~~^
>         |                                                               
>               |
>         |                                                               
>               long unsigned int
>         |                                                               
>             %llu
>     171 |                                 net_port.port, 
> strerror(errno));
>         |                                 ~~~~~~~~~~~~~
>         |                                         |
>         |                                         __u64 {aka long long 
> unsigned int}
>
>
> We would then need to cast __u64 to unsigned long long to avoid this warning,
> which may look useless, of even buggy, for people taking a look at this sample.
>
> Anyway, it makes more sense to cast it to __u16 because it is the
> expected type for a TCP port. I'm updating the patch with that.
> Konstantin, please take this fix for the next series:
> https://git.kernel.org/mic/c/fc9de206a61a
>
>
> On Tue, Oct 03, 2023 at 02:27:37PM +1100, Stephen Rothwell wrote:
>> Hi all,
>> 
>> After merging the landlock tree, today's linux-next build (powerpc
>> allyesconfig) produced this warning:
>> 
>> samples/landlock/sandboxer.c: In function 'populate_ruleset_net':
>> samples/landlock/sandboxer.c:170:78: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 3 has type '__u64' {aka 'long unsigned int'} [-Wformat=]
>>   170 |                                 "Failed to update the ruleset with port \"%llu\": %s\n"

I think defining the __SANE_USERSPACE_TYPES__ macro should take care of this,
then __u64 has the same type as it does in the kernel.

        Arnd

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: linux-next: build warning after merge of the landlock tree
  2023-10-03 13:23     ` Geert Uytterhoeven
@ 2023-10-04 11:01       ` Mickaël Salaün
  0 siblings, 0 replies; 8+ messages in thread
From: Mickaël Salaün @ 2023-10-04 11:01 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Stephen Rothwell, Konstantin Meskhidze,
	Linux Kernel Mailing List, Linux Next Mailing List,
	willemdebruijn.kernel, gnoack3000, linux-security-module, netdev,
	netfilter-devel, yusongping, artem.kuzin, Arnd Bergmann,
	Randy Dunlap

On Tue, Oct 03, 2023 at 03:23:22PM +0200, Geert Uytterhoeven wrote:
> Hi Mickaël,
> 
> On Tue, Oct 3, 2023 at 3:15 PM Mickaël Salaün <mic@digikod.net> wrote:
> > On Tue, Oct 03, 2023 at 02:27:37PM +1100, Stephen Rothwell wrote:
> > > After merging the landlock tree, today's linux-next build (powerpc
> > > allyesconfig) produced this warning:
> > >
> > > samples/landlock/sandboxer.c: In function 'populate_ruleset_net':
> > > samples/landlock/sandboxer.c:170:78: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 3 has type '__u64' {aka 'long unsigned int'} [-Wformat=]
> > >   170 |                                 "Failed to update the ruleset with port \"%llu\": %s\n",
> > >       |                                                                           ~~~^
> > >       |                                                                              |
> > >       |                                                                              long long unsigned int
> > >       |                                                                           %lu
> > >   171 |                                 net_port.port, strerror(errno));
> > >       |                                 ~~~~~~~~~~~~~
> > >       |                                         |
> > >       |                                         __u64 {aka long unsigned int}
> > >
> > > Introduced by commit
> > >
> > >   24889e7a2079 ("samples/landlock: Add network demo")
> >
> > PowerPC-64 follows the LP64 data model and then uses int-l64.h (instead of
> > int-ll64.h like most architectures) for user space code.
> >
> > Here is the same code with the (suggested) "%lu" token on x86_86:
> >
> >   samples/landlock/sandboxer.c: In function ‘populate_ruleset_net’:
> >   samples/landlock/sandboxer.c:170:77: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘__u64’ {aka ‘long long unsigned int’} [-Werror=format=]
> >     170 |                                 "Failed to update the ruleset with port \"%lu\": %s\n",
> >         |                                                                           ~~^
> >         |                                                                             |
> >         |                                                                             long unsigned int
> >         |                                                                           %llu
> >     171 |                                 net_port.port, strerror(errno));
> >         |                                 ~~~~~~~~~~~~~
> >         |                                         |
> >         |                                         __u64 {aka long long unsigned int}
> >
> >
> > We would then need to cast __u64 to unsigned long long to avoid this warning,
> > which may look useless, of even buggy, for people taking a look at this sample.
> 
> In userspace code, you are supposed to #include <inttypes.h>
> and use PRIu64.

Thanks for these tips!

> 
> > Anyway, it makes more sense to cast it to __u16 because it is the
> > expected type for a TCP port. I'm updating the patch with that.
> > Konstantin, please take this fix for the next series:
> > https://git.kernel.org/mic/c/fc9de206a61a
> 
> Until someone passes a too large number, and it becomes truncated...

That should not happen because it is checked by the kernel (for this
specific case), but let's make it simple and print the 64-bit value.

> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 
> -- 
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
> 
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: linux-next: build warning after merge of the landlock tree
  2023-10-03 13:40     ` Arnd Bergmann
@ 2023-10-04 11:02       ` Mickaël Salaün
  0 siblings, 0 replies; 8+ messages in thread
From: Mickaël Salaün @ 2023-10-04 11:02 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Stephen Rothwell, Konstantin Meskhidze,
	Linux Kernel Mailing List, linux-next, Willem de Bruijn,
	gnoack3000, linux-security-module, Netdev, netfilter-devel,
	yusongping, artem.kuzin, Geert Uytterhoeven, Randy Dunlap

On Tue, Oct 03, 2023 at 03:40:23PM +0200, Arnd Bergmann wrote:
> On Tue, Oct 3, 2023, at 15:15, Mickaël Salaün wrote:
> > PowerPC-64 follows the LP64 data model and then uses int-l64.h (instead of
> > int-ll64.h like most architectures) for user space code.
> >
> > Here is the same code with the (suggested) "%lu" token on x86_86:
> >
> >   samples/landlock/sandboxer.c: In function ‘populate_ruleset_net’:
> >   samples/landlock/sandboxer.c:170:77: error: format ‘%lu’ expects 
> > argument of type ‘long unsigned int’, but argument 3 has type ‘__u64’ 
> > {aka ‘long long unsigned int’} [-Werror=format=]
> >     170 |                                 "Failed to update the ruleset 
> > with port \"%lu\": %s\n",
> >         |                                                               
> >             ~~^
> >         |                                                               
> >               |
> >         |                                                               
> >               long unsigned int
> >         |                                                               
> >             %llu
> >     171 |                                 net_port.port, 
> > strerror(errno));
> >         |                                 ~~~~~~~~~~~~~
> >         |                                         |
> >         |                                         __u64 {aka long long 
> > unsigned int}
> >
> >
> > We would then need to cast __u64 to unsigned long long to avoid this warning,
> > which may look useless, of even buggy, for people taking a look at this sample.
> >
> > Anyway, it makes more sense to cast it to __u16 because it is the
> > expected type for a TCP port. I'm updating the patch with that.
> > Konstantin, please take this fix for the next series:
> > https://git.kernel.org/mic/c/fc9de206a61a
> >
> >
> > On Tue, Oct 03, 2023 at 02:27:37PM +1100, Stephen Rothwell wrote:
> >> Hi all,
> >> 
> >> After merging the landlock tree, today's linux-next build (powerpc
> >> allyesconfig) produced this warning:
> >> 
> >> samples/landlock/sandboxer.c: In function 'populate_ruleset_net':
> >> samples/landlock/sandboxer.c:170:78: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 3 has type '__u64' {aka 'long unsigned int'} [-Wformat=]
> >>   170 |                                 "Failed to update the ruleset with port \"%llu\": %s\n"
> 
> I think defining the __SANE_USERSPACE_TYPES__ macro should take care of this,
> then __u64 has the same type as it does in the kernel.

Thanks! I didn't know about this macro. We'll use that and print the
full 64-bit value.

> 
>         Arnd

^ permalink raw reply	[flat|nested] 8+ messages in thread

* linux-next: build warning after merge of the landlock tree
@ 2023-11-17  1:04 Stephen Rothwell
  0 siblings, 0 replies; 8+ messages in thread
From: Stephen Rothwell @ 2023-11-17  1:04 UTC (permalink / raw)
  To: Mickaël Salaün
  Cc: Günther Noack, Linux Kernel Mailing List, Linux Next Mailing List

[-- Attachment #1: Type: text/plain, Size: 451 bytes --]

Hi all,

After merging the landlock tree, today's linux-next build (htmldocs)
produced this warning:

security/landlock/ruleset.h:287: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
 * Returns @access with the synthetic IOCTL group flags enabled if necessary.

Introduced by commit

  f3672f581e95 ("landlock: Add IOCTL access right")

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* linux-next: build warning after merge of the landlock tree
@ 2023-06-07  3:52 Stephen Rothwell
  0 siblings, 0 replies; 8+ messages in thread
From: Stephen Rothwell @ 2023-06-07  3:52 UTC (permalink / raw)
  To: Mickaël Salaün
  Cc: Konstantin Meskhidze, Linux Kernel Mailing List, Linux Next Mailing List

[-- Attachment #1: Type: text/plain, Size: 1236 bytes --]

Hi all,

After merging the landlock tree, today's linux-next build (powerpc
allyesconfig) produced this warning:

samples/landlock/sandboxer.c: In function 'populate_ruleset_net':
samples/landlock/sandboxer.c:190:78: warning: format '%lld' expects argument of type 'long long int', but argument 3 has type '__u64' {aka 'long unsigned int'} [-Wformat=]
  190 |                                 "Failed to update the ruleset with port \"%lld\": %s\n",
      |                                                                           ~~~^
      |                                                                              |
      |                                                                              long long int
      |                                                                           %ld
  191 |                                 net_service.port, strerror(errno));
      |                                 ~~~~~~~~~~~~~~~~                              
      |                                            |
      |                                            __u64 {aka long unsigned int}

Introduced by commit

  1c5befb13501 ("samples/landlock: Add network demo")

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-11-17  1:04 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-03  3:27 linux-next: build warning after merge of the landlock tree Stephen Rothwell
     [not found] ` <20230920092641.832134-12-konstantin.meskhidze@huawei.com>
2023-10-03 13:15   ` Mickaël Salaün
2023-10-03 13:23     ` Geert Uytterhoeven
2023-10-04 11:01       ` Mickaël Salaün
2023-10-03 13:40     ` Arnd Bergmann
2023-10-04 11:02       ` Mickaël Salaün
  -- strict thread matches above, loose matches on Subject: below --
2023-11-17  1:04 Stephen Rothwell
2023-06-07  3:52 Stephen Rothwell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).