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

[Xen-changelog] [xen master] AMD IOMMU: untie remap and vector maps



commit 561e0f86660f10db492c1ead1cd772013a6cc32d
Author:     Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Tue Jul 16 11:54:07 2013 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Tue Jul 16 11:54:07 2013 +0200

    AMD IOMMU: untie remap and vector maps
    
    With the specific IRTEs used for an interrupt no longer depending on
    the vector, there's no need to tie the remap sharing model to the
    vector sharing one.
    
    Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
    Acked-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
    Acked-by: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx>
---
 xen/drivers/passthrough/amd/pci_amd_iommu.c |   44 ---------------------------
 1 files changed, 0 insertions(+), 44 deletions(-)

diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c 
b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index b64af2a..9684ae8 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -207,50 +207,6 @@ int __init amd_iov_detect(void)
 
     init_done = 1;
 
-    /*
-     * AMD IOMMUs don't distinguish between vectors destined for
-     * different cpus when doing interrupt remapping.  This means
-     * that interrupts going through the same intremap table
-     * can't share the same vector.
-     *
-     * If irq_vector_map isn't specified, choose a sensible default:
-     * - If we're using per-device interemap tables, per-device
-     *   vector non-sharing maps
-     * - If we're using a global interemap table, global vector
-     *   non-sharing map
-     */
-    if ( opt_irq_vector_map == OPT_IRQ_VECTOR_MAP_DEFAULT )
-    {
-        if ( amd_iommu_perdev_intremap )
-        {
-            /* Per-device vector map logic is broken for devices with multiple
-             * MSI-X interrupts (and would also be for multiple MSI, if Xen
-             * supported it).
-             *
-             * Until this is fixed, use global vector tables as far as the irq
-             * logic is concerned to avoid the buggy behaviour of per-device
-             * maps in map_domain_pirq(), and use per-device tables as far as
-             * intremap code is concerned to avoid the security issue.
-             */
-            printk(XENLOG_WARNING "AMD-Vi: per-device vector map logic is 
broken.  "
-                   "Using per-device-global maps instead until a fix is 
found.\n");
-
-            opt_irq_vector_map = OPT_IRQ_VECTOR_MAP_GLOBAL;
-        }
-        else
-        {
-            printk("AMD-Vi: Enabling global vector map\n");
-            opt_irq_vector_map = OPT_IRQ_VECTOR_MAP_GLOBAL;
-        }
-    }
-    else
-    {
-        printk("AMD-Vi: Not overriding irq_vector_map setting\n");
-
-        if ( opt_irq_vector_map != OPT_IRQ_VECTOR_MAP_GLOBAL )
-            printk(XENLOG_WARNING "AMD-Vi: per-device vector map logic is 
broken.  "
-                   "Use irq_vector_map=global to work around.\n");
-    }
     if ( !amd_iommu_perdev_intremap )
         printk(XENLOG_WARNING "AMD-Vi: Using global interrupt remap table is 
not recommended (see XSA-36)!\n");
     return scan_pci_devices();
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

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