• Stephen Hemminger's avatar
    netvsc: fix incorrect receive checksum offloading · e52fed71
    Stephen Hemminger authored
    The Hyper-V netvsc driver was looking at the incorrect status bits
    in the checksum info. It was setting the receive checksum unnecessary
    flag based on the IP header checksum being correct. The checksum
    flag is skb is about TCP and UDP checksum status. Because of this
    bug, any packet received with bad TCP checksum would be passed
    up the stack and to the application causing data corruption.
    The problem is reproducible via netcat and netem.
    
    This had a side effect of not doing receive checksum offload
    on IPv6. The driver was also also always doing checksum offload
    independent of the checksum setting done via ethtool.
    Signed-off-by: default avatarStephen Hemminger <sthemmin@microsoft.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e52fed71
netvsc_drv.c 39 KB