I checked the patch on three reproducers and all three DEFINITELY broke the 
core.

There are two malfunctions.

1. No flag skb_shinfo(skb)->tx_flags |= SKBFL_SHARED_FRAG;
 If it is not set then __skb_linearize will not be executed in 
skb_checksum_help.
 sk_buff remains fragmented (non-linear) and this is the first warning.
 OR add skb_shinfo(skb)->tx_flags |= SKBFL_SHARED_FRAG.
 OR ask Eric Dumazet (cef401de7be8c). Is checking if (skb_has_shared_frag(skb)) 
so important?
 in the skb_checksum_help function, is it enough if (skb_is_nonlinear(skb)) ?

2. The skb_segment algorithm and related checks, this is where you need time to 
think ...

Best regards Denis.

Reply via email to