• Anders Roxell's avatar
    bpf: test_bpf: turn off preemption in function __run_once · fd92d664
    Anders Roxell authored
    When running BPF test suite the following splat occurs:
    
    [  415.930950] test_bpf: #0 TAX jited:0
    [  415.931067] BUG: assuming atomic context at lib/test_bpf.c:6674
    [  415.946169] in_atomic(): 0, irqs_disabled(): 0, pid: 11556, name: modprobe
    [  415.953176] INFO: lockdep is turned off.
    [  415.957207] CPU: 1 PID: 11556 Comm: modprobe Tainted: G        W         5.0.0-rc7-next-20190220 #1
    [  415.966328] Hardware name: HiKey Development Board (DT)
    [  415.971592] Call trace:
    [  415.974069]  dump_backtrace+0x0/0x160
    [  415.977761]  show_stack+0x24/0x30
    [  415.981104]  dump_stack+0xc8/0x114
    [  415.984534]  __cant_sleep+0xf0/0x108
    [  415.988145]  test_bpf_init+0x5e0/0x1000 [test_bpf]
    [  415.992971]  do_one_initcall+0x90/0x428
    [  415.996837]  do_init_module+0x60/0x1e4
    [  416.000614]  load_module+0x1de0/0x1f50
    [  416.004391]  __se_sys_finit_module+0xc8/0xe0
    [  416.008691]  __arm64_sys_finit_module+0x24/0x30
    [  416.013255]  el0_svc_common+0x78/0x130
    [  416.017031]  el0_svc_handler+0x38/0x78
    [  416.020806]  el0_svc+0x8/0xc
    
    Rework so that preemption is disabled when we loop over function
    'BPF_PROG_RUN(...)'.
    
    Fixes: 568f1967 ("bpf: check that BPF programs run with preemption disabled")
    Suggested-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarAnders Roxell <anders.roxell@linaro.org>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    fd92d664
test_bpf.c 159 KB