]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
drm/exynos: Add NULL pointer check
authorSachin Kamat <sachin.kamat@linaro.org>
Wed, 14 Aug 2013 11:08:03 +0000 (16:38 +0530)
committerInki Dae <inki.dae@samsung.com>
Thu, 5 Sep 2013 04:43:43 +0000 (13:43 +0900)
devm_kzalloc can fail. Hence check the pointer to avoid NULL pointer
dereferencing.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_iommu.c

index 3799d5c2b5df746590b2952ed1a93fce2910e085..fb8db037827452c94783941f6e7daa70ff8788dd 100644 (file)
@@ -47,10 +47,16 @@ int drm_create_iommu_mapping(struct drm_device *drm_dev)
 
        dev->dma_parms = devm_kzalloc(dev, sizeof(*dev->dma_parms),
                                        GFP_KERNEL);
+       if (!dev->dma_parms)
+               goto error;
+
        dma_set_max_seg_size(dev, 0xffffffffu);
        dev->archdata.mapping = mapping;
 
        return 0;
+error:
+       arm_iommu_release_mapping(mapping);
+       return -ENOMEM;
 }
 
 /*
@@ -91,6 +97,9 @@ int drm_iommu_attach_device(struct drm_device *drm_dev,
        subdrv_dev->dma_parms = devm_kzalloc(subdrv_dev,
                                        sizeof(*subdrv_dev->dma_parms),
                                        GFP_KERNEL);
+       if (!subdrv_dev->dma_parms)
+               return -ENOMEM;
+
        dma_set_max_seg_size(subdrv_dev, 0xffffffffu);
 
        ret = arm_iommu_attach_device(subdrv_dev, dev->archdata.mapping);