On Tue, May 02, 2017 at 02:31:56PM +0200, Jesper Dangaard Brouer wrote: > This patch does proper parsing of the ELF "maps" section, in-order to > be both backwards and forwards compatible with changes to the map > definition struct bpf_map_def, which gets compiled into the ELF file. > > The assumption is that new features with value zero, means that they > are not in-use. For backward compatibility where loading an ELF file > with a smaller struct bpf_map_def, only copy objects ELF size, leaving > rest of loaders struct zero. For forward compatibility where ELF file > have a larger struct bpf_map_def, only copy loaders own struct size > and verify that rest of the larger struct is zero, assuming this means > the newer feature was not activated, thus it should be safe for this > older loader to load this newer ELF file. > > Fixes: fb30d4b71214 ("bpf: Add tests for map-in-map") > Fixes: 409526bea3c3 ("samples/bpf: bpf_load.c detect and abort if ELF maps > section size is wrong") > Signed-off-by: Jesper Dangaard Brouer <bro...@redhat.com>
I would just merge patches 2 and 3 to reduce churn, but it looks like great improvement already. Acked-by: Alexei Starovoitov <a...@kernel.org>