Re: [offlist] Re: Crash in netlink/sk_filter_trim_cap on ARMv7 on 4.18rc1
From: Peter Robinson <hidden>
Date: 2018-08-17 21:15:01
Also in:
linux-arm-kernel
Hi Stefan,
quoted hunk ↗ jump to hunk
quoted
On 08/17/2018 06:17 PM, Russell King - ARM Linux wrote:quoted
On Fri, Aug 17, 2018 at 02:40:19PM +0200, Daniel Borkmann wrote:quoted
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=mAfter 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