diff options
author | Thierry Reding <treding@nvidia.com> | 2018-11-23 13:06:38 +0100 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2018-11-29 17:11:49 +0100 |
commit | 4eab8c0ebd384f080cce2ee466356b446acb283f (patch) | |
tree | d70d9a96323c98e45495a0d8821d1c3fe3fb1b9f /drivers/gpu/drm/tegra | |
parent | 0dc34e19f66eb84744af2fea4235302da39fd7e7 (diff) | |
download | linux-4eab8c0ebd384f080cce2ee466356b446acb283f.tar.gz |
drm/tegra: falcon: Fix error handling
The ->alloc() callback in struct falcon_ops returns an ERR_PTR()-encoded
error code on failure, so it needs to be properly checked for, otherwise
subsequent code may dereference an invalid pointer.
Signed-off-by: Thierry Reding <treding@nvidia.com>
Diffstat (limited to 'drivers/gpu/drm/tegra')
-rw-r--r-- | drivers/gpu/drm/tegra/falcon.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/drm/tegra/falcon.c b/drivers/gpu/drm/tegra/falcon.c index f685e72949d1..78c7a0156601 100644 --- a/drivers/gpu/drm/tegra/falcon.c +++ b/drivers/gpu/drm/tegra/falcon.c @@ -141,9 +141,9 @@ int falcon_load_firmware(struct falcon *falcon) /* allocate iova space for the firmware */ falcon->firmware.vaddr = falcon->ops->alloc(falcon, firmware->size, &falcon->firmware.paddr); - if (!falcon->firmware.vaddr) { - dev_err(falcon->dev, "dma memory mapping failed\n"); - return -ENOMEM; + if (IS_ERR(falcon->firmware.vaddr)) { + dev_err(falcon->dev, "DMA memory mapping failed\n"); + return PTR_ERR(falcon->firmware.vaddr); } /* copy firmware image into local area. this also ensures endianness */ |