This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, master has been updated via ac8b5f2a26edfa6249e134572a151dbd36c8dce6 (commit) via 89b0cbaa9cf4b8d6e93258f4dc2fd5084f3287b3 (commit) from f4e4b30454d6d961d0401717a11c6da06a889a7b (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit ac8b5f2a26edfa6249e134572a151dbd36c8dce6 Author: Balasubramanian Manoharan bala.manoharan@linaro.org Date: Fri Jan 19 00:20:47 2018 +0530
linux-gen: cls: unwind cls queues on failure
Fixes: https://bugs.linaro.org/show_bug.cgi?id=3576
Signed-off-by: Balasubramanian Manoharan bala.manoharan@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/platform/linux-generic/odp_classification.c b/platform/linux-generic/odp_classification.c index 7cefe8ec..b41a5fd8 100644 --- a/platform/linux-generic/odp_classification.c +++ b/platform/linux-generic/odp_classification.c @@ -212,6 +212,12 @@ static void _odp_cls_update_hash_proto(cos_t *cos, cos->s.hash_proto.udp = 1; }
+static inline void _cls_queue_unwind(uint32_t tbl_index, uint32_t j) +{ + while (j > 0) + odp_queue_destroy(queue_grp_tbl->s.queue[tbl_index + --j]); +} + odp_cos_t odp_cls_cos_create(const char *name, odp_cls_cos_param_t *param) { int i, j; @@ -255,6 +261,8 @@ odp_cos_t odp_cls_cos_create(const char *name, odp_cls_cos_param_t *param) queue = odp_queue_create(NULL, &cos->s. queue_param); if (queue == ODP_QUEUE_INVALID) { + /* unwind the queues */ + _cls_queue_unwind(tbl_index, j); UNLOCK(&cos->s.lock); return ODP_COS_INVALID; }
commit 89b0cbaa9cf4b8d6e93258f4dc2fd5084f3287b3 Author: Balasubramanian Manoharan bala.manoharan@linaro.org Date: Thu Jan 18 22:01:35 2018 +0530
linux-gen: cls: invalid CoS index
Fixes: https://bugs.linaro.org/show_bug.cgi?id=3576
Signed-off-by: Balasubramanian Manoharan bala.manoharan@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/platform/linux-generic/odp_classification.c b/platform/linux-generic/odp_classification.c index 5aa3b84a..7cefe8ec 100644 --- a/platform/linux-generic/odp_classification.c +++ b/platform/linux-generic/odp_classification.c @@ -250,7 +250,7 @@ odp_cos_t odp_cls_cos_create(const char *name, odp_cls_cos_param_t *param) cos->s.num_queue = param->num_queue; _odp_cls_update_hash_proto(cos, param->hash_proto); - tbl_index = cos->s.index * CLS_COS_QUEUE_MAX; + tbl_index = i * CLS_COS_QUEUE_MAX; for (j = 0; j < CLS_COS_QUEUE_MAX; j++) { queue = odp_queue_create(NULL, &cos->s. queue_param);
-----------------------------------------------------------------------
Summary of changes: platform/linux-generic/odp_classification.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
hooks/post-receive