From: Joerg Roedel Date: Mon, 12 Dec 2022 11:50:53 +0000 (+0100) Subject: Merge branches 'arm/allwinner', 'arm/exynos', 'arm/mediatek', 'arm/rockchip', 'arm... X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=e3eca2e4f6489ed3143c80ce90bfa7ef7e12ebc7;p=linux.git Merge branches 'arm/allwinner', 'arm/exynos', 'arm/mediatek', 'arm/rockchip', 'arm/smmu', 'ppc/pamu', 's390', 'x86/vt-d', 'x86/amd' and 'core' into next --- e3eca2e4f6489ed3143c80ce90bfa7ef7e12ebc7 diff --cc drivers/iommu/intel/iommu.c index 644ca49e8cf80,48cdcd0a5cf34,48cdcd0a5cf34,48cdcd0a5cf34,48cdcd0a5cf34,48cdcd0a5cf34,48cdcd0a5cf34,48cdcd0a5cf34,a3db7ac3d60c1,48cdcd0a5cf34,f298e51d5aa67..5fa52a03069f0 --- a/drivers/iommu/intel/iommu.c +++ b/drivers/iommu/intel/iommu.c @@@@@@@@@@@@ -959,9 -959,11 -959,11 -959,11 -959,11 -959,11 -959,11 -959,11 -942,9 -959,11 -959,11 +942,9 @@@@@@@@@@@@ static struct dma_pte *pfn_to_dma_pte(s domain_flush_cache(domain, tmp_page, VTD_PAGE_SIZE); pteval = ((uint64_t)virt_to_dma_pfn(tmp_page) << VTD_PAGE_SHIFT) | DMA_PTE_READ | DMA_PTE_WRITE; - if (domain_use_first_level(domain)) ------- -- if (domain_use_first_level(domain)) { ------- -- pteval |= DMA_FL_PTE_XD | DMA_FL_PTE_US; ------- -- if (iommu_is_dma_domain(&domain->domain)) ------- -- pteval |= DMA_FL_PTE_ACCESS; ------- -- } ++++++++ ++ if (domain->use_first_level) +++++++ ++ pteval |= DMA_FL_PTE_XD | DMA_FL_PTE_US | DMA_FL_PTE_ACCESS; +++++++ ++ if (cmpxchg64(&pte->val, 0ULL, pteval)) /* Someone else set it while we were thinking; use theirs. */ free_pgtable_page(tmp_page);