From: Jesper Dangaard Brouer <bro...@redhat.com> Date: Tue, 30 May 2017 14:37:51 +0200
> An eBPF ELF file generated with LLVM can contain several program > section, which can be used for bpf tail calls. The bpf prog file > descriptors are accessible via array prog_fd[]. > > At-least XDP samples assume ordering, and uses prog_fd[0] is the main > XDP program to attach. The actual order of array prog_fd[] depend on > whether or not a bpf program section is referencing any maps or not. > Not using a map result in being loaded/processed after all other > prog section. Thus, this can lead to some very strange and hard to > debug situation, as the user can only see a FD and cannot correlated > that with the ELF section name. > > The fix is rather simple, and even removes duplicate memcmp code. > Simply load program sections as the last step, instead of > load_and_attach while processing the relocation section. > > When working with tail calls, it become even more essential that the > order of prog_fd[] is consistant, like the current dependency of the > map_fd[] order. > > Signed-off-by: Jesper Dangaard Brouer <bro...@redhat.com> Applied to net-next, thanks Jesper.