msm: kgsl: Avoid a possible variable dereference in kgsl_mmap
There was a possiblity that a variable would be dereferenced
in a loop, so use a temporary holder to avoid any corner
case problems.
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c
index db1dd67..95c7737 100644
--- a/drivers/gpu/msm/kgsl.c
+++ b/drivers/gpu/msm/kgsl.c
@@ -1771,7 +1771,7 @@
unsigned long vma_offset = vma->vm_pgoff << PAGE_SHIFT;
struct kgsl_device_private *dev_priv = file->private_data;
struct kgsl_process_private *private = dev_priv->process_priv;
- struct kgsl_mem_entry *entry;
+ struct kgsl_mem_entry *tmp, *entry = NULL;
struct kgsl_device *device = dev_priv->device;
/* Handle leagacy behavior for memstore */
@@ -1782,9 +1782,10 @@
/* Find a chunk of GPU memory */
spin_lock(&private->mem_lock);
- list_for_each_entry(entry, &private->mem_list, list) {
- if (vma_offset == entry->memdesc.gpuaddr) {
- kgsl_mem_entry_get(entry);
+ list_for_each_entry(tmp, &private->mem_list, list) {
+ if (vma_offset == tmp->memdesc.gpuaddr) {
+ kgsl_mem_entry_get(tmp);
+ entry = tmp;
break;
}
}