# HG changeset patch # User Keir Fraser # Date 1190277721 -3600 # Node ID 39c85fa942aa3b9f8a6fdbc210d695e6eff017f5 # Parent fdabc0af58524fe38a4552624eb75abce57c6026 VTD: Small fix to iommu initialisation. Signed-off-by: Allen Kay Signed-off-by: Guy Zana diff -r fdabc0af5852 -r 39c85fa942aa xen/arch/x86/hvm/vmx/vtd/intel-iommu.c --- a/xen/arch/x86/hvm/vmx/vtd/intel-iommu.c Thu Sep 20 09:40:49 2007 +0100 +++ b/xen/arch/x86/hvm/vmx/vtd/intel-iommu.c Thu Sep 20 09:42:01 2007 +0100 @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include "dmar.h" @@ -1669,6 +1670,7 @@ int iommu_setup(void) struct hvm_iommu *hd = domain_hvm_iommu(dom0); struct acpi_drhd_unit *drhd; struct iommu *iommu; + unsigned long i; if (!vtd_enabled) return 0; @@ -1687,8 +1689,9 @@ int iommu_setup(void) drhd = list_entry(acpi_drhd_units.next, typeof(*drhd), list); iommu = drhd->iommu; - hd->pgd = (struct dma_pte *)alloc_xenheap_page(); - memset((u8*)hd->pgd, 0, PAGE_SIZE); + /* setup 1:1 page table for dom0 */ + for (i = 0; i < max_page; i++) + iommu_map_page(dom0, i, i); if (init_vtd_hw()) goto error;