]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/msm: Fix iommu_map_sgtable() return value check and avoid WARN
authorMikko Perttunen <mperttunen@nvidia.com>
Tue, 21 Apr 2026 04:02:38 +0000 (13:02 +0900)
committerRob Clark <robin.clark@oss.qualcomm.com>
Wed, 13 May 2026 21:37:54 +0000 (14:37 -0700)
Commit "iommu: return full error code from iommu_map_sg[_atomic]()"
changed iommu_map_sgtable() to return an ssize_t and negative values
in error cases, rather than a size_t and a zero.

Store the return value in the appropriate type and in case of error,
return it rather than WARNing.

Fixes: ad8f36e4b6b1 ("iommu: return full error code from iommu_map_sg[_atomic]()")
Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Patchwork: https://patchwork.freedesktop.org/patch/719685/
Message-ID: <20260421-iommu_map_sgtable-return-v1-3-fb484c07d2a1@nvidia.com>
Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
drivers/gpu/drm/msm/msm_iommu.c

index 271baf4dc4e80b0aeea1d7f05083f93115134aca..895d03b59da6e5075c8e5f9c7f12e5a5fc152120 100644 (file)
@@ -677,7 +677,7 @@ static int msm_iommu_map(struct msm_mmu *mmu, uint64_t iova,
                         int prot)
 {
        struct msm_iommu *iommu = to_msm_iommu(mmu);
-       size_t ret;
+       ssize_t ret;
 
        WARN_ON(off != 0);
 
@@ -686,7 +686,8 @@ static int msm_iommu_map(struct msm_mmu *mmu, uint64_t iova,
                iova |= GENMASK_ULL(63, 49);
 
        ret = iommu_map_sgtable(iommu->domain, iova, sgt, prot);
-       WARN_ON(!ret);
+       if (ret < 0)
+               return ret;
 
        return (ret == len) ? 0 : -EINVAL;
 }