AMD/IOMMU: drop stray TLB flush

I think this flush was overlooked when flushing was moved out of the
core (un)mapping functions. The flush the caller is required to invoke
anyway will satisfy the needs resulting from the splitting of a
superpage.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
This commit is contained in:
Jan Beulich committed 2022-04-22 14:54:59 +02:00
1 parent 36992d809d
commit c8a25eb617
1 file changed
+5 -4
+5 -4
View File
@@ -240,7 +240,7 @@ void __init iommu_dte_add_device_entry(struct amd_iommu_dte *dte,
*/
static int iommu_pde_from_dfn(struct domain *d, unsigned long dfn,
unsigned int target, unsigned long *pt_mfn,
bool map)
unsigned int *flush_flags, bool map)
{
union amd_iommu_pte *pde, *next_table_vaddr;
unsigned long next_table_mfn;
@@ -301,7 +301,7 @@ static int iommu_pde_from_dfn(struct domain *d, unsigned long dfn,
set_iommu_pde_present(pde, next_table_mfn, next_level, true,
true);
amd_iommu_flush_all_pages(d);
*flush_flags |= IOMMU_FLUSHF_modified;
}
/* Install lower level page table for non-present entries */
@@ -374,7 +374,8 @@ int cf_check amd_iommu_map_page(
return rc;
}
if ( iommu_pde_from_dfn(d, dfn_x(dfn), 1, &pt_mfn, true) || !pt_mfn )
if ( iommu_pde_from_dfn(d, dfn_x(dfn), 1, &pt_mfn, flush_flags, true) ||
!pt_mfn )
{
spin_unlock(&hd->arch.mapping_lock);
AMD_IOMMU_ERROR("invalid IO pagetable entry dfn = %"PRI_dfn"\n",
@@ -407,7 +408,7 @@ int cf_check amd_iommu_unmap_page(
return 0;
}
if ( iommu_pde_from_dfn(d, dfn_x(dfn), 1, &pt_mfn, false) )
if ( iommu_pde_from_dfn(d, dfn_x(dfn), 1, &pt_mfn, flush_flags, false) )
{
spin_unlock(&hd->arch.mapping_lock);
AMD_IOMMU_ERROR("invalid IO pagetable entry dfn = %"PRI_dfn"\n",
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.