aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/domain_build.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2013-08-27 11:11:38 +0200
committerJan Beulich <jbeulich@suse.com>2013-08-27 11:11:38 +0200
commit850188e1278cecd1dfb9b936024bee2d8dfdcc18 (patch)
tree5aa18fb3a28bd285254984898a05f6f66d4d66ab /xen/arch/x86/domain_build.c
parent8a7769b4453168e23e8935a85e9a875ef5117253 (diff)
downloadxen-850188e1278cecd1dfb9b936024bee2d8dfdcc18.tar.gz
xen-850188e1278cecd1dfb9b936024bee2d8dfdcc18.tar.bz2
xen-850188e1278cecd1dfb9b936024bee2d8dfdcc18.zip
x86: don't allow Dom0 access to the MSI address range
In particular, MMIO assignments should not be done using this area. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by Xiantao Zhang <xiantao.zhang@intel.com>
Diffstat (limited to 'xen/arch/x86/domain_build.c')
-rw-r--r--xen/arch/x86/domain_build.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c
index 03fe845e4b..8365f327f4 100644
--- a/xen/arch/x86/domain_build.c
+++ b/xen/arch/x86/domain_build.c
@@ -1122,6 +1122,10 @@ int __init construct_dom0(
if ( !rangeset_contains_singleton(mmio_ro_ranges, mfn) )
rc |= iomem_deny_access(dom0, mfn, mfn);
}
+ /* MSI range. */
+ rc |= iomem_deny_access(dom0, paddr_to_pfn(MSI_ADDR_BASE_LO),
+ paddr_to_pfn(MSI_ADDR_BASE_LO +
+ MSI_ADDR_DEST_ID_MASK));
/* Remove access to E820_UNUSABLE I/O regions above 1MB. */
for ( i = 0; i < e820.nr_map; i++ )