Messages in this thread | | | Date | Thu, 16 Jul 2015 19:03:57 +0200 | From | Joerg Roedel <> | Subject | Re: [PATCH] iommu/vt-d: Fix VM domain ID leak |
| |
On Thu, Jul 16, 2015 at 09:43:55AM -0600, Alex Williamson wrote: > I was tempted to do this as well, but what about > domain_remove_dev_info() where we also handle vm domains specially and > don't do a symmetric detach in both directions? I started down that > path but quickly found the code to fragile to make those kinds of > changes. Thanks,
Okay, so domain_remove_dev_info() does:
if (domain_type_is_vm(domain)) { iommu_detach_dependent_devices(info->iommu, info->dev); domain_detach_iommu(domain, info->iommu); }
... in a loop over all devices attached to the domain. The first function (iommu_detach_dependent_devices) is not special to vm-domains. In fact, domain_remove_one_dev_info calls it for all domain types.
And domain_detach_iommu only clears the bit in the iommu_bmp of the domain, which is also not special and also called for all domain types in domain_remove_one_dev_info.
So it looks like this special handling has no real purpose and is just part of the whole mess. I am currently working on the conversion of the Intel VT-d driver to use default-domains from the iommu-core. When this is done we can get rid of that mess.
Joerg
| |