Subject: Re: [PATCH][bpf-next] bpf: change bpf_skb_generic_push type as void

From: Simon Horman <[email-masked]>
Date: Fri, 3 Jan 2020 09:27:13 +0100

On Fri, Jan 03, 2020 at 02:02:33PM +0800, Li RongQing wrote:
> bpf_skb_generic_push always returns 0, not need to check
> its return, so change its type as void
> 
> Signed-off-by: Li RongQing <[email-masked]>

Reviewed-by: Simon Horman <[email-masked]>

> ---
>  net/core/filter.c | 30 ++++++++++--------------------
>  1 file changed, 10 insertions(+), 20 deletions(-)
> 
> diff --git a/net/core/filter.c b/net/core/filter.c
> index 42fd17c48c5f..1cbac34a4e11 100644
> --- a/net/core/filter.c
> +++ b/net/core/filter.c

...

> @@ -5144,7 +5134,7 @@ BPF_CALL_3(bpf_lwt_seg6_adjust_srh, struct sk_buff *, skb, u32, offset,
>  		if (unlikely(ret < 0))
>  			return ret;
>  
> -		ret = bpf_skb_net_hdr_push(skb, offset, len);
> +		bpf_skb_net_hdr_push(skb, offset, len);

There is a check for (ret < 0) just below this if block.
That is ok becuase in order to get to here (ret < 0) must
be true as per the check a few lines above.

So I think this is ok although the asymmetry with the else arm
of this if statement is not ideal IMHO.

>  	} else {
>  		ret = bpf_skb_net_hdr_pop(skb, offset, -1 * len);
>  	}
> -- 
> 2.16.2
>