diff options
author | 2024-10-30 06:35:45 +0000 | |
---|---|---|
committer | 2024-10-30 11:06:39 +0100 | |
commit | 016991606aa01c4d92e6941be636c0c897aa05c7 (patch) | |
tree | 5c58748615a97512be7694676dc6aab542937929 | |
parent | Merge branch 'core' into amd/amd-vi (diff) | |
download | wireguard-linux-016991606aa01c4d92e6941be636c0c897aa05c7.tar.xz wireguard-linux-016991606aa01c4d92e6941be636c0c897aa05c7.zip |
iommu/amd/pgtbl_v2: Take protection domain lock before invalidating TLB
Commit c7fc12354be0 ("iommu/amd/pgtbl_v2: Invalidate updated page ranges
only") missed to take domain lock before calling
amd_iommu_domain_flush_pages(). Fix this by taking protection domain
lock before calling TLB invalidation function.
Fixes: c7fc12354be0 ("iommu/amd/pgtbl_v2: Invalidate updated page ranges only")
Signed-off-by: Vasant Hegde <vasant.hegde@amd.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/20241030063556.6104-2-vasant.hegde@amd.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
-rw-r--r-- | drivers/iommu/amd/io_pgtable_v2.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/iommu/amd/io_pgtable_v2.c b/drivers/iommu/amd/io_pgtable_v2.c index 25b9042fa453..c616de2c5926 100644 --- a/drivers/iommu/amd/io_pgtable_v2.c +++ b/drivers/iommu/amd/io_pgtable_v2.c @@ -268,8 +268,11 @@ static int iommu_v2_map_pages(struct io_pgtable_ops *ops, unsigned long iova, out: if (updated) { struct protection_domain *pdom = io_pgtable_ops_to_domain(ops); + unsigned long flags; + spin_lock_irqsave(&pdom->lock, flags); amd_iommu_domain_flush_pages(pdom, o_iova, size); + spin_unlock_irqrestore(&pdom->lock, flags); } if (mapped) |