Thanks for spotting that.  I hadn't realized that odp_crypto was making
those changes, even though it notes that it isn't needed for the API.  That
looks to be a somewhat ugly solution and I'd like to take a look to see if
there isn't a cleaner way to deal with this other than this sort of hack.

On Tue, Jun 9, 2015 at 10:22 AM, Christophe Milard <
christophe.mil...@linaro.org> wrote:

> There seems to be an issue with the handling of completion event buffers:
> These are drawn from the same pool as the packet event buffers,
> but are re-typed as completion events.
> (see platform/linux-generic/odp_crypto.c:428)
> However, when these are freed and returned to the pool,
> the buffer type was not restored to packet event buffers:
> The code that allocates packet event buffers from the pool did not update
> the buffer type either, relying on all buffers in the pool already being
> initialized to be packet event buffers
>
> This patch resets the buffer type at release time.
>
> Signed-off-by: Christophe Milard <christophe.mil...@linaro.org>
> ---
>  platform/linux-generic/odp_pool.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/platform/linux-generic/odp_pool.c
> b/platform/linux-generic/odp_pool.c
> index 35e79a0..6e65926 100644
> --- a/platform/linux-generic/odp_pool.c
> +++ b/platform/linux-generic/odp_pool.c
> @@ -560,6 +560,9 @@ void odp_buffer_free(odp_buffer_t buf)
>         odp_buffer_hdr_t *buf_hdr = odp_buf_to_hdr(buf);
>         pool_entry_t *pool = odp_buf_to_pool(buf_hdr);
>
> +       /* Reset packet type in case it was "casted" (e.g. crypto
> completions)*/
> +       buf_hdr->type = pool->s.params.type;
> +
>         if (odp_unlikely(pool->s.low_wm_assert))
>                 ret_buf(&pool->s, buf_hdr);
>         else
> --
> 1.9.1
>
> _______________________________________________
> lng-odp mailing list
> lng-odp@lists.linaro.org
> https://lists.linaro.org/mailman/listinfo/lng-odp
>
_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to