On Tue, Dec 13, 2022 at 05:35:01AM +0800, kernel test robot wrote: > Hi David, > > First bad commit (maybe != root cause): > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master > head: f925116b24c0c42dc6d5ab5111c55fd7f74e8dc7 > commit: fe147956fca4604b920e6be652abc9bea8ce8952 [7935/14039] bpf/selftests: Add selftests for new task kfuncs > compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 > reproduce: > # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=fe147956fca4604b920e6be652abc9bea8ce8952 > git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git > git fetch --no-tags linux-next master > git checkout fe147956fca4604b920e6be652abc9bea8ce8952 > make O=/tmp/kselftest headers > make O=/tmp/kselftest -C tools/testing/selftests > > If you fix the issue, kindly add following tag where applicable > | Reported-by: kernel test robot <lkp@xxxxxxxxx> Ah, task->last_wakee isn't defined on UP builds, my mistake. This patch fixes the issue. I'll send the patch to the bpf list in a separate email. >From 80ec7fa20b0beb1b047bfc66b49b0910c578da83 Mon Sep 17 00:00:00 2001 From: David Vernet <void@xxxxxxxxxxxxx> Date: Mon, 12 Dec 2022 17:34:40 -0600 Subject: [PATCH bpf-next] bpf/selftests: Use parent instead of last_wakee in task kfunc test Commit fe147956fca4 ("bpf/selftests: Add selftests for new task kfuncs") added a negative selftest called task_kfunc_acquire_trusted_walked which ensures that a BPF program that gets a struct task_struct * pointer from walking a struct is properly rejected by the verifier if it tries to pass that pointer to a task kfunc. In order to do this, it uses task->last_wakee, but unfortunately that's not defined on UP builds. Just use task->parent instead. Reported-by: kernel test robot <lkp@xxxxxxxxx> Fixes: fe147956fca4 ("bpf/selftests: Add selftests for new task kfuncs") Signed-off-by: David Vernet <void@xxxxxxxxxxxxx> --- tools/testing/selftests/bpf/progs/task_kfunc_failure.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/progs/task_kfunc_failure.c b/tools/testing/selftests/bpf/progs/task_kfunc_failure.c index 87fa1db9d9b5..60508c20041f 100644 --- a/tools/testing/selftests/bpf/progs/task_kfunc_failure.c +++ b/tools/testing/selftests/bpf/progs/task_kfunc_failure.c @@ -73,7 +73,7 @@ int BPF_PROG(task_kfunc_acquire_trusted_walked, struct task_struct *task, u64 cl struct task_struct *acquired; /* Can't invoke bpf_task_acquire() on a trusted pointer obtained from walking a struct. */ - acquired = bpf_task_acquire(task->last_wakee); + acquired = bpf_task_acquire(task->parent); bpf_task_release(acquired); return 0; -- 2.38.1