diff options
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/msm/kgsl.c | 13 | ||||
| -rw-r--r-- | drivers/gpu/msm/kgsl.h | 7 |
2 files changed, 10 insertions, 10 deletions
diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c index c820c9ca7a3a..10e139a9b00f 100644 --- a/drivers/gpu/msm/kgsl.c +++ b/drivers/gpu/msm/kgsl.c @@ -1243,9 +1243,6 @@ 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 (entry == NULL) - continue; - if (GPUADDR_IN_MEMDESC(gpuaddr, &entry->memdesc)) { ret = kgsl_mem_entry_get(entry); break; @@ -1270,18 +1267,17 @@ EXPORT_SYMBOL(kgsl_sharedmem_find); struct kgsl_mem_entry * __must_check kgsl_sharedmem_find_id(struct kgsl_process_private *process, unsigned int id) { - int result = 0; + int result; struct kgsl_mem_entry *entry; drain_workqueue(kgsl_driver.mem_workqueue); spin_lock(&process->mem_lock); entry = idr_find(&process->mem_idr, id); - if (entry) - result = kgsl_mem_entry_get(entry); + result = kgsl_mem_entry_get(entry); spin_unlock(&process->mem_lock); - if (!result) + if (result == 0) return NULL; return entry; } @@ -3309,7 +3305,8 @@ kgsl_mmap_memstore(struct kgsl_device *device, struct vm_area_struct *vma) static void kgsl_gpumem_vm_open(struct vm_area_struct *vma) { struct kgsl_mem_entry *entry = vma->vm_private_data; - if (!kgsl_mem_entry_get(entry)) + + if (kgsl_mem_entry_get(entry) == 0) vma->vm_private_data = NULL; } diff --git a/drivers/gpu/msm/kgsl.h b/drivers/gpu/msm/kgsl.h index b8bc155cd335..bc0ae2bac915 100644 --- a/drivers/gpu/msm/kgsl.h +++ b/drivers/gpu/msm/kgsl.h @@ -435,13 +435,16 @@ static inline void kgsl_schedule_work(struct work_struct *work) static inline int kgsl_mem_entry_get(struct kgsl_mem_entry *entry) { - return kref_get_unless_zero(&entry->refcount); + if (entry) + return kref_get_unless_zero(&entry->refcount); + return 0; } static inline void kgsl_mem_entry_put(struct kgsl_mem_entry *entry) { - kref_put(&entry->refcount, kgsl_mem_entry_destroy); + if (entry) + kref_put(&entry->refcount, kgsl_mem_entry_destroy); } /** |
