On Tue, 2015-03-24 at 16:48 -0400, Robbie VanVossen wrote:
> If multiple devices are being passed through to the same domain and they
> share a single SMMU, then they only require a single iommu_domain.
> 
> In arm_smmu_assign_dev, before a new iommu_domain is created, the
> xen_domain->contexts is checked for any iommu_domains that are already
> assigned to device that uses the same SMMU as the current device. If one
> is found, attach the device to that iommu_domain. If a new one isn't
> found, create a new iommu_domain just like before.
> 
> The arm_smmu_deassign_dev function assumes that there is a single
> device per iommu_domain. This meant that when the first device was
> deassigned, the iommu_domain was freed and when another device was
> deassigned a crash occurred in xen.
> 
> To fix this, a reference counter was added to the iommu_domain struct.
> When an arm_smmu_xen_device references an iommu_domain, the
> iommu_domains ref is incremented. When that reference is removed, the
> iommu_domains ref is decremented. The iommu_domain will only be freed
> when the ref is 0.
> 
> Signed-off-by: Robbie VanVossen <robert.vanvos...@dornerworks.com>
> Reviewed-by: Julien Grall <julien.gr...@linaro.org>

I was expecting this to come back in a new version of  Julien's
passthrough series, but Julien prodded me to say that this patch didn't
actually have any dependency/interaction with his passthrough series
like I thought, so it can go in now. 

So Acked + applied, sorry for the delay.



_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to