Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'iommu-fixes-v4.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu

Pull IOMMU fixes from Joerg Roedel:

- keep an important data structure in the Exynos driver around after
kernel-init to fix a kernel-oops

- keep SWIOTLB enabled when SME is active in the AMD IOMMU driver

- add a missing IOTLB sync to the AMD IOMMU driver

* tag 'iommu-fixes-v4.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
iommu/amd: Finish TLB flush in amd_iommu_unmap()
iommu/exynos: Remove initconst attribute to avoid potential kernel oops
iommu/amd: Do not disable SWIOTLB if SME is active

+8 -5
+7 -4
drivers/iommu/amd_iommu.c
··· 2773 2773 2774 2774 int __init amd_iommu_init_dma_ops(void) 2775 2775 { 2776 - swiotlb = iommu_pass_through ? 1 : 0; 2776 + swiotlb = (iommu_pass_through || sme_me_mask) ? 1 : 0; 2777 2777 iommu_detected = 1; 2778 2778 2779 2779 /* 2780 2780 * In case we don't initialize SWIOTLB (actually the common case 2781 - * when AMD IOMMU is enabled), make sure there are global 2782 - * dma_ops set as a fall-back for devices not handled by this 2783 - * driver (for example non-PCI devices). 2781 + * when AMD IOMMU is enabled and SME is not active), make sure there 2782 + * are global dma_ops set as a fall-back for devices not handled by 2783 + * this driver (for example non-PCI devices). When SME is active, 2784 + * make sure that swiotlb variable remains set so the global dma_ops 2785 + * continue to be SWIOTLB. 2784 2786 */ 2785 2787 if (!swiotlb) 2786 2788 dma_ops = &nommu_dma_ops; ··· 3048 3046 mutex_unlock(&domain->api_lock); 3049 3047 3050 3048 domain_flush_tlb_pde(domain); 3049 + domain_flush_complete(domain); 3051 3050 3052 3051 return unmap_size; 3053 3052 }
+1 -1
drivers/iommu/exynos-iommu.c
··· 709 709 pm_runtime_force_resume) 710 710 }; 711 711 712 - static const struct of_device_id sysmmu_of_match[] __initconst = { 712 + static const struct of_device_id sysmmu_of_match[] = { 713 713 { .compatible = "samsung,exynos-sysmmu", }, 714 714 { }, 715 715 };