diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c index a05e1221948e1b7c61e7455abe85ec8458ced4a9..7945b765ef475e36e84ed52d9710fe87aa714dcf 100644 --- a/kernel/trace/bpf_trace.c +++ b/kernel/trace/bpf_trace.c @@ -852,7 +852,7 @@ static int bpf_send_signal_common(u32 sig, enum pid_type type) if (unlikely(is_global_init(current))) return -EPERM; - if (irqs_disabled()) { + if (preempt_count() != 0 || irqs_disabled()) { /* Do an early check on signal validity. Otherwise, * the error is lost in deferred irq_work. */