From: Thomas Horsten Date: Wed, 14 Oct 2009 15:42:45 +0000 (+0100) Subject: Fix to the IO -> MMIO Intel trap code X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=5d11a3eaca0372820856243dd2ae8db038de6f67;p=xenclient%2Fxen-pq.git Fix to the IO -> MMIO Intel trap code --- diff --git a/master/filter-igfx-io b/master/filter-igfx-io index 8176753..2aed32a 100644 --- a/master/filter-igfx-io +++ b/master/filter-igfx-io @@ -1,5 +1,18 @@ +diff --git a/Config.mk b/Config.mk +index 5ecf067..37392b7 100644 +--- a/Config.mk ++++ b/Config.mk +@@ -1,7 +1,7 @@ + # -*- mode: Makefile; -*- + + # A debug build of Xen and tools? +-debug ?= y ++debug ?= n + + XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/ \ + -e s/i86pc/x86_32/ -e s/amd64/x86_64/) diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c -index 0d7f5ff..940ff1f 100644 +index 0d7f5ff..aa6a4a4 100644 --- a/xen/arch/x86/hvm/io.c +++ b/xen/arch/x86/hvm/io.c @@ -278,6 +278,7 @@ void dpci_ioport_write(uint32_t mport, ioreq_t *p) @@ -18,9 +31,9 @@ index 0d7f5ff..940ff1f 100644 + { + if ( mport == d->igfx_ioport ) + { -+ if ((d->igfx_index & 1) && (d->igfx_index < 0x10000)) ++ if ((data & 1) && (data < 0x10000)) + { -+ d->igfx_index = data & ~3; ++ d->igfx_index = data; + continue; + } else { + d->igfx_index = 0; @@ -39,7 +52,7 @@ index 0d7f5ff..940ff1f 100644 { case 1: diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c -index ff56a19..adeaa55 100644 +index 15555a0..d8c47ce 100644 --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -1395,6 +1395,22 @@ static int domain_context_unmap(struct domain *domain, u8 bus, u8 devfn)