]> xenbits.xensource.com Git - xen.git/commitdiff
iommu/crash: Interrupt remapping is also disabled on crash
authorAndrew Cooper <andrew.cooper3@citrix.com>
Thu, 18 Apr 2013 13:26:28 +0000 (15:26 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 18 Apr 2013 13:26:28 +0000 (15:26 +0200)
This fixes a regression side-effect caused by:
  IOMMU: properly check whether interrupt remapping is enabled
    git: fae0372140befb88d890a30704a8ec058c902af8
     hg: 26742:e1ec14bad0cb

On the crash path in nmi_shootdown_cpus(), we shut down the IOMMU, then
disable the IOAPIC.

On systems which support interrupt remapping, the variable iommu_intremap
remains set, meaning that disable_IO_APIC() issues interrupt remapping
invalidate requests.

IOAPIC interrupt remapping used to be conditional on iommu_enabled, but is now
conditional on iommu_intremap, following the above changeset.

This behaviour can be fixed by also indicating that interrupt remapping is not
enabled after shutting down the IOMMU.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
master commit: 53fd1d8458de01169dfb56feb315f02c2b521a86
master date: 2013-04-16 10:34:32 +0200

xen/drivers/passthrough/iommu.c

index 4e275a6e406b8920de157d6bac978261ca1687e1..159dce9892000a0c716262b5b8f3d95ba7a36950 100644 (file)
@@ -531,7 +531,7 @@ void iommu_crash_shutdown(void)
     const struct iommu_ops *ops = iommu_get_ops();
     if ( iommu_enabled )
         ops->crash_shutdown();
-    iommu_enabled = 0;
+    iommu_enabled = iommu_intremap = 0;
 }
 
 int iommu_do_domctl(