That is fine to me. I have tested it. Thanks.
On Mon, Aug 7, 2017 at 12:42 PM, Willem de Bruijn <willemdebruijn.ker...@gmail.com> wrote: >> The openvswitch kernel module calls the __skb_gso_segment()(and sets >> tx_path = false) when passing packets to userspace. The UFO will set >> the ip_summed to CHECKSUM_NONE. There are a lot of warn logs. The warn >> log is shown as below. I guess we should revert the patch. > > Indeed, the software UFO code computes the checksum and > sets ip_summed to CHECKSUM_NONE, as is correct on the > egress path. > > Commit 6e7bc478c9a0 ("net: skb_needs_check() accepts > CHECKSUM_NONE for tx") revised the tx_path case in > skb_needs_check to avoid the warning exactly for the UFO case. > > We cannot just make an exception for CHECKSUM_NONE in the > !tx_path case, as the entire statement then becomes false: > > return skb->ip_summed == CHECKSUM_NONE; > > Since on egress CHECKSUM_UNNECESSARY is equivalent to > CHECKSUM_NONE, it should be fine to update the UFO code > to set that, instead: > > @@ -235,7 +235,7 @@ static struct sk_buff *udp4_ufo_fragment(struct > sk_buff *skb, > if (uh->check == 0) > uh->check = CSUM_MANGLED_0; > > - skb->ip_summed = CHECKSUM_NONE; > + skb->ip_summed = CHECKSUM_UNNECESSARY;