[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <578B66F6-E746-413F-B0B4-8BDB6B320FE3@flugsvamp.com>
Date: Fri, 01 Mar 2019 09:17:40 -0800
From: "Jonathan Lemon" <jlemon@...gsvamp.com>
To: "Yonghong Song" <yhs@...com>
Cc: netdev@...r.kernel.org, "Alexei Starovoitov" <ast@...com>,
"Daniel Borkmann" <daniel@...earbox.net>, kernel-team@...com
Subject: Re: [PATCH bpf-next] samples/bpf: silence compiler warning for
xdpsock_user.c
On 28 Feb 2019, at 22:19, Yonghong Song wrote:
> Compiling xdpsock_user.c with 4.8.5, I hit the following
> compilation warning:
> HOSTCC samples/bpf/xdpsock_user.o
> /data/users/yhs/work/net-next/samples/bpf/xdpsock_user.c: In
> function ‘main’:
> /data/users/yhs/work/net-next/samples/bpf/xdpsock_user.c:449:6:
> warning: ‘idx_cq’ may be used unini
> tialized in this function [-Wmaybe-uninitialized]
> u32 idx_cq, idx_fq;
> ^
> /data/users/yhs/work/net-next/samples/bpf/xdpsock_user.c:606:7:
> warning: ‘idx_rx’ may be used unini
> tialized in this function [-Wmaybe-uninitialized]
> u32 idx_rx, idx_tx = 0;
> ^
> /data/users/yhs/work/net-next/samples/bpf/xdpsock_user.c:506:6:
> warning: ‘idx_rx’ may be used unini
> tialized in this function [-Wmaybe-uninitialized]
> u32 idx_rx, idx_fq = 0;
>
> As an example, the code pattern looks like:
> u32 idx_cq;
> ...
> ret = xsk_ring_prod__reserve(&xsk->umem->fq, rcvd, &idx_fq);
> if (ret) {
> ...
> }
> ... idx_fq ...
> The compiler warns since it does not know whether &idx_fq is assigned
> or not inside the library function xsk_ring_prod__reserve().
>
> Let us assign an initial value 0 to such auto variables to silence
> compiler warning.
>
> Fixes: 248c7f9c0e21 ("samples/bpf: convert xdpsock to use libbpf for
> AF_XDP access")
> Signed-off-by: Yonghong Song <yhs@...com>
> ---
> samples/bpf/xdpsock_user.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/samples/bpf/xdpsock_user.c b/samples/bpf/xdpsock_user.c
> index 9c76d6d43deb..d08ee1ab7bb4 100644
> --- a/samples/bpf/xdpsock_user.c
> +++ b/samples/bpf/xdpsock_user.c
> @@ -446,7 +446,7 @@ static void kick_tx(struct xsk_socket_info *xsk)
>
> static inline void complete_tx_l2fwd(struct xsk_socket_info *xsk)
> {
> - u32 idx_cq, idx_fq;
> + u32 idx_cq = 0, idx_fq = 0;
> unsigned int rcvd;
> size_t ndescs;
>
> @@ -503,7 +503,7 @@ static inline void complete_tx_only(struct
> xsk_socket_info *xsk)
> static void rx_drop(struct xsk_socket_info *xsk)
> {
> unsigned int rcvd, i;
> - u32 idx_rx, idx_fq = 0;
> + u32 idx_rx = 0, idx_fq = 0;
> int ret;
>
> rcvd = xsk_ring_cons__peek(&xsk->rx, BATCH_SIZE, &idx_rx);
> @@ -603,7 +603,7 @@ static void l2fwd(struct xsk_socket_info *xsk)
> {
> for (;;) {
> unsigned int rcvd, i;
> - u32 idx_rx, idx_tx = 0;
> + u32 idx_rx = 0, idx_tx = 0;
> int ret;
>
> for (;;) {
> --
> 2.17.1
Acked-by: Jonathan Lemon <jonathan.lemon@...il.com>
Powered by blists - more mailing lists