1. 30 May, 2019 13 commits
  2. 29 May, 2019 17 commits
  3. 28 May, 2019 3 commits
  4. 27 May, 2019 7 commits
    • David S. Miller's avatar
      Merge branch 'aquantia-fixes' · c3cf73c7
      David S. Miller authored
      Igor Russkikh says:
      
      ====================
      net: aquantia: various fixes May, 2019
      
      Here is a set of various bug fixes found on recent verification stage.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c3cf73c7
    • Nikita Danilov's avatar
      net: aquantia: tcp checksum 0xffff being handled incorrectly · 76f254d4
      Nikita Danilov authored
      Thats a known quirk in windows tcp stack it can produce 0xffff checksum.
      Thats incorrect but it is.
      
      Atlantic HW with LRO enabled handles that incorrectly and changes csum to
      0xfffe - but indicates that csum is invalid. This causes driver to pass
      packet to linux networking stack with CSUM_NONE, stack eventually drops
      the packet.
      
      There is a quirk in atlantic HW to enable correct processing of
      0xffff incorrect csum. Enable it.
      
      The visible bug is that windows link partner with software generated csums
      caused TCP connection to be unstable since all packets that csum value
      are dropped.
      Reported-by: default avatarDmitry Bezrukov <dmitry.bezrukov@aquantia.com>
      Signed-off-by: default avatarNikita Danilov <ndanilov@aquantia.com>
      Signed-off-by: default avatarIgor Russkikh <igor.russkikh@aquantia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      76f254d4
    • Dmitry Bogdanov's avatar
      net: aquantia: fix LRO with FCS error · eaeb3b74
      Dmitry Bogdanov authored
      Driver stops producing skbs on ring if a packet with FCS error
      was coalesced into LRO session. Ring gets hang forever.
      
      Thats a logical error in driver processing descriptors:
      When rx_stat indicates MAC Error, next pointer and eop flags
      are not filled. This confuses driver so it waits for descriptor 0
      to be filled by HW.
      
      Solution is fill next pointer and eop flag even for packets with FCS error.
      
      Fixes: bab6de8f ("net: ethernet: aquantia: Atlantic A0 and B0 specific functions.")
      Signed-off-by: default avatarIgor Russkikh <igor.russkikh@aquantia.com>
      Signed-off-by: default avatarDmitry Bogdanov <dmitry.bogdanov@aquantia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      eaeb3b74
    • Dmitry Bogdanov's avatar
      net: aquantia: check rx csum for all packets in LRO session · f38f1ee8
      Dmitry Bogdanov authored
      Atlantic hardware does not aggregate nor breaks LRO sessions
      with bad csum packets. This means driver should take care of that.
      
      If in LRO session there is a non-first descriptor with invalid
      checksum (L2/L3/L4), the driver must account this information
      in csum application logic.
      
      Fixes: 018423e9 ("net: ethernet: aquantia: Add ring support code")
      Signed-off-by: default avatarIgor Russkikh <igor.russkikh@aquantia.com>
      Signed-off-by: default avatarDmitry Bogdanov <dmitry.bogdanov@aquantia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f38f1ee8
    • Igor Russkikh's avatar
      net: aquantia: tx clean budget logic error · 31bafc49
      Igor Russkikh authored
      In case no other traffic happening on the ring, full tx cleanup
      may not be completed. That may cause socket buffer to overflow
      and tx traffic to stuck until next activity on the ring happens.
      
      This is due to logic error in budget variable decrementor.
      Variable is compared with zero, and then post decremented,
      causing it to become MAX_INT. Solution is remove decrementor
      from the `for` statement and rewrite it in a clear way.
      
      Fixes: b647d398 ("net: aquantia: Add tx clean budget and valid budget handling logic")
      Signed-off-by: default avatarIgor Russkikh <igor.russkikh@aquantia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      31bafc49
    • Kees Cook's avatar
      net: tulip: de4x5: Drop redundant MODULE_DEVICE_TABLE() · 3e66b7cc
      Kees Cook authored
      Building with Clang reports the redundant use of MODULE_DEVICE_TABLE():
      
      drivers/net/ethernet/dec/tulip/de4x5.c:2110:1: error: redefinition of '__mod_eisa__de4x5_eisa_ids_device_table'
      MODULE_DEVICE_TABLE(eisa, de4x5_eisa_ids);
      ^
      ./include/linux/module.h:229:21: note: expanded from macro 'MODULE_DEVICE_TABLE'
      extern typeof(name) __mod_##type##__##name##_device_table               \
                          ^
      <scratch space>:90:1: note: expanded from here
      __mod_eisa__de4x5_eisa_ids_device_table
      ^
      drivers/net/ethernet/dec/tulip/de4x5.c:2100:1: note: previous definition is here
      MODULE_DEVICE_TABLE(eisa, de4x5_eisa_ids);
      ^
      ./include/linux/module.h:229:21: note: expanded from macro 'MODULE_DEVICE_TABLE'
      extern typeof(name) __mod_##type##__##name##_device_table               \
                          ^
      <scratch space>:85:1: note: expanded from here
      __mod_eisa__de4x5_eisa_ids_device_table
      ^
      
      This drops the one further from the table definition to match the common
      use of MODULE_DEVICE_TABLE().
      
      Fixes: 07563c71 ("EISA bus MODALIAS attributes support")
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3e66b7cc
    • David S. Miller's avatar
      Merge branch 'net-tls-two-fixes-for-rx_list-pre-handling' · b933dc36
      David S. Miller authored
      Jakub Kicinski says:
      
      ====================
      net/tls: two fixes for rx_list pre-handling
      
      tls_sw_recvmsg() had been modified to cater better to async decrypt.
      Partially read records now live on the rx_list. Data is copied from
      this list before the old do {} while loop, and the not included
      correctly in deciding whether to sleep or not and lowat threshold
      handling. These modifications, unfortunately, added some bugs.
      
      First patch fixes lowat - we need to calculate the threshold early
      and make sure all copied data is compared to the threshold, not just
      the freshly decrypted data.
      
      Third patch fixes sleep - if data is picked up from rx_list and
      no flags are set, we should not put the process to sleep, but
      rather return the partial read.
      
      Patches 2 and 4 add test cases for these bugs, both will cause
      a sleep and test timeout before the fix.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b933dc36