lkml.org 
[lkml]   [2023]   [Dec]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.4 12/12] drm/exynos: fix a wrong error checking
    Date
    From: Inki Dae <inki.dae@samsung.com>

    [ Upstream commit 8d1b7809684c688005706125b804e1f9792d2b1b ]

    Fix a wrong error checking in exynos_drm_dma.c module.

    In the exynos_drm_register_dma function, both arm_iommu_create_mapping()
    and iommu_get_domain_for_dev() functions are expected to return NULL as
    an error.

    However, the error checking is performed using the statement
    if(IS_ERR(mapping)), which doesn't provide a suitable error value.
    So check if 'mapping' is NULL, and if it is, return -ENODEV.

    This issue[1] was reported by Dan.

    Changelog v1:
    - fix build warning.

    [1] https://lore.kernel.org/all/33e52277-1349-472b-a55b-ab5c3462bfcf@moroto.mountain/

    Reported-by : Dan Carpenter <dan.carpenter@linaro.org>
    Signed-off-by: Inki Dae <inki.dae@samsung.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/exynos/exynos_drm_dma.c | 8 +++-----
    1 file changed, 3 insertions(+), 5 deletions(-)

    diff --git a/drivers/gpu/drm/exynos/exynos_drm_dma.c b/drivers/gpu/drm/exynos/exynos_drm_dma.c
    index a3c9d8b9e1a18..e07d31b9a921a 100644
    --- a/drivers/gpu/drm/exynos/exynos_drm_dma.c
    +++ b/drivers/gpu/drm/exynos/exynos_drm_dma.c
    @@ -133,18 +133,16 @@ int exynos_drm_register_dma(struct drm_device *drm, struct device *dev,
    return 0;

    if (!priv->mapping) {
    - void *mapping;
    + void *mapping = NULL;

    if (IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU))
    mapping = arm_iommu_create_mapping(&platform_bus_type,
    EXYNOS_DEV_ADDR_START, EXYNOS_DEV_ADDR_SIZE);
    else if (IS_ENABLED(CONFIG_IOMMU_DMA))
    mapping = iommu_get_domain_for_dev(priv->dma_dev);
    - else
    - mapping = ERR_PTR(-ENODEV);

    - if (IS_ERR(mapping))
    - return PTR_ERR(mapping);
    + if (!mapping)
    + return -ENODEV;
    priv->mapping = mapping;
    }

    --
    2.42.0
    \
     
     \ /
      Last update: 2023-12-11 15:06    [W:2.280 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site