[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [v3][PATCH 1/1] xen:vtd: missing RMRR mapping while share EPT
>>> On 25.07.14 at 08:47, <tiejun.chen@xxxxxxxxx> wrote: >> So I think it would be prudent to at least try to detect a clash here >> and return an error. > > Could we check if this pte already present like this? > > @@ -1870,6 +1872,16 @@ static int rmrr_identity_mapping(struct domain *d, > if ( iommu_use_hap_pt(d) ) > { > ASSERT(!iommu_passthrough || !is_hardware_domain(d)); > + /* get last level pte */ > + pg_maddr = addr_to_dma_page_maddr(d, ((paddr_t)gfn << > PAGE_SHIFT_4K), 0); > + page = (struct dma_pte *)map_vtd_domain_page(pg_maddr); > + pte = page + address_level_offset(addr, 1); > + if ( dma_pte_present(*pte) ) > + { > + printk(XENLOG_ERR VTDPREFIX > + "Overlapping RMRRs at %"PRIx64".\n", > (paddr_t)base_gfn); > + return -1; > + } > if ( set_mmio_p2m_entry(d, base_pfn, _mfn(base_pfn)) ) > return -1; > } I think you'd be better off using P2M functions here, even more so considering that you're in an iommu_use_hap_pt() guarded code section. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |