summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Adams <kadams@nvidia.com>2011-08-01 15:21:33 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:48:00 -0800
commit6d91c36232cc52787d7679e21844882a6b18ee14 (patch)
treebea7cbc5c0034615ec52376cf823ed9e1ae7b8d9
parent2789ea2793546262d611c774eb33a55e23a84737 (diff)
video: tegra: nvmap: handle free null conditions
Original-Change-Id: I75e88d6cef2daf625c6ede38a937207b95e2b84c Reviewed-on: http://git-master/r/44364 Reviewed-by: Ken Adams <kadams@nvidia.com> Tested-by: Ken Adams <kadams@nvidia.com> Reviewed-by: Krishna Reddy <vdumpa@nvidia.com> Rebase-Id: Rd79c4aac3d3e03e601be5b35934fe36a35cd358f
-rw-r--r--drivers/video/tegra/nvmap/nvmap.c6
-rw-r--r--drivers/video/tegra/nvmap/nvmap_handle.c3
2 files changed, 9 insertions, 0 deletions
diff --git a/drivers/video/tegra/nvmap/nvmap.c b/drivers/video/tegra/nvmap/nvmap.c
index 6e9d72c39c2d..0bf4d884aa81 100644
--- a/drivers/video/tegra/nvmap/nvmap.c
+++ b/drivers/video/tegra/nvmap/nvmap.c
@@ -620,6 +620,9 @@ phys_addr_t nvmap_handle_address(struct nvmap_client *c, unsigned long id)
void nvmap_unpin(struct nvmap_client *client, struct nvmap_handle_ref *ref)
{
+ if (!ref)
+ return;
+
atomic_dec(&ref->pin);
if (handle_unpin(client, ref->handle, false))
wake_up(&client->share->pin_wait);
@@ -807,6 +810,9 @@ void nvmap_free_iovm(struct nvmap_client *client, struct nvmap_handle_ref *r)
void nvmap_free(struct nvmap_client *client, struct nvmap_handle_ref *r)
{
+ if (!r)
+ return;
+
nvmap_free_handle_id(client, nvmap_ref_to_id(r));
}
diff --git a/drivers/video/tegra/nvmap/nvmap_handle.c b/drivers/video/tegra/nvmap/nvmap_handle.c
index 2aa971430dbc..a4412afb6967 100644
--- a/drivers/video/tegra/nvmap/nvmap_handle.c
+++ b/drivers/video/tegra/nvmap/nvmap_handle.c
@@ -499,6 +499,9 @@ struct nvmap_handle_ref *nvmap_create_handle(struct nvmap_client *client,
struct nvmap_handle *h;
struct nvmap_handle_ref *ref = NULL;
+ if (!client )
+ return ERR_PTR(-EINVAL);
+
if (!size)
return ERR_PTR(-EINVAL);