diff options
author | Petri Savolainen <petri.savolainen@linaro.org> | 2018-08-21 15:08:45 +0300 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2018-08-21 18:07:38 +0300 |
commit | f850092201668db7a73258a58324be10b7fb1909 (patch) | |
tree | e276eeec3ec9b154aa61c0a2681c84959e85419f | |
parent | 912e026c108d7a496ac7467e953dea77dadaaa57 (diff) |
linux-gen: queue: fix ordered queue issue
Also plain queue enqueue needs to call scheduler ordered enqueue
function, so that scheduler can check re-ordering needs.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
-rw-r--r-- | platform/linux-generic/odp_queue_basic.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/platform/linux-generic/odp_queue_basic.c b/platform/linux-generic/odp_queue_basic.c index 22a76b935..e5d915643 100644 --- a/platform/linux-generic/odp_queue_basic.c +++ b/platform/linux-generic/odp_queue_basic.c @@ -489,13 +489,16 @@ static inline int _plain_queue_enq_multi(odp_queue_t handle, odp_buffer_hdr_t *buf_hdr[], int num) { queue_entry_t *queue; - int num_enq; + int ret, num_enq; ring_st_t *ring_st; uint32_t buf_idx[num]; queue = qentry_from_handle(handle); ring_st = &queue->s.ring_st; + if (sched_fn->ord_enq_multi(handle, (void **)buf_hdr, num, &ret)) + return ret; + buffer_index_from_buf(buf_idx, buf_hdr, num); LOCK(queue); |