Messages in this thread | | | From | Anton Protopopov <> | Date | Wed, 3 Apr 2024 12:09:29 +0200 | Subject | Re: include/linux/build_bug.h:78:41: error: static assertion failed: "struct bpf_fib_lookup size check" |
| |
On Wed, Apr 3, 2024 at 11:57 AM Anton Protopopov <aspsk@isovalent.com> wrote: > > On Wed, Apr 3, 2024 at 11:39 AM Alexander Lobakin > <aleksander.lobakin@intel.com> wrote: > > > > From: Arnd Bergmann <arnd@arndb.de> > > Date: Wed, 03 Apr 2024 10:45:36 +0200 > > > > > On Wed, Apr 3, 2024, at 10:10, Anton Protopopov wrote: > > >> On Wed, Apr 3, 2024 at 10:03 AM Naresh Kamboju > > >> <naresh.kamboju@linaro.org> wrote: > > >>> > > >>> The arm footbridge_defconfig failed with gcc-13 and gcc-8 on Linux next > > >>> starting from next-20240328..next-20240402. > > >>> > > >>> arm: > > >>> build: > > >>> * gcc-8-footbridge_defconfig - Failed > > >>> * gcc-13-footbridge_defconfig - Failed > > >>> > > >>> Reported-by: Linux Kernel Functional Testing <lkft@linaro.org> > > >>> > > >>> In file included from include/linux/bitfield.h:10, > > >>> from arch/arm/include/asm/ptrace.h:13, > > >>> from arch/arm/include/asm/processor.h:14, > > >>> from include/linux/prefetch.h:15, > > >>> from arch/arm/include/asm/atomic.h:12, > > >>> from include/linux/atomic.h:7, > > >>> from net/core/filter.c:20: > > >>> include/linux/build_bug.h:78:41: error: static assertion failed: > > >>> "struct bpf_fib_lookup size check" > > >>> 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) > > >>> | ^~~~~~~~~~~~~~ > > >> > > >> Thanks, I will take a look today > > > > Naresh, > > > > Could you please remove that static_assert() and dump bpf_bif_lookup > > layout from pahole? > > > > Anton unionized { smac, dmac } with __u32 mark. On x86_64, the offset of > > smac was 52 (aligned to 4) already, so I don't really get what AEABI > > does here. IIRC it aligns every structure to 8 bytes? > > > > Maybe we could just add __attribute__((__packed__)) > > __attribute__((__aligned__(4))) to that anonymous union at the end. > > Yeah, I am sending a patch for this right now. Better not to depend on > compiler options
One __packed__ was not enough though. The problem was also with the union of two __u16's which is padded to be 32 bits when AEABI=n and the whole structure is packed (so total size is 66 in this case).
| |