Re: [PATCH] kbuffer: fix endianness flags for big-endian host

Bastien Curutchet <[email protected]> Thu, 27 Nov 2025 15:44:21 +0100
Newsgroups org.kernel.vger.linux-trace-devel
Message-ID <[email protected]>
Hi all,


Gentle ping here, has anyone had the chance to take a look at it ?


Best regards,
Bastien

On 11/4/25 9:45 AM, Bastien Curutchet wrote:
> When KBUFFER_ENDIAN_SAME_AS_HOST is set on a big-endian host, the
> KBUFFER_FL_BIG_ENDIAN flag is added to the local flags variable instead
> of the kbuf->flags. Since the local flags variable has already been
> copied to kbuf->flags at that time, the KBUFFER_FL_BIG_ENDIAN flag is
> lost when we leave the function.
> 
> Add KBUFFER_FL_BIG_ENDIAN to the kbuf->flags when
> KBUFFER_ENDIAN_SAME_AS_HOST is used on a big-endian host.
> 
> Signed-off-by: Bastien Curutchet <[email protected]>
> Fixes: 5f2aa8497c5b ("libtraceevent kbuffer: Add SAME_AS_HOST for endian and size")
> ---
>   src/kbuffer-parse.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/kbuffer-parse.c b/src/kbuffer-parse.c
> index 71291adf0860b8392e6cfa0b0640c6472def422c..232d1688934a946e19f52886c2d25e4c73637b4c 100644
> --- a/src/kbuffer-parse.c
> +++ b/src/kbuffer-parse.c
> @@ -247,7 +247,7 @@ kbuffer_alloc(enum kbuffer_long_size size, enum kbuffer_endian endian)
>   
>   	if (host_is_bigendian()) {
>   		if (endian == KBUFFER_ENDIAN_SAME_AS_HOST)
> -			flags |= KBUFFER_FL_BIG_ENDIAN;
> +			kbuf->flags |= KBUFFER_FL_BIG_ENDIAN;
>   		kbuf->flags |= KBUFFER_FL_HOST_BIG_ENDIAN;
>   	}
>   
> 
> ---
> base-commit: b3f5849527ae226b88342ef80fc42c66ab206f99
> change-id: 20251028-fix-parse-7395a8571b72
> 
> Best regards,