bpf: Fix a possible task gone issue with bpf_send_signal[_thread]() helpers
stable inclusion from stable-v5.10.168 commit 1b1f56cc0eaa104a8e0b8207a45dbe71687b5015 category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I7URR4 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=1b1f56cc0eaa104a8e0b8207a45dbe71687b5015 ---------------------------------------------------- [ Upstream commit bdb7fdb0 ] In current bpf_send_signal() and bpf_send_signal_thread() helper implementation, irq_work is used to handle nmi context. Hao Sun reported in [1] that the current task at the entry of the helper might be gone during irq_work callback processing. To fix the issue, a reference is acquired for the current task before enqueuing into the irq_work so that the queued task is still available during irq_work callback processing. [1] https://lore.kernel.org/bpf/20230109074425.12556-1-sunhao.th@gmail.com/ Fixes: 8b401f9e ("bpf: implement bpf_send_signal() helper") Tested-by: NHao Sun <sunhao.th@gmail.com> Reported-by: NHao Sun <sunhao.th@gmail.com> Signed-off-by: NYonghong Song <yhs@fb.com> Link: https://lore.kernel.org/r/20230118204815.3331855-1-yhs@fb.comSigned-off-by: NAlexei Starovoitov <ast@kernel.org> Signed-off-by: NSasha Levin <sashal@kernel.org> Signed-off-by: Nzhaoxiaoqiang11 <zhaoxiaoqiang11@jd.com>
Showing
想要评论请 注册 或 登录