diff options
author | Sherry Yang <sherryy@android.com> | 2017-08-23 11:46:39 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-08-28 10:47:17 -0400 |
commit | e21762196118c272321532fe64c512efaa088b7e (patch) | |
tree | 3bbcafba7be351abc6d00a2e2ad793f3ebe8eb21 /drivers/android/binder_alloc.c | |
parent | 9c0dda14951e9ed30b6f04e14bf64a3c69686c5b (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.c | 24 |
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 | ||
51 | static struct binder_buffer *binder_buffer_next(struct binder_buffer *buffer) | ||
52 | { | ||
53 | return list_entry(buffer->entry.next, struct binder_buffer, entry); | ||
54 | } | ||
55 | |||
56 | static struct binder_buffer *binder_buffer_prev(struct binder_buffer *buffer) | ||
57 | { | ||
58 | return list_entry(buffer->entry.prev, struct binder_buffer, entry); | ||
59 | } | ||
60 | |||
51 | static size_t binder_alloc_buffer_size(struct binder_alloc *alloc, | 61 | static 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 | ||
61 | static void binder_insert_free_buffer(struct binder_alloc *alloc, | 70 | static 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); |