aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/android/binder_alloc.c
diff options
context:
space:
mode:
authorSherry Yang <sherryy@android.com>2017-08-23 11:46:39 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-08-28 10:47:17 -0400
commite21762196118c272321532fe64c512efaa088b7e (patch)
tree3bbcafba7be351abc6d00a2e2ad793f3ebe8eb21 /drivers/android/binder_alloc.c
parent9c0dda14951e9ed30b6f04e14bf64a3c69686c5b (diff)
android: binder: Refactor prev and next buffer into a helper function
Use helper functions buffer_next and buffer_prev instead of list_entry to get the next and previous buffers. Signed-off-by: Sherry Yang <sherryy@android.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/android/binder_alloc.c')
-rw-r--r--drivers/android/binder_alloc.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c
index 40f31df60580..f15af2b55a62 100644
--- a/drivers/android/binder_alloc.c
+++ b/drivers/android/binder_alloc.c
@@ -48,14 +48,23 @@ module_param_named(debug_mask, binder_alloc_debug_mask,
48 pr_info(x); \ 48 pr_info(x); \
49 } while (0) 49 } while (0)
50 50
51static struct binder_buffer *binder_buffer_next(struct binder_buffer *buffer)
52{
53 return list_entry(buffer->entry.next, struct binder_buffer, entry);
54}
55
56static struct binder_buffer *binder_buffer_prev(struct binder_buffer *buffer)
57{
58 return list_entry(buffer->entry.prev, struct binder_buffer, entry);
59}
60
51static size_t binder_alloc_buffer_size(struct binder_alloc *alloc, 61static size_t binder_alloc_buffer_size(struct binder_alloc *alloc,
52 struct binder_buffer *buffer) 62 struct binder_buffer *buffer)
53{ 63{
54 if (list_is_last(&buffer->entry, &alloc->buffers)) 64 if (list_is_last(&buffer->entry, &alloc->buffers))
55 return alloc->buffer + 65 return alloc->buffer +
56 alloc->buffer_size - (void *)buffer->data; 66 alloc->buffer_size - (void *)buffer->data;
57 return (size_t)list_entry(buffer->entry.next, 67 return (size_t)binder_buffer_next(buffer) - (size_t)buffer->data;
58 struct binder_buffer, entry) - (size_t)buffer->data;
59} 68}
60 69
61static void binder_insert_free_buffer(struct binder_alloc *alloc, 70static void binder_insert_free_buffer(struct binder_alloc *alloc,
@@ -470,7 +479,7 @@ static void binder_delete_free_buffer(struct binder_alloc *alloc,
470 int free_page_start = 1; 479 int free_page_start = 1;
471 480
472 BUG_ON(alloc->buffers.next == &buffer->entry); 481 BUG_ON(alloc->buffers.next == &buffer->entry);
473 prev = list_entry(buffer->entry.prev, struct binder_buffer, entry); 482 prev = binder_buffer_prev(buffer);
474 BUG_ON(!prev->free); 483 BUG_ON(!prev->free);
475 if (buffer_end_page(prev) == buffer_start_page(buffer)) { 484 if (buffer_end_page(prev) == buffer_start_page(buffer)) {
476 free_page_start = 0; 485 free_page_start = 0;
@@ -482,8 +491,7 @@ static void binder_delete_free_buffer(struct binder_alloc *alloc,
482 } 491 }
483 492
484 if (!list_is_last(&buffer->entry, &alloc->buffers)) { 493 if (!list_is_last(&buffer->entry, &alloc->buffers)) {
485 next = list_entry(buffer->entry.next, 494 next = binder_buffer_next(buffer);
486 struct binder_buffer, entry);
487 if (buffer_start_page(next) == buffer_end_page(buffer)) { 495 if (buffer_start_page(next) == buffer_end_page(buffer)) {
488 free_page_end = 0; 496 free_page_end = 0;
489 if (buffer_start_page(next) == 497 if (buffer_start_page(next) ==
@@ -544,8 +552,7 @@ static void binder_free_buf_locked(struct binder_alloc *alloc,
544 rb_erase(&buffer->rb_node, &alloc->allocated_buffers); 552 rb_erase(&buffer->rb_node, &alloc->allocated_buffers);
545 buffer->free = 1; 553 buffer->free = 1;
546 if (!list_is_last(&buffer->entry, &alloc->buffers)) { 554 if (!list_is_last(&buffer->entry, &alloc->buffers)) {
547 struct binder_buffer *next = list_entry(buffer->entry.next, 555 struct binder_buffer *next = binder_buffer_next(buffer);
548 struct binder_buffer, entry);
549 556
550 if (next->free) { 557 if (next->free) {
551 rb_erase(&next->rb_node, &alloc->free_buffers); 558 rb_erase(&next->rb_node, &alloc->free_buffers);
@@ -553,8 +560,7 @@ static void binder_free_buf_locked(struct binder_alloc *alloc,
553 } 560 }
554 } 561 }
555 if (alloc->buffers.next != &buffer->entry) { 562 if (alloc->buffers.next != &buffer->entry) {
556 struct binder_buffer *prev = list_entry(buffer->entry.prev, 563 struct binder_buffer *prev = binder_buffer_prev(buffer);
557 struct binder_buffer, entry);
558 564
559 if (prev->free) { 565 if (prev->free) {
560 binder_delete_free_buffer(alloc, buffer); 566 binder_delete_free_buffer(alloc, buffer);