[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] AMD-Vi: allocate root table on demand
Hi Jan, Sorry for delay. Please seem my comment below. On 3/3/17 21:29, Jan Beulich wrote: This was my originally intended fix for the AMD side of XSA-207: There's no need to unconditionally allocate the root table, and with that there's then also no way to leak it when a guest has no devices assigned. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> --- a/xen/drivers/passthrough/amd/iommu_map.c +++ b/xen/drivers/passthrough/amd/iommu_map.c @@ -636,11 +636,10 @@ int amd_iommu_map_page(struct domain *d, { bool_t need_flush = 0; struct domain_iommu *hd = dom_iommu(d); + int rc; unsigned long pt_mfn[7]; unsigned int merge_level; - BUG_ON( !hd->arch.root_table ); - if ( iommu_use_hap_pt(d) ) return 0; @@ -648,6 +647,13 @@ int amd_iommu_map_page(struct domain *d, spin_lock(&hd->arch.mapping_lock); + rc = amd_iommu_alloc_root(hd); + if ( rc ) + { + spin_unlock(&hd->arch.mapping_lock); + return rc; Within function amd_iommu_map_page(), other failures seem to be calling AMD_IOMMU_DEBUG() with error message, then calling domain_crash(). Wouldn't this also be needed for this case as the only error returned is -ENOMEM. Thanks, Suravee _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |