Commit 3e6998b1 authored by Lecopzer Chen's avatar Lecopzer Chen Committed by Greg Kroah-Hartman

staging: android: ion: Remove unused rbtree for ion_buffer

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: default avatarLecopzer Chen <lecopzer.chen@mediatek.com>
Cc: YJ Chiang <yj.chiang@mediatek.com>
Cc: Lecopzer Chen <lecopzer.chen@mediatek.com>
Acked-by: default avatarLaura Abbott <labbott@redhat.com>
Link: https://lore.kernel.org/r/20190712084717.12441-1-lecopzer.chen@mediatek.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c4011dde
...@@ -29,32 +29,6 @@ ...@@ -29,32 +29,6 @@
static struct ion_device *internal_dev; static struct ion_device *internal_dev;
static int heap_id; 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 */ /* this function should only be called while dev->lock is held */
static struct ion_buffer *ion_buffer_create(struct ion_heap *heap, static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
struct ion_device *dev, struct ion_device *dev,
...@@ -100,9 +74,6 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap, ...@@ -100,9 +74,6 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
INIT_LIST_HEAD(&buffer->attachments); INIT_LIST_HEAD(&buffer->attachments);
mutex_init(&buffer->lock); mutex_init(&buffer->lock);
mutex_lock(&dev->buffer_lock);
ion_buffer_add(dev, buffer);
mutex_unlock(&dev->buffer_lock);
return buffer; return buffer;
err1: err1:
...@@ -131,11 +102,6 @@ void ion_buffer_destroy(struct ion_buffer *buffer) ...@@ -131,11 +102,6 @@ void ion_buffer_destroy(struct ion_buffer *buffer)
static 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_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) if (heap->flags & ION_HEAP_FLAG_DEFER_FREE)
ion_heap_freelist_add(heap, buffer); ion_heap_freelist_add(heap, buffer);
...@@ -694,8 +660,6 @@ static int ion_device_create(void) ...@@ -694,8 +660,6 @@ static int ion_device_create(void)
} }
idev->debug_root = debugfs_create_dir("ion", NULL); idev->debug_root = debugfs_create_dir("ion", NULL);
idev->buffers = RB_ROOT;
mutex_init(&idev->buffer_lock);
init_rwsem(&idev->lock); init_rwsem(&idev->lock);
plist_head_init(&idev->heaps); plist_head_init(&idev->heaps);
internal_dev = idev; internal_dev = idev;
......
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
/** /**
* struct ion_buffer - metadata for a particular buffer * struct ion_buffer - metadata for a particular buffer
* @node: node in the ion_device buffers tree
* @list: element in list of deferred freeable buffers * @list: element in list of deferred freeable buffers
* @dev: back pointer to the ion_device * @dev: back pointer to the ion_device
* @heap: back pointer to the heap the buffer came from * @heap: back pointer to the heap the buffer came from
...@@ -39,10 +38,7 @@ ...@@ -39,10 +38,7 @@
* @attachments: list of devices attached to this buffer * @attachments: list of devices attached to this buffer
*/ */
struct ion_buffer { struct ion_buffer {
union {
struct rb_node node;
struct list_head list; struct list_head list;
};
struct ion_device *dev; struct ion_device *dev;
struct ion_heap *heap; struct ion_heap *heap;
unsigned long flags; unsigned long flags;
...@@ -61,14 +57,10 @@ void ion_buffer_destroy(struct ion_buffer *buffer); ...@@ -61,14 +57,10 @@ void ion_buffer_destroy(struct ion_buffer *buffer);
/** /**
* struct ion_device - the metadata of the ion device node * struct ion_device - the metadata of the ion device node
* @dev: the actual misc device * @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 * @lock: rwsem protecting the tree of heaps and clients
*/ */
struct ion_device { struct ion_device {
struct miscdevice dev; struct miscdevice dev;
struct rb_root buffers;
struct mutex buffer_lock;
struct rw_semaphore lock; struct rw_semaphore lock;
struct plist_head heaps; struct plist_head heaps;
struct dentry *debug_root; struct dentry *debug_root;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment