mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 08:43:31 +00:00
![]() A huge update this time, but a lot of that is just consolidating or removing code: - provide a common DMA_MAPPING_ERROR definition and avoid indirect calls for dma_map_* error checking - use direct calls for the DMA direct mapping case, avoiding huge retpoline overhead for high performance workloads - merge the swiotlb dma_map_ops into dma-direct - provide a generic remapping DMA consistent allocator for architectures that have devices that perform DMA that is not cache coherent. Based on the existing arm64 implementation and also used for csky now. - improve the dma-debug infrastructure, including dynamic allocation of entries (Robin Murphy) - default to providing chaining scatterlist everywhere, with opt-outs for the few architectures (alpha, parisc, most arm32 variants) that can't cope with it - misc sparc32 dma-related cleanups - remove the dma_mark_clean arch hook used by swiotlb on ia64 and replace it with the generic noncoherent infrastructure - fix the return type of dma_set_max_seg_size (Niklas Söderlund) - move the dummy dma ops for not DMA capable devices from arm64 to common code (Robin Murphy) - ensure dma_alloc_coherent returns zeroed memory to avoid kernel data leaks through userspace. We already did this for most common architectures, but this ensures we do it everywhere. dma_zalloc_coherent has been deprecated and can hopefully be removed after -rc1 with a coccinelle script. -----BEGIN PGP SIGNATURE----- iQI/BAABCgApFiEEgdbnc3r/njty3Iq9D55TZVIEUYMFAlwctQgLHGhjaEBsc3Qu ZGUACgkQD55TZVIEUYMxgQ//dBpAfS4/J76CdAbYry2zqgcOUU9hIrD6NHiEMWov ltJxyvEl3LsUmIdEj3aCrYL9jZN0qsnCzn5BVj2c3jDIVgD64fAr7HDf/PbEEfKb j6/GgEnVLPZV+sQMvhNA5jOzHrkseaqPa4/pNLFZ/l8jnuZ2d+btusDWJpMoVDer TXVwtIfgeIu0gTygYOShLYXd5qptWKWsZEpbTZOO2sE6+x+ZJX7yQYUxYDTlcOIj JWVO2l5QNHPc5T9o2at+6L5aNUvnZOxT79sWgyZLn0Kc+FagKAVwfLqUEl0v7foG 8k/xca5/8p3afB1DfrIrtplJqis7cVgdyGxriwuuoO8X4F0nPyWwpGmxsBhrWwwl xTqC4UorEJ7QwoP6Azopk/vYI2QXIUBLjuCJCuFXZj9+2BGf4IfvBY1S2cLM9qLs HMcxQonuXJii044KEFS96ePEuiT+igVINweIFBKWcgNCEG0UQtyL6RQ1U5297ipF JiWZAqD+p9X52UdKS+oKfAiZEekMXn6Xyo97+YCiNpfOo0GP5eEcwhL+JpY4AiRq apPXtsRy2o1s8yfjdraUIM2Mc2n62vFKb35oUbGCd/QO9piPrFQHl6T0HHcHk4YR XrUXcHieFZBCYqh7ZVa4RL8Msq1wvGuTL4Dxl43mXdsMoUFRR6eSNWLoAV4IpOLZ WgA= =in72 -----END PGP SIGNATURE----- Merge tag 'dma-mapping-4.21' of git://git.infradead.org/users/hch/dma-mapping Pull DMA mapping updates from Christoph Hellwig: "A huge update this time, but a lot of that is just consolidating or removing code: - provide a common DMA_MAPPING_ERROR definition and avoid indirect calls for dma_map_* error checking - use direct calls for the DMA direct mapping case, avoiding huge retpoline overhead for high performance workloads - merge the swiotlb dma_map_ops into dma-direct - provide a generic remapping DMA consistent allocator for architectures that have devices that perform DMA that is not cache coherent. Based on the existing arm64 implementation and also used for csky now. - improve the dma-debug infrastructure, including dynamic allocation of entries (Robin Murphy) - default to providing chaining scatterlist everywhere, with opt-outs for the few architectures (alpha, parisc, most arm32 variants) that can't cope with it - misc sparc32 dma-related cleanups - remove the dma_mark_clean arch hook used by swiotlb on ia64 and replace it with the generic noncoherent infrastructure - fix the return type of dma_set_max_seg_size (Niklas Söderlund) - move the dummy dma ops for not DMA capable devices from arm64 to common code (Robin Murphy) - ensure dma_alloc_coherent returns zeroed memory to avoid kernel data leaks through userspace. We already did this for most common architectures, but this ensures we do it everywhere. dma_zalloc_coherent has been deprecated and can hopefully be removed after -rc1 with a coccinelle script" * tag 'dma-mapping-4.21' of git://git.infradead.org/users/hch/dma-mapping: (73 commits) dma-mapping: fix inverted logic in dma_supported dma-mapping: deprecate dma_zalloc_coherent dma-mapping: zero memory returned from dma_alloc_* sparc/iommu: fix ->map_sg return value sparc/io-unit: fix ->map_sg return value arm64: default to the direct mapping in get_arch_dma_ops PCI: Remove unused attr variable in pci_dma_configure ia64: only select ARCH_HAS_DMA_COHERENT_TO_PFN if swiotlb is enabled dma-mapping: bypass indirect calls for dma-direct vmd: use the proper dma_* APIs instead of direct methods calls dma-direct: merge swiotlb_dma_ops into the dma_direct code dma-direct: use dma_direct_map_page to implement dma_direct_map_sg dma-direct: improve addressability error reporting swiotlb: remove dma_mark_clean swiotlb: remove SWIOTLB_MAP_ERROR ACPI / scan: Refactor _CCA enforcement dma-mapping: factor out dummy DMA ops dma-mapping: always build the direct mapping code dma-mapping: move dma_cache_sync out of line dma-mapping: move various slow path functions out of line ... |
||
---|---|---|
.. | ||
xen | ||
acenv.h | ||
acpi.h | ||
alternative.h | ||
arch_gicv3.h | ||
arch_timer.h | ||
arm-cci.h | ||
arm_dsu_pmu.h | ||
asm-bug.h | ||
asm-offsets.h | ||
asm-prototypes.h | ||
asm-uaccess.h | ||
assembler.h | ||
atomic.h | ||
atomic_ll_sc.h | ||
atomic_lse.h | ||
barrier.h | ||
bitops.h | ||
bitrev.h | ||
boot.h | ||
brk-imm.h | ||
bug.h | ||
cache.h | ||
cacheflush.h | ||
checksum.h | ||
clocksource.h | ||
cmpxchg.h | ||
compat.h | ||
cpu.h | ||
cpu_ops.h | ||
cpucaps.h | ||
cpufeature.h | ||
cpuidle.h | ||
cputype.h | ||
current.h | ||
daifflags.h | ||
dcc.h | ||
debug-monitors.h | ||
device.h | ||
dma-mapping.h | ||
dmi.h | ||
efi.h | ||
elf.h | ||
esr.h | ||
exception.h | ||
exec.h | ||
extable.h | ||
fb.h | ||
fixmap.h | ||
fpsimd.h | ||
fpsimdmacros.h | ||
ftrace.h | ||
futex.h | ||
hardirq.h | ||
hugetlb.h | ||
hw_breakpoint.h | ||
hwcap.h | ||
hypervisor.h | ||
image.h | ||
insn.h | ||
io.h | ||
irq.h | ||
irq_work.h | ||
irqflags.h | ||
jump_label.h | ||
kasan.h | ||
Kbuild | ||
kernel-pgtable.h | ||
kexec.h | ||
kgdb.h | ||
kprobes.h | ||
kvm_arm.h | ||
kvm_asm.h | ||
kvm_coproc.h | ||
kvm_emulate.h | ||
kvm_host.h | ||
kvm_hyp.h | ||
kvm_mmio.h | ||
kvm_mmu.h | ||
linkage.h | ||
lse.h | ||
memblock.h | ||
memory.h | ||
mmu.h | ||
mmu_context.h | ||
mmzone.h | ||
module.h | ||
neon-intrinsics.h | ||
neon.h | ||
numa.h | ||
page-def.h | ||
page.h | ||
paravirt.h | ||
pci.h | ||
percpu.h | ||
perf_event.h | ||
pgalloc.h | ||
pgtable-hwdef.h | ||
pgtable-prot.h | ||
pgtable-types.h | ||
pgtable.h | ||
pointer_auth.h | ||
preempt.h | ||
probes.h | ||
proc-fns.h | ||
processor.h | ||
ptdump.h | ||
ptrace.h | ||
sdei.h | ||
seccomp.h | ||
sections.h | ||
shmparam.h | ||
signal32.h | ||
simd.h | ||
smp.h | ||
smp_plat.h | ||
sparsemem.h | ||
spinlock.h | ||
spinlock_types.h | ||
stack_pointer.h | ||
stackprotector.h | ||
stacktrace.h | ||
stage2_pgtable.h | ||
stat.h | ||
string.h | ||
suspend.h | ||
sync_bitops.h | ||
syscall.h | ||
syscall_wrapper.h | ||
sysreg.h | ||
system_misc.h | ||
thread_info.h | ||
timex.h | ||
tlb.h | ||
tlbflush.h | ||
topology.h | ||
traps.h | ||
uaccess.h | ||
unistd.h | ||
unistd32.h | ||
uprobes.h | ||
vdso.h | ||
vdso_datapage.h | ||
virt.h | ||
vmap_stack.h | ||
word-at-a-time.h | ||
xor.h |