diff options
author | David S. Miller <davem@davemloft.net> | 2014-09-26 00:23:13 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-09-26 00:23:13 -0400 |
commit | 9fb426a642a166730a8c916cb38c5461dbc28ffb (patch) | |
tree | f51fe647dc1d833dedd68f7ed384d0634bc6c143 /lib/usercopy.c | |
parent | 2fdbfea5735d3deb30a8782c57f7210cb034e69d (diff) | |
parent | 53e50398968d43338c4d932114e68bc099fc5fbd (diff) |
Merge branch 'gso_send_check'
Tom Herbert says:
====================
net: Eliminate gso_send_check
gso_send_check presents a lot of complexity for what it is being used
for. It seems that there are only two cases where it might be effective:
TCP and UFO paths. In these cases, the gso_send_check function
initializes the TCP or UDP checksum respectively to the pseudo header
checksum so that the checksum computation is appropriately offloaded or
computed in the gso_segment functions. The gso_send_check functions
are only called from dev.c in skb_mac_gso_segment when ip_summed !=
CHECKSUM_PARTIAL (which seems very unlikely in TCP case). We can move
the logic of this into the respective gso_segment functions where the
checksum is initialized if ip_summed != CHECKSUM_PARTIAL.
With the above cases handled, gso_send_check is no longer needed, so
we can remove all uses of it and the fields in the offload callbacks.
With this change, ip_summed in the skb should be preserved though all
the layers of gso_segment calls.
In follow-on patches, we may be able to remove the check setup code in
tcp_gso_segment if we can guarantee that ip_summed will always be
CHECKSUM_PARTIAL (verify all paths and probably add an assert in
tcp_gro_segment).
Tested these patches by:
- netperf TCP_STREAM test with GSO enabled
- Forced ip_summed != CHECKSUM_PARTIAL with above
- Ran UDP_RR with 10000 request size over GRE tunnel. This exercised
UFO path.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'lib/usercopy.c')
0 files changed, 0 insertions, 0 deletions