Messages in this thread Patch in this message | | | Date | Mon, 4 Apr 2022 09:54:37 -0700 | From | Christoph Hellwig <> | Subject | Re: [PATCH 0/2] Fix issues with untrusted devices and AMD IOMMU |
| |
On Mon, Apr 04, 2022 at 11:47:05AM -0500, Mario Limonciello wrote: > The bounce buffers were originally set up, but torn down during > the boot process. > * This happens because as part of IOMMU initialization > `amd_iommu_init_dma_ops` gets called and resets the global swiotlb to 0. > * When late_init gets called `pci_swiotlb_late_init` `swiotlb_exit` is > called and the buffers are torn down.
I think the proper thing is to do this:
diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index a1ada7bff44e6..079694f894b85 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -1838,17 +1838,10 @@ void amd_iommu_domain_update(struct protection_domain *domain) amd_iommu_domain_flush_complete(domain); } -static void __init amd_iommu_init_dma_ops(void) -{ - swiotlb = (iommu_default_passthrough() || sme_me_mask) ? 1 : 0; -} - int __init amd_iommu_init_api(void) { int err; - amd_iommu_init_dma_ops(); - err = bus_set_iommu(&pci_bus_type, &amd_iommu_ops); if (err) return err;
| |