From: Thomas Gleixner Date: Mon, 24 Feb 2020 14:01:42 +0000 (+0100) Subject: bpf: Replace cant_sleep() with cant_migrate() X-Git-Tag: v5.7-rc1~146^2~287^2~10^2~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=37e1d9202225635772b32e340294208367279c2b;p=thirdparty%2Flinux.git bpf: Replace cant_sleep() with cant_migrate() As already discussed in the previous change which introduced BPF_RUN_PROG_PIN_ON_CPU() BPF only requires to disable migration to guarantee per CPUness. If RT substitutes the preempt disable based migration protection then the cant_sleep() check will obviously trigger as preemption is not disabled. Replace it by cant_migrate() which maps to cant_sleep() on a non RT kernel and will verify that migration is disabled on a full RT kernel. Signed-off-by: Thomas Gleixner Signed-off-by: Alexei Starovoitov Link: https://lore.kernel.org/bpf/20200224145643.583038889@linutronix.de --- diff --git a/include/linux/filter.h b/include/linux/filter.h index 38f60188bb26e..1982a52eb4c9e 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h @@ -561,7 +561,7 @@ DECLARE_STATIC_KEY_FALSE(bpf_stats_enabled_key); #define __BPF_PROG_RUN(prog, ctx, dfunc) ({ \ u32 ret; \ - cant_sleep(); \ + cant_migrate(); \ if (static_branch_unlikely(&bpf_stats_enabled_key)) { \ struct bpf_prog_stats *stats; \ u64 start = sched_clock(); \