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 aecb3c7a442b426761f1e6f43308a1e9ea709ef3 (commit) via cb58da98065d255a23b80fe7f00412b1049c3b2c (commit) from 8b435cae63abbf0d44899b5bb87bb0aeb488ca2d (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 aecb3c7a442b426761f1e6f43308a1e9ea709ef3 Author: Maxim Uvarov maxim.uvarov@linaro.org Date: Thu Aug 17 21:36:40 2017 +0300
linux-gen: pktio: loop: fix recv if classier bit is enabled
Do not use fake header and just classify recived patched from loop ring.
Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org
diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c index c825393a..68abb6d8 100644 --- a/platform/linux-generic/pktio/loop.c +++ b/platform/linux-generic/pktio/loop.c @@ -58,7 +58,6 @@ static int loopback_recv(pktio_entry_t *pktio_entry, int index ODP_UNUSED, odp_buffer_hdr_t *hdr_tbl[QUEUE_MULTI_MAX]; queue_t queue; odp_packet_hdr_t *pkt_hdr; - odp_packet_hdr_t parsed_hdr; odp_packet_t pkt; odp_time_t ts_val; odp_time_t *ts = NULL; @@ -84,7 +83,7 @@ static int loopback_recv(pktio_entry_t *pktio_entry, int index ODP_UNUSED,
pkt = packet_from_buf_hdr(hdr_tbl[i]); pkt_len = odp_packet_len(pkt); - + pkt_hdr = odp_packet_hdr(pkt);
if (pktio_cls_enabled(pktio_entry)) { odp_packet_t new_pkt; @@ -106,14 +105,16 @@ static int loopback_recv(pktio_entry_t *pktio_entry, int index ODP_UNUSED, } else { pkt_addr = odp_packet_data(pkt); } + ret = cls_classify_packet(pktio_entry, pkt_addr, pkt_len, seg_len, - &new_pool, &parsed_hdr); + &new_pool, pkt_hdr); if (ret) { failed++; odp_packet_free(pkt); continue; } + if (new_pool != odp_packet_pool(pkt)) { new_pkt = odp_packet_copy(pkt, new_pool);
@@ -125,21 +126,14 @@ static int loopback_recv(pktio_entry_t *pktio_entry, int index ODP_UNUSED, } pkt = new_pkt; } - } - pkt_hdr = odp_packet_hdr(pkt); - - pkt_hdr->input = pktio_entry->s.handle; - - if (pktio_cls_enabled(pktio_entry)) - copy_packet_cls_metadata(&parsed_hdr, pkt_hdr); - else + } else { packet_parse_layer(pkt_hdr, pktio_entry->s.config.parser.layer); + }
packet_set_ts(pkt_hdr, ts); - + pkt_hdr->input = pktio_entry->s.handle; pktio_entry->s.stats.in_octets += pkt_len; - pkts[num_rx++] = pkt; }
commit cb58da98065d255a23b80fe7f00412b1049c3b2c Author: Maxim Uvarov maxim.uvarov@linaro.org Date: Thu Aug 17 21:35:48 2017 +0300
test: classifier: fix double free
looks like merge conflict was resolved wrongly and test has double free.
Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org
diff --git a/test/common_plat/validation/api/classification/odp_classification_test_pmr.c b/test/common_plat/validation/api/classification/odp_classification_test_pmr.c index e6b496a1..0acf2cf7 100644 --- a/test/common_plat/validation/api/classification/odp_classification_test_pmr.c +++ b/test/common_plat/validation/api/classification/odp_classification_test_pmr.c @@ -171,8 +171,6 @@ void classification_test_pktin_classifier_flag(void) CU_ASSERT(seqno == cls_pkt_get_seq(pkt));
odp_packet_free(pkt); - - odp_packet_free(pkt); odp_cos_destroy(cos); odp_cos_destroy(default_cos); odp_cls_pmr_destroy(pmr);
-----------------------------------------------------------------------
Summary of changes: platform/linux-generic/pktio/loop.c | 20 +++++++------------- .../api/classification/odp_classification_test_pmr.c | 2 -- 2 files changed, 7 insertions(+), 15 deletions(-)
hooks/post-receive