[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen stable-4.15] AMD/IOMMU: don't leave page table mapped when unmapping ...



commit 96894c14ca582b2d6ef50428ef3a24a89104faab
Author:     Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Wed Aug 25 14:50:57 2021 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Wed Aug 25 14:50:57 2021 +0200

    AMD/IOMMU: don't leave page table mapped when unmapping ...
    
    ... an already not mapped page. With all other exit paths doing the
    unmap, I have no idea how I managed to miss that aspect at the time.
    
    Fixes: ad591454f069 ("AMD/IOMMU: don't needlessly trigger errors/crashes 
when unmapping a page")
    Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
    Reviewed-by: Paul Durrant <paul@xxxxxxx>
    master commit: 3cfec6a6aa7a7bf68f8e19e21f450c2febe9acb4
    master date: 2021-08-20 12:30:35 +0200
---
 xen/drivers/passthrough/amd/iommu_map.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/drivers/passthrough/amd/iommu_map.c 
b/xen/drivers/passthrough/amd/iommu_map.c
index 2e7916b1e6..fdfffe8f92 100644
--- a/xen/drivers/passthrough/amd/iommu_map.c
+++ b/xen/drivers/passthrough/amd/iommu_map.c
@@ -243,7 +243,10 @@ static int iommu_pde_from_dfn(struct domain *d, unsigned 
long dfn,
         else if ( !pde->pr )
         {
             if ( !map )
+            {
+                unmap_domain_page(next_table_vaddr);
                 return 0;
+            }
 
             if ( next_table_mfn == 0 )
             {
--
generated by git-patchbot for /home/xen/git/xen.git#stable-4.15



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.