[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/1] xen:vtd: missing RMRR mapping while share EPT
>>> On 23.07.14 at 11:35, <tiejun.chen@xxxxxxxxx> wrote: > intel_iommu_map_page() does nothing if VT-d shares EPT page table. > So rmrr_identity_mapping() never create RMRR mapping but in some > cases like some GFX drivers it still need to access RMRR. > > Here we will create those RMRR mappings even in shared EPT case. Technically this is fine, but there are mechanical issues: > @@ -1867,7 +1869,19 @@ static int rmrr_identity_mapping(struct domain *d, > > while ( base_pfn < end_pfn ) > { > - if ( intel_iommu_map_page(d, base_pfn, base_pfn, > + if ( iommu_use_hap_pt(d) ) { > + dprintk(XENLOG_DEBUG VTDPREFIX, > + "Set RMRR mapping: pfn:0x%lx mfn:0x%lx.\n", > + base_pfn, mfn_x(_mfn(base_pfn))); Do we really need this message, even more so not at guest level? And if you're convinced we need it, please use %#lx instead of 0x%lx. > + p2m_lock(p2m); > + if ( p2m_set_entry(p2m, base_pfn, _mfn(base_pfn), PAGE_ORDER_4K, > + p2m_mmio_direct, p2m_access_rw) ) { > + p2m_unlock(p2m); > + return -1; > + } > + p2m_unlock(p2m); > + } > + else if ( intel_iommu_map_page(d, base_pfn, base_pfn, > IOMMUF_readable|IOMMUF_writable) ) > return -1; > base_pfn++; Apart from the above there are several coding style issues here. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |