iommu: Propagate return value in ->attach_dev callback functions
authorNicolin Chen <nicolinc@nvidia.com>
Mon, 17 Oct 2022 23:02:36 +0000 (16:02 -0700)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 1 Nov 2022 17:39:59 +0000 (14:39 -0300)
The mtk_iommu and virtio drivers have places in the ->attach_dev callback
functions that return hardcode errnos instead of the returned values, but
callers of these ->attach_dv callback functions may care. Propagate them
directly without the extra conversions.

Link: https://lore.kernel.org/r/ca8c5a447b87002334f83325f28823008b4ce420.1666042873.git.nicolinc@nvidia.com
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Yong Wu <yong.wu@mediatek.com>
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/iommu/mtk_iommu.c
drivers/iommu/virtio-iommu.c

index eda441d..b383c83 100644 (file)
@@ -668,7 +668,7 @@ static int mtk_iommu_attach_device(struct iommu_domain *domain,
                ret = mtk_iommu_domain_finalise(dom, frstdata, region_id);
                if (ret) {
                        mutex_unlock(&dom->mutex);
-                       return -ENODEV;
+                       return ret;
                }
                dom->bank = &data->bank[bankid];
        }
index 8226b4d..5b8fe9b 100644 (file)
@@ -697,7 +697,7 @@ static int viommu_domain_finalise(struct viommu_endpoint *vdev,
                if (ret) {
                        ida_free(&viommu->domain_ids, vdomain->id);
                        vdomain->viommu = NULL;
-                       return -EOPNOTSUPP;
+                       return ret;
                }
        }