Patch "libbpf: Fix incorrect traversal end type ID when marking BTF_IS_EMBEDDED" has been added to the 6.12-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: Fix incorrect traversal end type ID when marking BTF_IS_EMBEDDED

to the 6.12-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-fix-incorrect-traversal-end-type-id-when-mark.patch
and it can be found in the queue-6.12 subdirectory.

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



commit 63683e91de89a2846d09fa461889a49600ca1752
Author: Pu Lehui <pulehui@xxxxxxxxxx>
Date:   Wed Jan 15 10:02:40 2025 +0000

    libbpf: Fix incorrect traversal end type ID when marking BTF_IS_EMBEDDED
    
    [ Upstream commit 5ca681a86ef93369685cb63f71994f4cf7303e7c ]
    
    When redirecting the split BTF to the vmlinux base BTF, we need to mark
    the distilled base struct/union members of split BTF structs/unions in
    id_map with BTF_IS_EMBEDDED. This indicates that these types must match
    both name and size later. Therefore, we need to traverse the entire
    split BTF, which involves traversing type IDs from nr_dist_base_types to
    nr_types. However, the current implementation uses an incorrect
    traversal end type ID, so let's correct it.
    
    Fixes: 19e00c897d50 ("libbpf: Split BTF relocation")
    Signed-off-by: Pu Lehui <pulehui@xxxxxxxxxx>
    Signed-off-by: Andrii Nakryiko <andrii@xxxxxxxxxx>
    Link: https://lore.kernel.org/bpf/20250115100241.4171581-3-pulehui@xxxxxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/tools/lib/bpf/btf_relocate.c b/tools/lib/bpf/btf_relocate.c
index 4f7399d85eab3..8ef8003480dac 100644
--- a/tools/lib/bpf/btf_relocate.c
+++ b/tools/lib/bpf/btf_relocate.c
@@ -212,7 +212,7 @@ static int btf_relocate_map_distilled_base(struct btf_relocate *r)
 	 * need to match both name and size, otherwise embedding the base
 	 * struct/union in the split type is invalid.
 	 */
-	for (id = r->nr_dist_base_types; id < r->nr_split_types; id++) {
+	for (id = r->nr_dist_base_types; id < r->nr_dist_base_types + r->nr_split_types; id++) {
 		err = btf_mark_embedded_composite_type_ids(r, id);
 		if (err)
 			goto done;




[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