Signed-off-by: Bill Fischofer <bill.fischo...@linaro.org>
---
 .../linux-generic/include/odp_queue_internal.h     | 16 ++++++-------
 platform/linux-generic/odp_queue.c                 | 27 ++++++++++------------
 2 files changed, 19 insertions(+), 24 deletions(-)

diff --git a/platform/linux-generic/include/odp_queue_internal.h 
b/platform/linux-generic/include/odp_queue_internal.h
index 1bd365b..6120740 100644
--- a/platform/linux-generic/include/odp_queue_internal.h
+++ b/platform/linux-generic/include/odp_queue_internal.h
@@ -249,14 +249,13 @@ static inline void order_release(queue_entry_t 
*origin_qe, int count)
 
 static inline int reorder_deq(queue_entry_t *queue,
                              queue_entry_t *origin_qe,
-                             odp_buffer_hdr_t **reorder_buf_return,
-                             odp_buffer_hdr_t **reorder_prev_return,
+                             odp_buffer_hdr_t **reorder_tail_return,
                              odp_buffer_hdr_t **placeholder_buf_return,
                              int *release_count_return,
                              int *placeholder_count_return)
 {
        odp_buffer_hdr_t *reorder_buf     = origin_qe->s.reorder_head;
-       odp_buffer_hdr_t *reorder_prev    = NULL;
+       odp_buffer_hdr_t *reorder_tail    = NULL;
        odp_buffer_hdr_t *placeholder_buf = NULL;
        odp_buffer_hdr_t *next_buf;
        int               deq_count = 0;
@@ -300,9 +299,9 @@ static inline int reorder_deq(queue_entry_t *queue,
                                while (reorder_link->next)
                                        reorder_link = reorder_link->next;
                                reorder_link->next = next_buf;
-                               reorder_prev = reorder_link;
+                               reorder_tail = reorder_link;
                        } else {
-                               reorder_prev = reorder_buf;
+                               reorder_tail = reorder_buf;
                        }
 
                        deq_count++;
@@ -310,8 +309,8 @@ static inline int reorder_deq(queue_entry_t *queue,
                                release_count++;
                        reorder_buf = next_buf;
                } else if (!reorder_buf->target_qe) {
-                       if (reorder_prev)
-                               reorder_prev->next = next_buf;
+                       if (reorder_tail)
+                               reorder_tail->next = next_buf;
                        else
                                origin_qe->s.reorder_head = next_buf;
 
@@ -325,8 +324,7 @@ static inline int reorder_deq(queue_entry_t *queue,
                }
        }
 
-       *reorder_buf_return = reorder_buf;
-       *reorder_prev_return = reorder_prev;
+       *reorder_tail_return = reorder_tail;
        *placeholder_buf_return = placeholder_buf;
        *release_count_return = release_count;
        *placeholder_count_return = placeholder_count;
diff --git a/platform/linux-generic/odp_queue.c 
b/platform/linux-generic/odp_queue.c
index d9be4b3..9cab9b2 100644
--- a/platform/linux-generic/odp_queue.c
+++ b/platform/linux-generic/odp_queue.c
@@ -428,7 +428,7 @@ int ordered_queue_enq(queue_entry_t *queue,
 {
        odp_buffer_hdr_t *reorder_buf;
        odp_buffer_hdr_t *next_buf;
-       odp_buffer_hdr_t *reorder_prev;
+       odp_buffer_hdr_t *reorder_tail;
        odp_buffer_hdr_t *placeholder_buf = NULL;
        int               release_count, placeholder_count;
        int               sched = 0;
@@ -496,17 +496,17 @@ int ordered_queue_enq(queue_entry_t *queue,
        /* Pick up this element, and all others resolved by this enq,
         * and add them to the target queue.
         */
-       reorder_deq(queue, origin_qe, &reorder_buf, &reorder_prev,
-                   &placeholder_buf, &release_count, &placeholder_count);
+       reorder_deq(queue, origin_qe, &reorder_tail, &placeholder_buf,
+                   &release_count, &placeholder_count);
 
        /* Move the list from the reorder queue to the target queue */
        if (queue->s.head)
                queue->s.tail->next = origin_qe->s.reorder_head;
        else
                queue->s.head       = origin_qe->s.reorder_head;
-       queue->s.tail               = reorder_prev;
-       origin_qe->s.reorder_head   = reorder_prev->next;
-       reorder_prev->next          = NULL;
+       queue->s.tail               = reorder_tail;
+       origin_qe->s.reorder_head   = reorder_tail->next;
+       reorder_tail->next          = NULL;
 
        /* Reflect resolved orders in the output sequence */
        order_release(origin_qe, release_count + placeholder_count);
@@ -847,20 +847,17 @@ int queue_pktout_enq(queue_entry_t *queue, 
odp_buffer_hdr_t *buf_hdr,
         */
        odp_buffer_hdr_t *reorder_buf;
        odp_buffer_hdr_t *next_buf;
-       odp_buffer_hdr_t *reorder_prev;
+       odp_buffer_hdr_t *reorder_tail;
        odp_buffer_hdr_t *xmit_buf;
        odp_buffer_hdr_t *placeholder_buf;
-       int               deq_count, release_count, placeholder_count;
-
-       deq_count = reorder_deq(queue, origin_qe,
-                               &reorder_buf, &reorder_prev, &placeholder_buf,
-                               &release_count, &placeholder_count);
+       int               release_count, placeholder_count;
 
        /* Send released buffers as well */
-       if (deq_count > 0) {
+       if (reorder_deq(queue, origin_qe, &reorder_tail, &placeholder_buf,
+                       &release_count, &placeholder_count)) {
                xmit_buf = origin_qe->s.reorder_head;
-               origin_qe->s.reorder_head = reorder_prev->next;
-               reorder_prev->next = NULL;
+               origin_qe->s.reorder_head = reorder_tail->next;
+               reorder_tail->next = NULL;
                UNLOCK(&origin_qe->s.lock);
 
                do {
-- 
2.1.4

_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to