Loading drivers/gpu/msm/kgsl.c +8 −27 Original line number Diff line number Diff line Loading @@ -254,13 +254,6 @@ static void _deferred_put(struct work_struct *work) kgsl_mem_entry_put(entry); } static inline void kgsl_mem_entry_put_deferred(struct kgsl_mem_entry *entry) { if (entry) queue_work(kgsl_driver.mem_workqueue, &entry->work); } static inline struct kgsl_mem_entry * kgsl_mem_entry_create(void) { Loading @@ -270,7 +263,6 @@ kgsl_mem_entry_create(void) kref_init(&entry->refcount); /* put this ref in userspace memory alloc and map ioctls */ kref_get(&entry->refcount); INIT_WORK(&entry->work, _deferred_put); } return entry; Loading Loading @@ -1880,7 +1872,7 @@ long kgsl_ioctl_sharedmem_free(struct kgsl_device_private *dev_priv, return -EINVAL; ret = gpumem_free_entry(entry); kgsl_mem_entry_put_deferred(entry); kgsl_mem_entry_put(entry); return ret; } Loading @@ -1898,7 +1890,7 @@ long kgsl_ioctl_gpumem_free_id(struct kgsl_device_private *dev_priv, return -EINVAL; ret = gpumem_free_entry(entry); kgsl_mem_entry_put_deferred(entry); kgsl_mem_entry_put(entry); return ret; } Loading Loading @@ -1935,7 +1927,8 @@ static void gpuobj_free_fence_func(void *priv) { struct kgsl_mem_entry *entry = priv; kgsl_mem_entry_put_deferred(entry); INIT_WORK(&entry->work, _deferred_put); queue_work(kgsl_driver.mem_workqueue, &entry->work); } static long gpuobj_free_on_fence(struct kgsl_device_private *dev_priv, Loading Loading @@ -1999,7 +1992,7 @@ long kgsl_ioctl_gpuobj_free(struct kgsl_device_private *dev_priv, else ret = -EINVAL; kgsl_mem_entry_put_deferred(entry); kgsl_mem_entry_put(entry); return ret; } Loading Loading @@ -3379,13 +3372,7 @@ long kgsl_ioctl_sparse_phys_free(struct kgsl_device_private *dev_priv, if (entry == NULL) return -EINVAL; if (!kgsl_mem_entry_set_pend(entry)) { kgsl_mem_entry_put(entry); return -EBUSY; } if (entry->memdesc.cur_bindings != 0) { kgsl_mem_entry_unset_pend(entry); kgsl_mem_entry_put(entry); return -EINVAL; } Loading @@ -3394,7 +3381,7 @@ long kgsl_ioctl_sparse_phys_free(struct kgsl_device_private *dev_priv, /* One put for find_id(), one put for the kgsl_mem_entry_create() */ kgsl_mem_entry_put(entry); kgsl_mem_entry_put_deferred(entry); kgsl_mem_entry_put(entry); return 0; } Loading Loading @@ -3454,13 +3441,7 @@ long kgsl_ioctl_sparse_virt_free(struct kgsl_device_private *dev_priv, if (entry == NULL) return -EINVAL; if (!kgsl_mem_entry_set_pend(entry)) { kgsl_mem_entry_put(entry); return -EBUSY; } if (entry->bind_tree.rb_node != NULL) { kgsl_mem_entry_unset_pend(entry); kgsl_mem_entry_put(entry); return -EINVAL; } Loading @@ -3469,7 +3450,7 @@ long kgsl_ioctl_sparse_virt_free(struct kgsl_device_private *dev_priv, /* One put for find_id(), one put for the kgsl_mem_entry_create() */ kgsl_mem_entry_put(entry); kgsl_mem_entry_put_deferred(entry); kgsl_mem_entry_put(entry); return 0; } Loading Loading @@ -4867,7 +4848,7 @@ static int __init kgsl_core_init(void) WQ_UNBOUND | WQ_MEM_RECLAIM | WQ_SYSFS, 0); kgsl_driver.mem_workqueue = alloc_workqueue("kgsl-mementry", WQ_MEM_RECLAIM, 0); WQ_UNBOUND | WQ_MEM_RECLAIM, 0); kgsl_events_init(); Loading Loading
drivers/gpu/msm/kgsl.c +8 −27 Original line number Diff line number Diff line Loading @@ -254,13 +254,6 @@ static void _deferred_put(struct work_struct *work) kgsl_mem_entry_put(entry); } static inline void kgsl_mem_entry_put_deferred(struct kgsl_mem_entry *entry) { if (entry) queue_work(kgsl_driver.mem_workqueue, &entry->work); } static inline struct kgsl_mem_entry * kgsl_mem_entry_create(void) { Loading @@ -270,7 +263,6 @@ kgsl_mem_entry_create(void) kref_init(&entry->refcount); /* put this ref in userspace memory alloc and map ioctls */ kref_get(&entry->refcount); INIT_WORK(&entry->work, _deferred_put); } return entry; Loading Loading @@ -1880,7 +1872,7 @@ long kgsl_ioctl_sharedmem_free(struct kgsl_device_private *dev_priv, return -EINVAL; ret = gpumem_free_entry(entry); kgsl_mem_entry_put_deferred(entry); kgsl_mem_entry_put(entry); return ret; } Loading @@ -1898,7 +1890,7 @@ long kgsl_ioctl_gpumem_free_id(struct kgsl_device_private *dev_priv, return -EINVAL; ret = gpumem_free_entry(entry); kgsl_mem_entry_put_deferred(entry); kgsl_mem_entry_put(entry); return ret; } Loading Loading @@ -1935,7 +1927,8 @@ static void gpuobj_free_fence_func(void *priv) { struct kgsl_mem_entry *entry = priv; kgsl_mem_entry_put_deferred(entry); INIT_WORK(&entry->work, _deferred_put); queue_work(kgsl_driver.mem_workqueue, &entry->work); } static long gpuobj_free_on_fence(struct kgsl_device_private *dev_priv, Loading Loading @@ -1999,7 +1992,7 @@ long kgsl_ioctl_gpuobj_free(struct kgsl_device_private *dev_priv, else ret = -EINVAL; kgsl_mem_entry_put_deferred(entry); kgsl_mem_entry_put(entry); return ret; } Loading Loading @@ -3379,13 +3372,7 @@ long kgsl_ioctl_sparse_phys_free(struct kgsl_device_private *dev_priv, if (entry == NULL) return -EINVAL; if (!kgsl_mem_entry_set_pend(entry)) { kgsl_mem_entry_put(entry); return -EBUSY; } if (entry->memdesc.cur_bindings != 0) { kgsl_mem_entry_unset_pend(entry); kgsl_mem_entry_put(entry); return -EINVAL; } Loading @@ -3394,7 +3381,7 @@ long kgsl_ioctl_sparse_phys_free(struct kgsl_device_private *dev_priv, /* One put for find_id(), one put for the kgsl_mem_entry_create() */ kgsl_mem_entry_put(entry); kgsl_mem_entry_put_deferred(entry); kgsl_mem_entry_put(entry); return 0; } Loading Loading @@ -3454,13 +3441,7 @@ long kgsl_ioctl_sparse_virt_free(struct kgsl_device_private *dev_priv, if (entry == NULL) return -EINVAL; if (!kgsl_mem_entry_set_pend(entry)) { kgsl_mem_entry_put(entry); return -EBUSY; } if (entry->bind_tree.rb_node != NULL) { kgsl_mem_entry_unset_pend(entry); kgsl_mem_entry_put(entry); return -EINVAL; } Loading @@ -3469,7 +3450,7 @@ long kgsl_ioctl_sparse_virt_free(struct kgsl_device_private *dev_priv, /* One put for find_id(), one put for the kgsl_mem_entry_create() */ kgsl_mem_entry_put(entry); kgsl_mem_entry_put_deferred(entry); kgsl_mem_entry_put(entry); return 0; } Loading Loading @@ -4867,7 +4848,7 @@ static int __init kgsl_core_init(void) WQ_UNBOUND | WQ_MEM_RECLAIM | WQ_SYSFS, 0); kgsl_driver.mem_workqueue = alloc_workqueue("kgsl-mementry", WQ_MEM_RECLAIM, 0); WQ_UNBOUND | WQ_MEM_RECLAIM, 0); kgsl_events_init(); Loading