[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] pickles: btf: improve magic num endianness logic
From: |
Jose E. Marchesi |
Subject: |
Re: [PATCH] pickles: btf: improve magic num endianness logic |
Date: |
Tue, 04 Jan 2022 23:48:32 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Hi David.
> The magic number should always read as 0xeb9f (like eBPF). When mapping
> a BTF_Header, if 0x9feb is read instead then the current endianness is
> simply the opposite that of the BTF information.
>
> This fixes an issue where attempting to map a little-endian BTF_Header
> while in big-endian mode, the endianness would not correctly be
> changed.
OK for both master and maint/poke-1.
Thanks.
>
> 2022-01-04 David Faust <david.faust@oracle.com>
>
> * pickles/btf.pk (BTF_Header): Adjust constraint on magic number
> to properly set endianness as needed.
> ---
> ChangeLog | 5 +++++
> pickles/btf.pk | 6 +++---
> 2 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/ChangeLog b/ChangeLog
> index b725a005..b889ab5e 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,3 +1,8 @@
> +2022-01-04 David Faust <david.faust@oracle.com>
> +
> + * pickles/btf.pk (BTF_Header): Adjust constraint on magic number
> + to properly set endianness as needed.
> +
> 2022-01-04 Jose E. Marchesi <jemarch@gnu.org>
>
> * libpoke/pkl-gen.c: Remove obsolete comments. The GEN contexts
> diff --git a/pickles/btf.pk b/pickles/btf.pk
> index 51110044..7b8cc0f5 100644
> --- a/pickles/btf.pk
> +++ b/pickles/btf.pk
> @@ -199,9 +199,9 @@ type BTF_Type =
> type BTF_Header =
> struct
> {
> - uint<16> magic : ((magic == 0x9feb && set_endian (ENDIAN_BIG)
> - || (magic == 0xeb9f && set_endian (ENDIAN_LITTLE))))
> - = (get_endian == ENDIAN_BIG ? 0x9feb : 0xeb9f);
> + uint<16> magic : (magic == 0xeb9f)
> + || (magic == 0x9feb && set_endian (!get_endian))
> + = 0xeb9f;
> uint<8> version;
> uint<8> flags;
> offset<uint<32>,B> hdr_len; /* Size of this header. */