[v5,0/6] Fix double allocation in swiotlb_alloc()

Message ID 20240228133930.15400-1-will@kernel.org
Headers
Series Fix double allocation in swiotlb_alloc() |

Message

Will Deacon Feb. 28, 2024, 1:39 p.m. UTC
  Hi all,

This is version five of the patches which I previously posted at:

v1: https://lore.kernel.org/r/20240126151956.10014-1-will@kernel.org
v2: https://lore.kernel.org/r/20240131122543.14791-1-will@kernel.org
v3: https://lore.kernel.org/r/20240205190127.20685-1-will@kernel.org
v4: https://lore.kernel.org/r/20240221113504.7161-1-will@kernel.org

Cheers again to everybody who helped to review and test the last
version.

Changes since v4 include:

  - Remove unnecessary 'is_swiotlb_active()' from patch 5.
    Nicolin: I didn't add your Tested-by because of this, so if you can
    take it for another spin, that would be fantastic.

  - New patch removing redundant stride adjustment for allocations
    of PAGE_SIZE or more.

  - Commit message tweaks and addition of tags from reviewers and
    testers.

The final patch is a cleanup, so I'm happy to post it again after the
merge window if it doesn't make it this time around. The rest are fixes
and, even though patch five doesn't solve the general problem, it's
sufficient to fix NVME for Nicolin and is definitely an improvement over
what we currently have.

Thanks,

Will

Cc: iommu@lists.linux.dev
Cc: Christoph Hellwig <hch@lst.de>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Petr Tesarik <petr.tesarik1@huawei-partners.com>
Cc: Dexuan Cui <decui@microsoft.com>
Cc: Nicolin Chen <nicolinc@nvidia.com>
Cc: Michael Kelley <mhklinux@outlook.com>

--->8

Nicolin Chen (1):
  iommu/dma: Force swiotlb_max_mapping_size on an untrusted device

Will Deacon (5):
  swiotlb: Fix double-allocation of slots due to broken alignment
    handling
  swiotlb: Enforce page alignment in swiotlb_alloc()
  swiotlb: Honour dma_alloc_coherent() alignment in swiotlb_alloc()
  swiotlb: Fix alignment checks when both allocation and DMA masks are
    present
  swiotlb: Remove pointless stride adjustment for allocations >=
    PAGE_SIZE

 drivers/iommu/dma-iommu.c |  9 +++++++++
 kernel/dma/swiotlb.c      | 36 +++++++++++++++++++++++-------------
 2 files changed, 32 insertions(+), 13 deletions(-)