linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] staging: android: ion: Remove unused rbtree for ion_buffer
@ 2019-07-12  8:47 Lecopzer Chen
  2019-07-17 15:07 ` Laura Abbott
  0 siblings, 1 reply; 2+ messages in thread
From: Lecopzer Chen @ 2019-07-12  8:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: labbott, sumit.semwal, gregkh, riandrews, arve, devel, dri-devel,
	Lecopzer Chen, YJ Chiang

ion_buffer_add() insert ion_buffer into rbtree every time creating
an ion_buffer but never use it after ION reworking.
Also, buffer_lock protects only rbtree operation, remove it together.

Signed-off-by: Lecopzer Chen <lecopzer.chen@mediatek.com>
Cc: YJ Chiang <yj.chiang@mediatek.com>
Cc: Lecopzer Chen <lecopzer.chen@mediatek.com>
---
 drivers/staging/android/ion/ion.c | 36 -------------------------------
 drivers/staging/android/ion/ion.h | 10 +--------
 2 files changed, 1 insertion(+), 45 deletions(-)

diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c
index 92c2914239e3..e6b1ca141b93 100644
--- a/drivers/staging/android/ion/ion.c
+++ b/drivers/staging/android/ion/ion.c
@@ -29,32 +29,6 @@
 static struct ion_device *internal_dev;
 static int heap_id;
 
-/* this function should only be called while dev->lock is held */
-static void ion_buffer_add(struct ion_device *dev,
-			   struct ion_buffer *buffer)
-{
-	struct rb_node **p = &dev->buffers.rb_node;
-	struct rb_node *parent = NULL;
-	struct ion_buffer *entry;
-
-	while (*p) {
-		parent = *p;
-		entry = rb_entry(parent, struct ion_buffer, node);
-
-		if (buffer < entry) {
-			p = &(*p)->rb_left;
-		} else if (buffer > entry) {
-			p = &(*p)->rb_right;
-		} else {
-			pr_err("%s: buffer already found.", __func__);
-			BUG();
-		}
-	}
-
-	rb_link_node(&buffer->node, parent, p);
-	rb_insert_color(&buffer->node, &dev->buffers);
-}
-
 /* this function should only be called while dev->lock is held */
 static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
 					    struct ion_device *dev,
@@ -100,9 +74,6 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
 
 	INIT_LIST_HEAD(&buffer->attachments);
 	mutex_init(&buffer->lock);
-	mutex_lock(&dev->buffer_lock);
-	ion_buffer_add(dev, buffer);
-	mutex_unlock(&dev->buffer_lock);
 	return buffer;
 
 err1:
@@ -131,11 +102,6 @@ void ion_buffer_destroy(struct ion_buffer *buffer)
 static void _ion_buffer_destroy(struct ion_buffer *buffer)
 {
 	struct ion_heap *heap = buffer->heap;
-	struct ion_device *dev = buffer->dev;
-
-	mutex_lock(&dev->buffer_lock);
-	rb_erase(&buffer->node, &dev->buffers);
-	mutex_unlock(&dev->buffer_lock);
 
 	if (heap->flags & ION_HEAP_FLAG_DEFER_FREE)
 		ion_heap_freelist_add(heap, buffer);
@@ -694,8 +660,6 @@ static int ion_device_create(void)
 	}
 
 	idev->debug_root = debugfs_create_dir("ion", NULL);
-	idev->buffers = RB_ROOT;
-	mutex_init(&idev->buffer_lock);
 	init_rwsem(&idev->lock);
 	plist_head_init(&idev->heaps);
 	internal_dev = idev;
diff --git a/drivers/staging/android/ion/ion.h b/drivers/staging/android/ion/ion.h
index e291299fd35f..74914a266e25 100644
--- a/drivers/staging/android/ion/ion.h
+++ b/drivers/staging/android/ion/ion.h
@@ -23,7 +23,6 @@
 
 /**
  * struct ion_buffer - metadata for a particular buffer
- * @node:		node in the ion_device buffers tree
  * @list:		element in list of deferred freeable buffers
  * @dev:		back pointer to the ion_device
  * @heap:		back pointer to the heap the buffer came from
@@ -39,10 +38,7 @@
  * @attachments:	list of devices attached to this buffer
  */
 struct ion_buffer {
-	union {
-		struct rb_node node;
-		struct list_head list;
-	};
+	struct list_head list;
 	struct ion_device *dev;
 	struct ion_heap *heap;
 	unsigned long flags;
@@ -61,14 +57,10 @@ void ion_buffer_destroy(struct ion_buffer *buffer);
 /**
  * struct ion_device - the metadata of the ion device node
  * @dev:		the actual misc device
- * @buffers:		an rb tree of all the existing buffers
- * @buffer_lock:	lock protecting the tree of buffers
  * @lock:		rwsem protecting the tree of heaps and clients
  */
 struct ion_device {
 	struct miscdevice dev;
-	struct rb_root buffers;
-	struct mutex buffer_lock;
 	struct rw_semaphore lock;
 	struct plist_head heaps;
 	struct dentry *debug_root;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] staging: android: ion: Remove unused rbtree for ion_buffer
  2019-07-12  8:47 [PATCH] staging: android: ion: Remove unused rbtree for ion_buffer Lecopzer Chen
@ 2019-07-17 15:07 ` Laura Abbott
  0 siblings, 0 replies; 2+ messages in thread
From: Laura Abbott @ 2019-07-17 15:07 UTC (permalink / raw)
  To: Lecopzer Chen, linux-kernel
  Cc: sumit.semwal, gregkh, riandrews, arve, devel, dri-devel, YJ Chiang

On 7/12/19 4:47 AM, Lecopzer Chen wrote:
> ion_buffer_add() insert ion_buffer into rbtree every time creating
> an ion_buffer but never use it after ION reworking.
> Also, buffer_lock protects only rbtree operation, remove it together.
> 
> Signed-off-by: Lecopzer Chen <lecopzer.chen@mediatek.com>
> Cc: YJ Chiang <yj.chiang@mediatek.com>
> Cc: Lecopzer Chen <lecopzer.chen@mediatek.com>
> ---
>   drivers/staging/android/ion/ion.c | 36 -------------------------------
>   drivers/staging/android/ion/ion.h | 10 +--------
>   2 files changed, 1 insertion(+), 45 deletions(-)
> 
> diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c
> index 92c2914239e3..e6b1ca141b93 100644
> --- a/drivers/staging/android/ion/ion.c
> +++ b/drivers/staging/android/ion/ion.c
> @@ -29,32 +29,6 @@
>   static struct ion_device *internal_dev;
>   static int heap_id;
>   
> -/* this function should only be called while dev->lock is held */
> -static void ion_buffer_add(struct ion_device *dev,
> -			   struct ion_buffer *buffer)
> -{
> -	struct rb_node **p = &dev->buffers.rb_node;
> -	struct rb_node *parent = NULL;
> -	struct ion_buffer *entry;
> -
> -	while (*p) {
> -		parent = *p;
> -		entry = rb_entry(parent, struct ion_buffer, node);
> -
> -		if (buffer < entry) {
> -			p = &(*p)->rb_left;
> -		} else if (buffer > entry) {
> -			p = &(*p)->rb_right;
> -		} else {
> -			pr_err("%s: buffer already found.", __func__);
> -			BUG();
> -		}
> -	}
> -
> -	rb_link_node(&buffer->node, parent, p);
> -	rb_insert_color(&buffer->node, &dev->buffers);
> -}
> -
>   /* this function should only be called while dev->lock is held */
>   static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
>   					    struct ion_device *dev,
> @@ -100,9 +74,6 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
>   
>   	INIT_LIST_HEAD(&buffer->attachments);
>   	mutex_init(&buffer->lock);
> -	mutex_lock(&dev->buffer_lock);
> -	ion_buffer_add(dev, buffer);
> -	mutex_unlock(&dev->buffer_lock);
>   	return buffer;
>   
>   err1:
> @@ -131,11 +102,6 @@ void ion_buffer_destroy(struct ion_buffer *buffer)
>   static void _ion_buffer_destroy(struct ion_buffer *buffer)
>   {
>   	struct ion_heap *heap = buffer->heap;
> -	struct ion_device *dev = buffer->dev;
> -
> -	mutex_lock(&dev->buffer_lock);
> -	rb_erase(&buffer->node, &dev->buffers);
> -	mutex_unlock(&dev->buffer_lock);
>   
>   	if (heap->flags & ION_HEAP_FLAG_DEFER_FREE)
>   		ion_heap_freelist_add(heap, buffer);
> @@ -694,8 +660,6 @@ static int ion_device_create(void)
>   	}
>   
>   	idev->debug_root = debugfs_create_dir("ion", NULL);
> -	idev->buffers = RB_ROOT;
> -	mutex_init(&idev->buffer_lock);
>   	init_rwsem(&idev->lock);
>   	plist_head_init(&idev->heaps);
>   	internal_dev = idev;
> diff --git a/drivers/staging/android/ion/ion.h b/drivers/staging/android/ion/ion.h
> index e291299fd35f..74914a266e25 100644
> --- a/drivers/staging/android/ion/ion.h
> +++ b/drivers/staging/android/ion/ion.h
> @@ -23,7 +23,6 @@
>   
>   /**
>    * struct ion_buffer - metadata for a particular buffer
> - * @node:		node in the ion_device buffers tree
>    * @list:		element in list of deferred freeable buffers
>    * @dev:		back pointer to the ion_device
>    * @heap:		back pointer to the heap the buffer came from
> @@ -39,10 +38,7 @@
>    * @attachments:	list of devices attached to this buffer
>    */
>   struct ion_buffer {
> -	union {
> -		struct rb_node node;
> -		struct list_head list;
> -	};
> +	struct list_head list;
>   	struct ion_device *dev;
>   	struct ion_heap *heap;
>   	unsigned long flags;
> @@ -61,14 +57,10 @@ void ion_buffer_destroy(struct ion_buffer *buffer);
>   /**
>    * struct ion_device - the metadata of the ion device node
>    * @dev:		the actual misc device
> - * @buffers:		an rb tree of all the existing buffers
> - * @buffer_lock:	lock protecting the tree of buffers
>    * @lock:		rwsem protecting the tree of heaps and clients
>    */
>   struct ion_device {
>   	struct miscdevice dev;
> -	struct rb_root buffers;
> -	struct mutex buffer_lock;
>   	struct rw_semaphore lock;
>   	struct plist_head heaps;
>   	struct dentry *debug_root;
> 

Acked-by: Laura Abbott <labbott@redhat.com>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-07-17 15:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-12  8:47 [PATCH] staging: android: ion: Remove unused rbtree for ion_buffer Lecopzer Chen
2019-07-17 15:07 ` Laura Abbott

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).