[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] vtd: only enable Interrupt Remapping if Queued Invalidation is also enabled.
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1237540255 0 # Node ID abb87a8387acbfd80a9e3475206f392db12e9c5e # Parent e5bed83d5180a37126ae60c3e7a43a5aff382b69 vtd: only enable Interrupt Remapping if Queued Invalidation is also enabled. If Queued Invalidation is not supported or not enabled, we should not enable Interrupt Remapping even if HW supports it, because Interrupt Remapping needs Queued Invalidation to invalidate Interrupt Remapping Cache. Signed-off-by: Dexuan Cui <dexuan.cui@xxxxxxxxx> --- xen/drivers/passthrough/vtd/iommu.c | 8 ++++++++ 1 files changed, 8 insertions(+) diff -r e5bed83d5180 -r abb87a8387ac xen/drivers/passthrough/vtd/iommu.c --- a/xen/drivers/passthrough/vtd/iommu.c Fri Mar 20 08:59:47 2009 +0000 +++ b/xen/drivers/passthrough/vtd/iommu.c Fri Mar 20 09:10:55 2009 +0000 @@ -1782,6 +1782,14 @@ int intel_vtd_setup(void) if ( iommu_intremap && !ecap_intr_remap(iommu->ecap) ) iommu_intremap = 0; } + + if ( !iommu_qinval && iommu_intremap ) + { + iommu_intremap = 0; + gdprintk(XENLOG_WARNING VTDPREFIX, "Interrupt Remapping disabled " + "since Queued Invalidation isn't supported or enabled.\n"); + } + #define P(p,s) printk("Intel VT-d %s %ssupported.\n", s, (p)? "" : "not ") P(iommu_snoop, "Snoop Control"); P(iommu_passthrough, "DMA Passthrough"); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |