Re: [PATCH net-next v3 10/18] nvme/host: Use sendmsg(MSG_SPLICE_PAGES) rather then sendpage

From: Nathan Chancellor
Date: Fri Jun 30 2023 - 12:10:59 EST


On Thu, Jun 29, 2023 at 04:43:18PM -0700, Jakub Kicinski wrote:
> On Thu, 29 Jun 2023 22:34:59 +0100 David Howells wrote:
> > if (!sendpage_ok(page))
> > - msg.msg_flags &= ~MSG_SPLICE_PAGES,
> > + msg.msg_flags &= ~MSG_SPLICE_PAGES;
>
> 😵️
>
> Let me CC llvm@ in case someone's there is willing to make
> the compiler warn about this.
>

Turns out clang already has a warning for this, -Wcomma:

drivers/nvme/host/tcp.c:1017:38: error: possible misuse of comma operator here [-Werror,-Wcomma]
1017 | msg.msg_flags &= ~MSG_SPLICE_PAGES,
| ^
drivers/nvme/host/tcp.c:1017:4: note: cast expression to void to silence warning
1017 | msg.msg_flags &= ~MSG_SPLICE_PAGES,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| (void)( )
1 error generated.

Let me do some wider build testing to see if it is viable to turn this
on for the whole kernel because it seems worth it, at least in this
case. There are a lot of cases where a warning won't be emitted (see the
original upstream review for a list: https://reviews.llvm.org/D3976) but
something is better than nothing, right? :)

Cheers,
Nathan