Forum | Documentation | Website | Blog

Skip to content
Snippets Groups Projects
  1. Jul 22, 2021
  2. Jul 21, 2021
  3. Jul 20, 2021
    • Markus Boehme's avatar
      ixgbe: Fix packet corruption due to missing DMA sync · 09cfae9f
      Markus Boehme authored
      When receiving a packet with multiple fragments, hardware may still
      touch the first fragment until the entire packet has been received. The
      driver therefore keeps the first fragment mapped for DMA until end of
      packet has been asserted, and delays its dma_sync call until then.
      
      The driver tries to fit multiple receive buffers on one page. When using
      3K receive buffers (e.g. using Jumbo frames and legacy-rx is turned
      off/build_skb is being used) on an architecture with 4K pages, the
      driver allocates an order 1 compound page and uses one page per receive
      buffer. To determine the correct offset for a delayed DMA sync of the
      first fragment of a multi-fragment packet, the driver then cannot just
      use PAGE_MASK on the DMA address but has to construct a mask based on
      the actual size of the backing page.
      
      Using PAGE_MASK in the 3K RX buffer/4K page architecture configuration
      will always sync the first page of a compound page. With the SWIOTLB
      enabled this can lead to corrupted packets (zeroed out first fragment,
      re-used garbage from another packet) and various consequences, such as
      slow/stalling data transfers and connection resets. For example, testing
      on a link with MTU exceeding 3058 bytes on a host with SWIOTLB enabled
      (e.g. "iommu=soft swiotlb=262144,force") TCP transfers quickly fizzle
      out without this patch.
      
      Cc: stable@vger.kernel.org
      Fixes: 0c5661ec
      
       ("ixgbe: fix crash in build_skb Rx code path")
      Signed-off-by: default avatarMarkus Boehme <markubo@amazon.com>
      Tested-by: default avatarTony Brelinski <tonyx.brelinski@intel.com>
      Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      09cfae9f
    • Heiko Carstens's avatar
      s390: update defconfigs · 0cde560a
      Heiko Carstens authored
      
      Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      0cde560a
    • kernel test robot's avatar
      s390/cpumf: fix semicolon.cocci warnings · 7d244643
      kernel test robot authored
      arch/s390/kernel/perf_cpum_cf.c:748:2-3: Unneeded semicolon
      
       Remove unneeded semicolon.
      
      Generated by: scripts/coccinelle/misc/semicolon.cocci
      
      Fixes: a029a4ea
      
       ("s390/cpumf: Allow concurrent access for CPU Measurement Counter Facility")
      CC: Thomas Richter <tmricht@linux.ibm.com>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      7d244643
    • Alexander Egorenkov's avatar
      s390/boot: fix use of expolines in the DMA code · 463f36c7
      Alexander Egorenkov authored
      The DMA code section of the decompressor must be compiled with expolines
      if Spectre V2 mitigation has been enabled for the decompressed kernel.
      This is required because although the decompressor's image contains
      the DMA code section, it is handed over to the decompressed kernel for use.
      
      Because the DMA code is already slow w/o expolines, use expolines always
      regardless whether the decompressed kernel is using them or not. This
      simplifies the DMA code by dropping the conditional compilation of
      expolines.
      
      Fixes: bf726301
      
       ("s390: use proper expoline sections for .dma code")
      Cc: <stable@vger.kernel.org> # 5.2
      Signed-off-by: default avatarAlexander Egorenkov <egorenar@linux.ibm.com>
      Reviewed-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      463f36c7
    • Jia He's avatar
      Revert "qed: fix possible unpaired spin_{un}lock_bh in _qed_mcp_cmd_and_union()" · 91bed556
      Jia He authored
      This reverts commit 6206b798.
      
      That patch added additional spin_{un}lock_bh(), which was harmless
      but pointless. The orginal code path has guaranteed the pair of
      spin_{un}lock_bh().
      
      We'd better revert it before we find the exact root cause of the
      bug_on mentioned in that patch.
      
      Fixes: 6206b798
      
       ("qed: fix possible unpaired spin_{un}lock_bh in _qed_mcp_cmd_and_union()")
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Prabhakar Kushwaha <pkushwaha@marvell.com>
      Signed-off-by: default avatarJia He <justin.he@arm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      91bed556