1. 30 10月, 2016 1 次提交
  2. 27 10月, 2016 1 次提交
    • S
      netvsc: fix incorrect receive checksum offloading · e52fed71
      Stephen Hemminger 提交于
      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: NStephen Hemminger <sthemmin@microsoft.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e52fed71
  3. 19 10月, 2016 1 次提交
    • A
      net/hyperv: avoid uninitialized variable · 52ccd631
      Arnd Bergmann 提交于
      The hdr_offset variable is only if we deal with a TCP or UDP packet,
      but as the check surrounding its usage tests for skb_is_gso()
      instead, the compiler has no idea if the variable is initialized
      or not at that point:
      
      drivers/net/hyperv/netvsc_drv.c: In function ‘netvsc_start_xmit’:
      drivers/net/hyperv/netvsc_drv.c:494:42: error: ‘hdr_offset’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
      
      This adds an additional check for the transport type, which
      tells the compiler that this path cannot happen. Since the
      get_net_transport_info() function should always be inlined
      here, I don't expect this to result in additional runtime
      checks.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      52ccd631
  4. 13 10月, 2016 2 次提交
  5. 24 9月, 2016 1 次提交
  6. 23 9月, 2016 7 次提交
  7. 11 9月, 2016 1 次提交
  8. 24 8月, 2016 14 次提交
  9. 20 8月, 2016 1 次提交
  10. 16 8月, 2016 5 次提交
  11. 09 8月, 2016 2 次提交
  12. 26 7月, 2016 1 次提交
  13. 09 7月, 2016 1 次提交
  14. 10 6月, 2016 1 次提交
    • V
      netvsc: get rid of completion timeouts · 5362855a
      Vitaly Kuznetsov 提交于
      I'm hitting 5 second timeout in rndis_filter_set_rss_param() while setting
      RSS parameters for the device. When this happens we end up returning
      -ETIMEDOUT from the function and rndis_filter_device_add() falls back to
      setting
      
              net_device->max_chn = 1;
              net_device->num_chn = 1;
              net_device->num_sc_offered = 0;
      
      but after a moment the rndis request succeeds and subchannels start to
      appear. netvsc_sc_open() does unconditional nvscdev->num_sc_offered-- and
      it becomes U32_MAX-1. Consequent rndis_filter_device_remove() will hang
      while waiting for all U32_MAX-1 subchannels to appear and this is not
      going to happen.
      
      The immediate issue could be solved by adding num_sc_offered > 0 check to
      netvsc_sc_open() but we're getting out of sync with the host and it's not
      easy to adjust things later, e.g. in this particular case we'll be creating
      queues without a user request for it and races are expected. Same applies
      to other parts of the driver which have the same completion timeout.
      
      Following the trend in drivers/hv/* code I suggest we remove all these
      timeouts completely. As a guest we can always trust the host we're running
      on and if the host screws things up there is no easy way to recover anyway.
      Signed-off-by: NVitaly Kuznetsov <vkuznets@redhat.com>
      Acked-by: NHaiyang Zhang <haiyangz@microsoft.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5362855a
  15. 06 6月, 2016 1 次提交