[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [for-4.15][PATCH v2 1/5] xen/x86: p2m: Don't map the special pages in the IOMMU page-tables
From: Julien Grall <jgrall@xxxxxxxxxx> Currently, the IOMMU page-tables will be populated early in the domain creation if the hardware is able to virtualize the local APIC. However, the IOMMU page tables will not be freed during early failure and will result to a leak. An assigned device should not need to DMA into the vLAPIC page, so we can avoid to map the page in the IOMMU page-tables. This statement is also true for any special pages (the vLAPIC page is one of them). So to take the opportunity to prevent the mapping for all of them. Note that: - This is matching the existing behavior with PV guest - This doesn't change the behavior when the P2M is shared with the IOMMU. IOW, the special pages will still be accessibled by the device. Suggested-by: Jan Beulich <jbeulich@xxxxxxxx> Signed-off-by: Julien Grall <jgrall@xxxxxxxxxx> --- Changes in v2: - New patch --- xen/include/asm-x86/p2m.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/xen/include/asm-x86/p2m.h b/xen/include/asm-x86/p2m.h index 7d63f5787e62..1802545969b3 100644 --- a/xen/include/asm-x86/p2m.h +++ b/xen/include/asm-x86/p2m.h @@ -919,6 +919,10 @@ static inline unsigned int p2m_get_iommu_flags(p2m_type_t p2mt, mfn_t mfn) { unsigned int flags; + /* Don't map special pages in the IOMMU page-tables. */ + if ( mfn_valid(mfn) && is_special_page(mfn_to_page(mfn)) ) + return 0; + switch( p2mt ) { case p2m_ram_rw: -- 2.17.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |