mirror of
https://github.com/torvalds/linux.git
synced 2024-11-16 00:52:01 +00:00
121660bba6
Previously the AMD IOMMU would only enable SWIOTLB in certain
circumstances:
* IOMMU in passthrough mode
* SME enabled
This logic however doesn't work when an untrusted device is plugged in
that doesn't do page aligned DMA transactions. The expectation is
that a bounce buffer is used for those transactions.
This fails like this:
swiotlb buffer is full (sz: 4096 bytes), total 0 (slots), used 0 (slots)
That happens because the bounce buffers have been allocated, followed by
freed during startup but the bounce buffering code expects that all IOMMUs
have left it enabled.
Remove the criteria to set up bounce buffers on AMD systems to ensure
they're always available for supporting untrusted devices.
Fixes:
|
||
---|---|---|
.. | ||
amd_iommu_types.h | ||
amd_iommu.h | ||
debugfs.c | ||
init.c | ||
io_pgtable.c | ||
iommu_v2.c | ||
iommu.c | ||
Kconfig | ||
Makefile | ||
quirks.c |