|
[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
At 19:00 +0800 on 24 Jul (1406224818), Tiejun Chen 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.
>
> Signed-off-by: Tiejun Chen <tiejun.chen@xxxxxxxxx>
For the interaction with p2m code:
Acked-by: Tim Deegn <tim@xxxxxxx>
though I am still worried about what happens if this overwrites an
existing mapping.
Tim.
> ---
> xen/drivers/passthrough/vtd/iommu.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> v3:
>
> * Use set_mmio_p2m_entry() to replace p2m_set_entry()
> * Use ASSERT to check
>
> v2:
>
> * Fix coding style.
> * Still need to abide intel_iommu_map_page(), so we should do nothing
> if dom0 and iommu supports pass thru.
>
> diff --git a/xen/drivers/passthrough/vtd/iommu.c
> b/xen/drivers/passthrough/vtd/iommu.c
> index 042b882..f08a1fc 100644
> --- a/xen/drivers/passthrough/vtd/iommu.c
> +++ b/xen/drivers/passthrough/vtd/iommu.c
> @@ -1867,8 +1867,14 @@ static int rmrr_identity_mapping(struct domain *d,
>
> while ( base_pfn < end_pfn )
> {
> - if ( intel_iommu_map_page(d, base_pfn, base_pfn,
> - IOMMUF_readable|IOMMUF_writable) )
> + if ( iommu_use_hap_pt(d) )
> + {
> + ASSERT(!iommu_passthrough || !is_hardware_domain(d));
> + if ( set_mmio_p2m_entry(d, base_pfn, _mfn(base_pfn)) )
> + return -1;
> + }
> + else if ( intel_iommu_map_page(d, base_pfn, base_pfn,
> + IOMMUF_readable|IOMMUF_writable) )
> return -1;
> base_pfn++;
> }
> --
> 1.9.1
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |