Patch "libbpf: Ensure new BTF objects inherit input endianness" has been added to the 6.11-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    libbpf: Ensure new BTF objects inherit input endianness

to the 6.11-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     libbpf-ensure-new-btf-objects-inherit-input-endianne.patch
and it can be found in the queue-6.11 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit c487b7d6d2e0529b41ef5fd74e9ff97682f7151c
Author: Tony Ambardar <tony.ambardar@xxxxxxxxx>
Date:   Fri Aug 30 02:51:50 2024 -0700

    libbpf: Ensure new BTF objects inherit input endianness
    
    [ Upstream commit da18bfa59d403040d8bcba1284285916fe9e4425 ]
    
    New split BTF needs to preserve base's endianness. Similarly, when
    creating a distilled BTF, we need to preserve original endianness.
    
    Fix by updating libbpf's btf__distill_base() and btf_new_empty() to retain
    the byte order of any source BTF objects when creating new ones.
    
    Fixes: ba451366bf44 ("libbpf: Implement basic split BTF support")
    Fixes: 58e185a0dc35 ("libbpf: Add btf__distill_base() creating split BTF with distilled base BTF")
    Reported-by: Song Liu <song@xxxxxxxxxx>
    Reported-by: Eduard Zingerman <eddyz87@xxxxxxxxx>
    Suggested-by: Eduard Zingerman <eddyz87@xxxxxxxxx>
    Signed-off-by: Tony Ambardar <tony.ambardar@xxxxxxxxx>
    Signed-off-by: Andrii Nakryiko <andrii@xxxxxxxxxx>
    Tested-by: Alan Maguire <alan.maguire@xxxxxxxxxx>
    Acked-by: Eduard Zingerman <eddyz87@xxxxxxxxx>
    Link: https://lore.kernel.org/bpf/6358db36c5f68b07873a0a5be2d062b1af5ea5f8.camel@xxxxxxxxx/
    Link: https://lore.kernel.org/bpf/20240830095150.278881-1-tony.ambardar@xxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c
index 32c00db3b91b9..40aae244e35f7 100644
--- a/tools/lib/bpf/btf.c
+++ b/tools/lib/bpf/btf.c
@@ -996,6 +996,7 @@ static struct btf *btf_new_empty(struct btf *base_btf)
 		btf->base_btf = base_btf;
 		btf->start_id = btf__type_cnt(base_btf);
 		btf->start_str_off = base_btf->hdr->str_len;
+		btf->swapped_endian = base_btf->swapped_endian;
 	}
 
 	/* +1 for empty string at offset 0 */
@@ -5394,6 +5395,9 @@ int btf__distill_base(const struct btf *src_btf, struct btf **new_base_btf,
 	new_base = btf__new_empty();
 	if (!new_base)
 		return libbpf_err(-ENOMEM);
+
+	btf__set_endianness(new_base, btf__endianness(src_btf));
+
 	dist.id_map = calloc(n, sizeof(*dist.id_map));
 	if (!dist.id_map) {
 		err = -ENOMEM;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux