Hi Stefan, >> On 08/17/2018 06:17 PM, Russell King - ARM Linux wrote: >> > On Fri, Aug 17, 2018 at 02:40:19PM +0200, Daniel Borkmann wrote: >> >> I'd have one potential bug suspicion, for the 4.18 one you were trying, >> >> could you run with the below patch to see whether it would help? >> > >> > I think this is almost certainly the problem - looking at the history, >> > it seems that the "-4" was assumed to be part of the scratch stuff in >> > commit 38ca93060163 ("bpf, arm32: save 4 bytes of unneeded stack space") >> > but it isn't - it's because "off" of zero refers to the top word in the >> > stack (iow at STACK_SIZE-4). >> >> Yeah agree, my thinking as well (albeit bit late, sigh, sorry about that). >> Waiting for Peter to get back with results for definite confirmation. Your >> rework in 1c35ba122d4a ("ARM: net: bpf: use negative numbers for stacked >> registers") and 96cced4e774a ("ARM: net: bpf: access eBPF scratch space using >> ARM FP register") fixes this in mainline, so unless I'm missing something >> this >> would only need a stand-alone fix for 4.18/stable which I can cook up and >> submit then. > > i was able to reproduce this issue on RPi 3 with Linux 4.18.1 + > multi_v7_defconfig and the following config changes: > > --- a/arch/arm/configs/multi_v7_defconfig > +++ b/arch/arm/configs/multi_v7_defconfig > @@ -2,7 +2,10 @@ CONFIG_SYSVIPC=y > CONFIG_NO_HZ=y > CONFIG_HIGH_RES_TIMERS=y > CONFIG_CGROUPS=y > +CONFIG_CGROUP_BPF=y > CONFIG_BLK_DEV_INITRD=y > +CONFIG_BPF_SYSCALL=y > +CONFIG_BPF_JIT_ALWAYS_ON=y > CONFIG_EMBEDDED=y > CONFIG_PERF_EVENTS=y > CONFIG_MODULES=y > @@ -153,6 +156,8 @@ CONFIG_IPV6_MIP6=m > CONFIG_IPV6_TUNNEL=m > CONFIG_IPV6_MULTIPLE_TABLES=y > CONFIG_NET_DSA=m > +CONFIG_BPF_JIT=y > +CONFIG_BPF_STREAM_PARSER=y > CONFIG_CAN=y > CONFIG_CAN_AT91=m > CONFIG_CAN_FLEXCAN=m > > After applying the "-4" patch the oopses doesn't appear during boot anymore.
Would be fab to get that into the kernel so this is widely tested moving forward. Peter