Maxim, what's the planned time to apply this?

On 15/04/16 06:31, Bala Manoharan wrote:
Reviewed-by: Balasubramanian Manoharan <bala.manoha...@linaro.org
<mailto:bala.manoha...@linaro.org>>

On 13 April 2016 at 19:50, Zoltan Kiss <zoltan.k...@linaro.org
<mailto:zoltan.k...@linaro.org>> wrote:

    In case of error the 'pkt' should be released by the calling function.
    Currently loopback gives it back to the receiver and report it as
    success
    in the stats.

    Signed-off-by: Zoltan Kiss <zoltan.k...@linaro.org
    <mailto:zoltan.k...@linaro.org>>
    ---

    v2: handle release in caller instead, and adjust stats.

      platform/linux-generic/odp_classification.c | 10 +++-------
      platform/linux-generic/pktio/loop.c         |  9 ++++++---
      2 files changed, 9 insertions(+), 10 deletions(-)

    diff --git a/platform/linux-generic/odp_classification.c
    b/platform/linux-generic/odp_classification.c
    index 8522023..3a18a78 100644
    --- a/platform/linux-generic/odp_classification.c
    +++ b/platform/linux-generic/odp_classification.c
    @@ -745,21 +745,17 @@ int _odp_packet_classifier(pktio_entry_t
    *entry, odp_packet_t pkt)
             if (cos == NULL)
                     return -1;

    -       if (cos->s.pool == NULL) {
    -               odp_packet_free(pkt);
    +       if (cos->s.pool == NULL)
                     return -1;
    -       }

    -       if (cos->s.queue == NULL) {
    -               odp_packet_free(pkt);
    +       if (cos->s.queue == NULL)
                     return -1;
    -       }

             if (odp_packet_pool(pkt) != cos->s.pool->s.pool_hdl) {
                     new_pkt = odp_packet_copy(pkt,
    cos->s.pool->s.pool_hdl);
    -               odp_packet_free(pkt);
                     if (new_pkt == ODP_PACKET_INVALID)
                             return -1;
    +               odp_packet_free(pkt);
             } else {
                     new_pkt = pkt;
             }
    diff --git a/platform/linux-generic/pktio/loop.c
    b/platform/linux-generic/pktio/loop.c
    index 0ea6d0e..f6a8c1d 100644
    --- a/platform/linux-generic/pktio/loop.c
    +++ b/platform/linux-generic/pktio/loop.c
    @@ -70,10 +70,13 @@ static int loopback_recv(pktio_entry_t
    *pktio_entry, odp_packet_t pkts[],
                             pkt_hdr = odp_packet_hdr(pkt);
                             packet_parse_reset(pkt_hdr);
                             packet_parse_l2(pkt_hdr);
    -                       if (0 > _odp_packet_classifier(pktio_entry,
    pkt)) {
    -                               pkts[j++] = pkt;
    +                       if (!_odp_packet_classifier(pktio_entry, pkt)) {
                                     pktio_entry->s.stats.in_octets +=
    -                                       odp_packet_len(pkts[i]);
    +                                       odp_packet_len(pkt);
    +                       } else {
    +                               pktio_entry->s.stats.in_errors +=
    +                                       odp_packet_len(pkt);
    +                               odp_packet_free(pkt);
                             }
                     }
                     nbr = j;
    --
    1.9.1


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

Reply via email to