[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <34F07894-FDE7-44F8-B7F2-E2003D550AD2@gmail.com>
Date: Tue, 25 Jun 2019 12:46:02 -0700
From: "Jonathan Lemon" <jonathan.lemon@...il.com>
To: "Nathan Chancellor" <natechancellor@...il.com>
Cc: "Björn Töpel" <bjorn.topel@...el.com>,
"Magnus Karlsson" <magnus.karlsson@...el.com>,
"David S. Miller" <davem@...emloft.net>,
"Alexei Starovoitov" <ast@...nel.org>,
"Daniel Borkmann" <daniel@...earbox.net>,
"Jakub Kicinski" <jakub.kicinski@...ronome.com>,
"Jesper Dangaard Brouer" <hawk@...nel.org>,
"John Fastabend" <john.fastabend@...il.com>,
netdev@...r.kernel.org, bpf@...r.kernel.org,
xdp-newbies@...r.kernel.org, linux-kernel@...r.kernel.org,
clang-built-linux@...glegroups.com,
"Nick Desaulniers" <ndesaulniers@...gle.com>,
"Nathan Huckleberry" <nhuck@...gle.com>
Subject: Re: [PATCH] xsk: Properly terminate assignment in
xskq_produce_flush_desc
On 25 Jun 2019, at 11:23, Nathan Chancellor wrote:
> Clang warns:
>
> In file included from net/xdp/xsk_queue.c:10:
> net/xdp/xsk_queue.h:292:2: warning: expression result unused
> [-Wunused-value]
> WRITE_ONCE(q->ring->producer, q->prod_tail);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/compiler.h:284:6: note: expanded from macro 'WRITE_ONCE'
> __u.__val; \
> ~~~ ^~~~~
> 1 warning generated.
>
> The q->prod_tail assignment has a comma at the end, not a semi-colon.
> Fix that so clang no longer warns and everything works as expected.
>
> Fixes: c497176cb2e4 ("xsk: add Rx receive functions and poll support")
> Link: https://github.com/ClangBuiltLinux/linux/issues/544
> Signed-off-by: Nathan Chancellor <natechancellor@...il.com>
Nice find.
Acked-by: Jonathan Lemon <jonathan.lemon@...il.com>
> ---
> net/xdp/xsk_queue.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/xdp/xsk_queue.h b/net/xdp/xsk_queue.h
> index 88b9ae24658d..cba4a640d5e8 100644
> --- a/net/xdp/xsk_queue.h
> +++ b/net/xdp/xsk_queue.h
> @@ -288,7 +288,7 @@ static inline void xskq_produce_flush_desc(struct
> xsk_queue *q)
> /* Order producer and data */
> smp_wmb(); /* B, matches C */
>
> - q->prod_tail = q->prod_head,
> + q->prod_tail = q->prod_head;
> WRITE_ONCE(q->ring->producer, q->prod_tail);
> }
>
> --
> 2.22.0
Powered by blists - more mailing lists