On Tue, Sep 29, 2020 at 09:48:55PM +0800, Xin Long wrote: > This patch fixes two things: > > When skb->ip_summed == CHECKSUM_PARTIAL, skb_checksum_help() should be > called do the checksum, instead of gso_make_checksum(), which is used > to do the checksum for current proto after calling skb_segment(), not > after the inner proto's gso_segment(). > > When offload_csum is disabled, the hardware will not do the checksum > for the current proto, udp. So instead of calling gso_make_checksum(), > it should calculate checksum for udp itself. Gotta say, this is odd. It is really flipping the two around. What about other users of this function, did you test them too? It makes sense to be, but would be nice if someone else could review this.