Re: [PATCH v3,bpf-next] bpf: Don't redirect packets with invalid pkt_len

From: Eric Dumazet
Date: Fri Jul 15 2022 - 05:18:18 EST


On Fri, Jul 15, 2022 at 6:30 AM Jakub Kicinski <kuba@xxxxxxxxxx> wrote:
>
> On Fri, 15 Jul 2022 11:22:33 +0800 Zhengchao Shao wrote:
> > +#ifdef CONFIG_DEBUG_NET
> > + if (unlikely(!skb->len)) {
> > + pr_err("%s\n", __func__);
> > + skb_dump(KERN_ERR, skb, false);
> > + WARN_ON_ONCE(1);
> > + }
>
> Is there a reason to open code WARN_ONCE() like that?
>
> #ifdef CONFIG_DEBUG_NET
> if (WARN_ONCE(!skb->len, "%s\n", __func__))
> skb_dump(KERN_ERR, skb, false);
>
> or
>
> if (IS_ENABLED(CONFIG_DEBUG_NET) &&
> WARN_ONCE(!skb->len, "%s\n", __func__))
> skb_dump(KERN_ERR, skb, false);


Also the skb_dump() needs to be done once.

DO_ONCE_LITE(skb_dump, KERN_ERR, skb, false);