> Offset should be aligned first before checking if there is free space for
> another
> write.
>
> Bugzilla ID: 1665
> Fixes: 032a7e5499a0 ("trace: implement provider payload")
>
> Signed-off-by: Oleksandr Nahnybida <oleksan...@interfacemasters.com>
> ---
> Specified correct "Fixes" commit.
>
> lib/eal/include/rte_trace_point.h | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/lib/eal/include/rte_trace_point.h
> b/lib/eal/include/rte_trace_point.h
> index 8a317d31d2..343e0271b3 100644
> --- a/lib/eal/include/rte_trace_point.h
> +++ b/lib/eal/include/rte_trace_point.h
> @@ -328,7 +328,7 @@ __rte_trace_mem_get(uint64_t in)
> return NULL;
> }
> /* Check the wrap around case */
> - uint32_t offset = trace->offset;
> + uint32_t offset = RTE_ALIGN_CEIL(trace->offset,
> +__RTE_TRACE_EVENT_HEADER_SZ);
> if (unlikely((offset + sz) >= trace->len)) {
> /* Disable the trace event if it in DISCARD mode */
> if (unlikely(in & __RTE_TRACE_FIELD_ENABLE_DISCARD))
> @@ -336,8 +336,6 @@ __rte_trace_mem_get(uint64_t in)
>
> offset = 0;
> }
> - /* Align to event header size */
> - offset = RTE_ALIGN_CEIL(offset, __RTE_TRACE_EVENT_HEADER_SZ);
> void *mem = RTE_PTR_ADD(&trace->mem[0], offset);
> offset += sz;
> trace->offset = offset;
> --
> 2.49.0
Acked-by: Sunil Kumar Kori <sk...@marvell.com>