> >> The 'write_len > skb_headlen(skb)' test is redundant, no ? > >> > >> It is covered by the earlier test : > >> > >> if (likely(len <= skb_headlen(skb))) > >> return SKB_NOT_DROPPED_YET; > >> > > Daniel, it is not redundant. The bpf pulls a len between > > skb_headlen(skb) and skb->len that results in error. Here it will stop > > this operation. For other skbs(not SKB_GSO_FRAGLIST) it could be a > > normal behaviour and will continue to do next pulling. > > I meant something like the below. The len <= skb_headlen(skb) case you > already return earlier with SKB_NOT_DROPPED_YET. Willem, do you see a > case where this should not live in pskb_may_pull_reason() but rather > specifically in skb_ensure_writable()? Yes. pskb_may_pull is called all over the hot path. All in locations that are known safe, because they only pull header bytes. I prefer to limit the branch to the few (user configurable) locations that are in scope.