[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [for-4.15][PATCH v3 2/3] xen/x86: iommu: Ignore IOMMU mapping requests when a domain is dying
Hi Jan, On 17/02/2021 15:01, Jan Beulich wrote: On 17.02.2021 15:24, Julien Grall wrote:From: Julien Grall <jgrall@xxxxxxxxxx> The new x86 IOMMU page-tables allocator will release the pages when relinquishing the domain resources. However, this is not sufficient when the domain is dying because nothing prevents page-table to be allocated. Currently page-table allocations can only happen from iommu_map(). As the domain is dying, there is no good reason to continue to modify the IOMMU page-tables.While I agree this to be the case right now, I'm not sure it is a good idea to build on it (in that you leave the unmap paths untouched). I don't build on that assumption. See next patch. Imo there's a fair chance this would be overlooked at the point super page mappings get introduced (which has been long overdue), and I thought prior discussion had lead to a possible approach without risking use-after-free due to squashed unmap requests. I know you suggested to zap the root page-tables... However, I don't think this is 4.15 material and you agree with this (you were the one pointed out that out). --- a/xen/drivers/passthrough/x86/iommu.c +++ b/xen/drivers/passthrough/x86/iommu.c @@ -273,6 +273,9 @@ int iommu_free_pgtables(struct domain *d) /* * Pages will be moved to the free list below. So we want to * clear the root page-table to avoid any potential use after-free. + * + * After this call, no more IOMMU mapping can happen. + * */ hd->platform_ops->clear_root_pgtable(d);I.e. you utilize the call in place of spin_barrier(). Maybe worth saying in the comment? Sure. Also, nit: Stray blank comment line. Cheers, -- Julien Grall
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |