[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-4.1-testing] AMD, IOMMU: Make per-device interrupt remapping table default
# HG changeset patch # User Boris Ostrovsky <boris.ostrovsky@xxxxxxx> # Date 1360074994 -3600 # Node ID e5ed73d172eb8941bee2e632c5a243c3fe8c0d46 # Parent 5c0fe82d6060292d2eb2b1834b064eca2447d25f AMD,IOMMU: Make per-device interrupt remapping table default Using global interrupt remapping table may be insecure, as described by XSA-36. This patch makes per-device mode default. This is XSA-36 / CVE-2013-0153. Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxx> Moved warning in amd_iov_detect() to location covering all cases. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> xen-unstable changeset: 26519:1af531e7bc2f xen-unstable date: Tue Feb 5 14:22:11 UTC 2013 --- diff -r 5c0fe82d6060 -r e5ed73d172eb xen/arch/x86/irq.c --- a/xen/arch/x86/irq.c Tue Feb 05 15:36:11 2013 +0100 +++ b/xen/arch/x86/irq.c Tue Feb 05 15:36:34 2013 +0100 @@ -1677,9 +1677,6 @@ int map_domain_pirq( d->arch.pirq_irq[pirq] = irq; d->arch.irq_pirq[irq] = pirq; spin_unlock_irqrestore(&desc->lock, flags); - - if ( opt_irq_vector_map == OPT_IRQ_VECTOR_MAP_PERDEV ) - printk(XENLOG_INFO "Per-device vector maps for GSIs not implemented yet.\n"); } done: diff -r 5c0fe82d6060 -r e5ed73d172eb xen/drivers/passthrough/amd/pci_amd_iommu.c --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c Tue Feb 05 15:36:11 2013 +0100 +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c Tue Feb 05 15:36:34 2013 +0100 @@ -195,6 +195,8 @@ int __init amd_iov_detect(void) { printk("AMD-Vi: Not overriding irq_vector_map setting\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(); } diff -r 5c0fe82d6060 -r e5ed73d172eb xen/drivers/passthrough/iommu.c --- a/xen/drivers/passthrough/iommu.c Tue Feb 05 15:36:11 2013 +0100 +++ b/xen/drivers/passthrough/iommu.c Tue Feb 05 15:36:34 2013 +0100 @@ -49,7 +49,7 @@ bool_t __read_mostly iommu_qinval = 1; bool_t __read_mostly iommu_intremap = 1; bool_t __read_mostly iommu_hap_pt_share; bool_t __read_mostly amd_iommu_debug; -bool_t __read_mostly amd_iommu_perdev_intremap; +bool_t __read_mostly amd_iommu_perdev_intremap = 1; static void __init parse_iommu_param(char *s) { @@ -78,6 +78,8 @@ static void __init parse_iommu_param(cha amd_iommu_debug = 1; else if ( !strcmp(s, "amd-iommu-perdev-intremap") ) amd_iommu_perdev_intremap = 1; + else if ( !strcmp(s, "amd-iommu-global-intremap") ) + amd_iommu_perdev_intremap = 0; else if ( !strcmp(s, "dom0-passthrough") ) iommu_passthrough = 1; else if ( !strcmp(s, "dom0-strict") ) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |