summaryrefslogtreecommitdiff
path: root/drivers/gpu
diff options
context:
space:
mode:
authorDeepak Kumar <dkumar@codeaurora.org>2017-05-08 15:29:03 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2017-05-23 02:56:36 -0700
commit0e42ef24c9816c2ca81160b81af77c58abcc9bf5 (patch)
treedcb17933822bd28eee19ef2d65c5acdc450584db /drivers/gpu
parent60be71604a84d2e047215cb702d6324379a353bb (diff)
msm: kgsl: Return mementry only if pending_free is not set
Return mementry from kgsl_sharedmem_find only if pending_free is not set for that mementry. This is necessary to avoid use of a mementry after it is already marked for free. Change-Id: I23111e9c82a88ccbda2ab259074c38d91f9ff5cb Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/msm/kgsl.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c
index 50f55abd6db8..b2def8dea954 100644
--- a/drivers/gpu/msm/kgsl.c
+++ b/drivers/gpu/msm/kgsl.c
@@ -1238,7 +1238,8 @@ kgsl_sharedmem_find(struct kgsl_process_private *private, uint64_t gpuaddr)
spin_lock(&private->mem_lock);
idr_for_each_entry(&private->mem_idr, entry, id) {
if (GPUADDR_IN_MEMDESC(gpuaddr, &entry->memdesc)) {
- ret = kgsl_mem_entry_get(entry);
+ if (!entry->pending_free)
+ ret = kgsl_mem_entry_get(entry);
break;
}
}