On 07/07, Andrii Nakryiko wrote: > Don't reset recorded sec_def handler unconditionally on > bpf_program__set_type(). There are two situations where this is wrong. > > First, if the program type didn't actually change. In that case original > SEC handler should work just fine. > > Second, catch-all custom SEC handler is supposed to work with any BPF > program type and SEC() annotation, so it also doesn't make sense to > reset that. > > This patch fixes both issues. This was reported recently in the context > of breaking perf tool, which uses custom catch-all handler for fancy BPF > prologue generation logic. This patch should fix the issue. > > [0] https://lore.kernel.org/linux-perf-users/ab865e6d-06c5-078e-e404-7f90686db50d@xxxxxxx/ > > Fixes: d6e6286a12e7 ("libbpf: disassociate section handler on explicit bpf_program__set_type() call") > Reported-by: Ravi Bangoria <ravi.bangoria@xxxxxxx> > Signed-off-by: Andrii Nakryiko <andrii@xxxxxxxxxx> Acked-by: Stanislav Fomichev <sdf@xxxxxxxxxx>