1. 05 Jul, 2017 1 commit
  2. 30 Mar, 2017 1 commit
    • Lendacky, Thomas's avatar
      amd-xgbe: Fix jumbo MTU processing on newer hardware · fafc9555
      Lendacky, Thomas authored
      [ Upstream commit 622c36f1
      
       ]
      
      Newer hardware does not provide a cumulative payload length when multiple
      descriptors are needed to handle the data. Once the MTU increases beyond
      the size that can be handled by a single descriptor, the SKB does not get
      built properly by the driver.
      
      The driver will now calculate the size of the data buffers used by the
      hardware.  The first buffer of the first descriptor is for packet headers
      or packet headers and data when the headers can't be split. Subsequent
      descriptors in a multi-descriptor chain will not use the first buffer. The
      second buffer is used by all the descriptors in the chain for payload data.
      Based on whether the driver is processing the first, intermediate, or last
      descriptor it can calculate the buffer usage and build the SKB properly.
      
      Tested and verified on both old and new hardware.
      Signed-off-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fafc9555
  3. 17 Feb, 2016 6 commits
  4. 15 Dec, 2015 1 commit
  5. 28 Oct, 2015 1 commit
  6. 23 Oct, 2015 1 commit
    • Lendacky, Thomas's avatar
      amd-xgbe: Use wmb before updating current descriptor count · 20a41fba
      Lendacky, Thomas authored
      
      
      The code currently uses the lightweight dma_wmb barrier before updating
      the current descriptor count. Under heavy load, the Tx cleanup routine
      was seeing the updated current descriptor count before the updated
      descriptor information. As a result, the Tx descriptor was being cleaned
      up before it was used because it was not "owned" by the hardware yet,
      resulting in a Tx queue hang.
      
      Using the wmb barrier insures that the descriptor is updated before the
      descriptor counter preventing the Tx queue hang. For extra insurance,
      the Tx cleanup routine is changed to grab the current decriptor count on
      entry and uses that initial value in the processing loop rather than
      trying to chase the current value.
      Signed-off-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
      Tested-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      20a41fba
  7. 05 Oct, 2015 2 commits
  8. 08 Jul, 2015 1 commit
  9. 15 May, 2015 3 commits
  10. 09 Apr, 2015 2 commits
  11. 20 Mar, 2015 3 commits
  12. 24 Jan, 2015 1 commit
  13. 17 Jan, 2015 4 commits
  14. 21 Nov, 2014 7 commits
  15. 13 Nov, 2014 1 commit
  16. 06 Nov, 2014 5 commits