[GIT PULL] dma-mapping updates for Linux 6.10
From: Christoph Hellwig
Date: Mon May 20 2024 - 10:05:50 EST
Note that the the dma sync optimizations reach into the networking code
and promptly caused a conflict where the netdev tree constifies the page
argument to page_pool_dma_sync_for_device and this tree renames that
function to page_pool_dma_sync_for_device. The dma-mapping version of
the merge just works, but you might want to pick the contification
manually if you think it is useful.
The following changes since commit e67572cd2204894179d89bd7b984072f19313b03:
Linux 6.9-rc6 (2024-04-28 13:47:24 -0700)
are available in the Git repository at:
git://git.infradead.org/users/hch/dma-mapping.git tags/dma-mapping-6.10-2024-05-20
for you to fetch changes up to a6016aac5252da9d22a4dc0b98121b0acdf6d2f5:
dma: fix DMA sync for drivers not calling dma_set_mask*() (2024-05-09 19:00:29 +0200)
----------------------------------------------------------------
dma-mapping updates for Linux 6.10
- optimize DMA sync calls when they are no-ops (Alexander Lobakin)
- fix swiotlb padding for untrusted devices (Michael Kelley)
- add documentation for swiotb (Michael Kelley)
----------------------------------------------------------------
Alexander Lobakin (8):
dma: compile-out DMA sync op calls when not used
dma: avoid redundant calls for sync operations
iommu/dma: avoid expensive indirect calls for sync operations
page_pool: make sure frag API fields don't span between cachelines
page_pool: don't use driver-set flags field directly
page_pool: check for DMA sync shortcut earlier
xsk: use generic DMA sync shortcut instead of a custom one
dma: fix DMA sync for drivers not calling dma_set_mask*()
Michael Kelley (3):
Documentation/core-api: add swiotlb documentation
swiotlb: remove alloc_size argument to swiotlb_tbl_map_single()
iommu/dma: fix zeroing of bounce buffer padding used by untrusted devices
Documentation/core-api/index.rst | 1 +
Documentation/core-api/swiotlb.rst | 321 +++++++++++++++++++++
drivers/iommu/dma-iommu.c | 34 ++-
drivers/net/ethernet/engleder/tsnep_main.c | 2 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-xsk.c | 2 +-
drivers/net/ethernet/intel/i40e/i40e_xsk.c | 2 +-
drivers/net/ethernet/intel/ice/ice_xsk.c | 2 +-
drivers/net/ethernet/intel/igc/igc_main.c | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 2 +-
.../net/ethernet/mellanox/mlx5/core/en/xsk/rx.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 2 +-
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +-
drivers/xen/swiotlb-xen.c | 2 +-
include/linux/device.h | 4 +
include/linux/dma-map-ops.h | 12 +
include/linux/dma-mapping.h | 105 +++++--
include/linux/iova.h | 5 +
include/linux/swiotlb.h | 2 +-
include/net/page_pool/types.h | 25 +-
include/net/xdp_sock_drv.h | 7 +-
include/net/xsk_buff_pool.h | 14 +-
kernel/dma/Kconfig | 5 +
kernel/dma/mapping.c | 69 +++--
kernel/dma/swiotlb.c | 62 +++-
net/core/page_pool.c | 78 +++--
net/xdp/xsk_buff_pool.c | 29 +-
27 files changed, 634 insertions(+), 163 deletions(-)
create mode 100644 Documentation/core-api/swiotlb.rst