Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e01d1913 authored by Baoquan He's avatar Baoquan He Committed by Joerg Roedel
Browse files

iommu: Add is_attach_deferred call-back to iommu-ops



This new call-back will be used to check if the domain attach need be
deferred for now. If yes, the domain attach/detach will return directly.

Signed-off-by: default avatarBaoquan He <bhe@redhat.com>
Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent 53019a9e
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1283,6 +1283,10 @@ static int __iommu_attach_device(struct iommu_domain *domain,
				 struct device *dev)
{
	int ret;
	if ((domain->ops->is_attach_deferred != NULL) &&
	    domain->ops->is_attach_deferred(domain, dev))
		return 0;

	if (unlikely(domain->ops->attach_dev == NULL))
		return -ENODEV;

@@ -1324,6 +1328,10 @@ EXPORT_SYMBOL_GPL(iommu_attach_device);
static void __iommu_detach_device(struct iommu_domain *domain,
				  struct device *dev)
{
	if ((domain->ops->is_attach_deferred != NULL) &&
	    domain->ops->is_attach_deferred(domain, dev))
		return;

	if (unlikely(domain->ops->detach_dev == NULL))
		return;

+1 −0
Original line number Diff line number Diff line
@@ -225,6 +225,7 @@ struct iommu_ops {
	u32 (*domain_get_windows)(struct iommu_domain *domain);

	int (*of_xlate)(struct device *dev, struct of_phandle_args *args);
	bool (*is_attach_deferred)(struct iommu_domain *domain, struct device *dev);

	unsigned long pgsize_bitmap;
};