Hello. It was discovered during strace development that struct bpf_map_info and struct bpf_prog_info now have different layouts of i386/compat and x86_64. Since it's already broken and bpf syscall has no separate compat (as far as I can see), and the affecting change was introduced recently (in Linux 4.16), it's proposed to change the layout of these structures on 32-bit architectures by using __aligned_u64.
In order to somewhat future-proof from this problem in future, an approach similar to the one implemented in RDMA subsystem recently is proposed: use __aligned_u64 consistently throughout the UAPI header. Eugene Syromiatnikov (2): bpf: fix alignment of netns_dev/netns_ino fields in bpf_{map,prog}_info bpf: enforce usage of __aligned_u64 in the UAPI header include/uapi/linux/bpf.h | 30 +++++++++++++++--------------- tools/include/uapi/linux/bpf.h | 30 +++++++++++++++--------------- 2 files changed, 30 insertions(+), 30 deletions(-) -- 2.1.4