[SRU][Trusty][PATCH 0/2] netvsc: fix incorrect receive checksum offloading

Joseph Salisbury joseph.salisbury at canonical.com
Thu Dec 8 20:13:05 UTC 2016


BugLink: http://bugs.launchpad.net/bugs/1636656

== SRU Justification ==
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.

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.

The primary patch is mainline commit e52fed7177f74382f742c27de2cc5314790aebb6.  It
landed in mainline as of v4.9-rc4. A prereq commit(e3d605ed44) for Trusty is in mainline 
as of 3.15-rc1.

This patch is needed in T, V, Y and X.  This particular SRU request is
for Trusty only.  This patch cherry picks cleanly in Trusty,
but it requires commit e3d605ed44 as a prereq commit, so V, X and Y will be 
sent in separate SRU requests.


== Fixes ==
commit e52fed7177f74382f742c27de2cc5314790aebb6
Author: Stephen Hemminger <sthemmin at microsoft.com>
Date:   Sun Oct 23 21:32:47 2016 -0700

    netvsc: fix incorrect receive checksum offloading

commit e3d605ed441cf4d113f9a1cf9e1b3f7cabe0d781
Author: KY Srinivasan <kys at microsoft.com>
Date:   Sat Mar 8 19:23:16 2014 -0800

    Drivers: net: hyperv: Enable receive side IP checksum offload

== Test Case ==
A test kernel was built with these patches and tested by the original bug reporter.
The bug reporter states the test kernel resolved the bug.



KY Srinivasan (1):
  Drivers: net: hyperv: Enable receive side IP checksum offload

Stephen Hemminger (1):
  netvsc: fix incorrect receive checksum offloading

 drivers/net/hyperv/hyperv_net.h   | 33 ++++++++++++++++++++++++++++++++-
 drivers/net/hyperv/netvsc_drv.c   | 22 ++++++++++++++++++----
 drivers/net/hyperv/rndis_filter.c |  4 +++-
 3 files changed, 53 insertions(+), 6 deletions(-)

-- 
2.7.4





More information about the kernel-team mailing list