diff options
author | Sachin Kamat <sachin.kamat@linaro.org> | 2013-08-14 07:08:03 -0400 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2013-09-05 00:43:43 -0400 |
commit | 4db7fcdf59551d9d0a9fe59bd919a32feae925b2 (patch) | |
tree | c586e4865da2416963e3d69aea6e55a60d9137e0 | |
parent | 38bb5253a95f2eb8cb765b7ab88aac686de6cb12 (diff) |
drm/exynos: Add NULL pointer check
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>
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_iommu.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_iommu.c b/drivers/gpu/drm/exynos/exynos_drm_iommu.c index 3799d5c2b5df..fb8db0378274 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_iommu.c +++ b/drivers/gpu/drm/exynos/exynos_drm_iommu.c | |||
@@ -47,10 +47,16 @@ int drm_create_iommu_mapping(struct drm_device *drm_dev) | |||
47 | 47 | ||
48 | dev->dma_parms = devm_kzalloc(dev, sizeof(*dev->dma_parms), | 48 | dev->dma_parms = devm_kzalloc(dev, sizeof(*dev->dma_parms), |
49 | GFP_KERNEL); | 49 | GFP_KERNEL); |
50 | if (!dev->dma_parms) | ||
51 | goto error; | ||
52 | |||
50 | dma_set_max_seg_size(dev, 0xffffffffu); | 53 | dma_set_max_seg_size(dev, 0xffffffffu); |
51 | dev->archdata.mapping = mapping; | 54 | dev->archdata.mapping = mapping; |
52 | 55 | ||
53 | return 0; | 56 | return 0; |
57 | error: | ||
58 | arm_iommu_release_mapping(mapping); | ||
59 | return -ENOMEM; | ||
54 | } | 60 | } |
55 | 61 | ||
56 | /* | 62 | /* |
@@ -91,6 +97,9 @@ int drm_iommu_attach_device(struct drm_device *drm_dev, | |||
91 | subdrv_dev->dma_parms = devm_kzalloc(subdrv_dev, | 97 | subdrv_dev->dma_parms = devm_kzalloc(subdrv_dev, |
92 | sizeof(*subdrv_dev->dma_parms), | 98 | sizeof(*subdrv_dev->dma_parms), |
93 | GFP_KERNEL); | 99 | GFP_KERNEL); |
100 | if (!subdrv_dev->dma_parms) | ||
101 | return -ENOMEM; | ||
102 | |||
94 | dma_set_max_seg_size(subdrv_dev, 0xffffffffu); | 103 | dma_set_max_seg_size(subdrv_dev, 0xffffffffu); |
95 | 104 | ||
96 | ret = arm_iommu_attach_device(subdrv_dev, dev->archdata.mapping); | 105 | ret = arm_iommu_attach_device(subdrv_dev, dev->archdata.mapping); |