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

[Xen-changelog] [xen staging] iommu: fix iommu_ops initialization



commit 88b92c3820cffed4b4abeb139edc2cbd8286cb12
Author:     Juergen Gross <jgross@xxxxxxxx>
AuthorDate: Tue Feb 12 11:54:07 2019 +0100
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Tue Feb 12 11:54:07 2019 +0100

    iommu: fix iommu_ops initialization
    
    Commit 32a5ea00ec75ef53e ("IOMMU/x86: remove indirection from certain
    IOMMU hook accesses") introduced iommu_ops initialized at boot time
    with data declared as __initconstrel.
    
    On Intel systems there is another path where iommu_ops is initialized
    and this path is relevant on resume after returning from system suspend.
    As the initialization data is no longer accessible in this case that
    second initialization must be dropped in case the system isn't just
    booting.
    
    Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
    Acked-by: Kevin Tian <kevin.tian@xxxxxxxxx>
    Release-acked-by: Juergen Gross <jgross@xxxxxxxx>
---
 xen/drivers/passthrough/vtd/intremap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/passthrough/vtd/intremap.c 
b/xen/drivers/passthrough/vtd/intremap.c
index a0663ecd22..838268d772 100644
--- a/xen/drivers/passthrough/vtd/intremap.c
+++ b/xen/drivers/passthrough/vtd/intremap.c
@@ -893,12 +893,12 @@ int iommu_enable_x2apic_IR(void)
 
         if ( !platform_supports_x2apic() )
             return -ENXIO;
+
+        iommu_ops = intel_iommu_ops;
     }
     else if ( !x2apic_enabled )
         return -EOPNOTSUPP;
 
-    iommu_ops = intel_iommu_ops;
-
     for_each_drhd_unit ( drhd )
     {
         iommu = drhd->iommu;
--
generated by git-patchbot for /home/xen/git/xen.git#staging

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

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