diff options
| author | Ian Campbell <[email protected]> | 2011-01-27 04:14:03 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2011-01-27 14:17:35 -0800 |
| commit | e0ce4af920eb028f38bfd680b1d733f4c7a0b7cf (patch) | |
| tree | 62d1e199745c9746780af51ef33c686892095a20 /include/linux/timerqueue.h | |
| parent | 389f2a18c6a2a5531ac5a155c3ba25784065b1cb (diff) | |
xen: netfront: handle incoming GSO SKBs which are not CHECKSUM_PARTIAL
The Linux network stack expects all GSO SKBs to have ip_summed ==
CHECKSUM_PARTIAL (which implies that the frame contains a partial
checksum) and the Xen network ring protocol similarly expects an SKB
which has GSO set to also have NETRX_csum_blank (which also implies a
partial checksum).
However there have been cases of buggy guests which mark a frame as
GSO but do not set csum_blank. If we detect that we a receiving such a
frame (which manifests as ip_summed != PARTIAL && skb_is_gso) then
force the SKB to partial and recalculate the checksum, since we cannot
rely on the peer having done so if they have not set csum_blank.
Add an ethtool stat to track occurances of this event.
Signed-off-by: Ian Campbell <[email protected]>
Cc: Jeremy Fitzhardinge <[email protected]>
Cc: David Miller <[email protected]>
Cc: [email protected]
Cc: [email protected]
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'include/linux/timerqueue.h')
0 files changed, 0 insertions, 0 deletions