Hi Rong,

kernel test robot noticed the following build warnings:

url:    
https://github.com/intel-lab-lkp/linux/commits/Rong-Tao/selftests-bpf-Add-selftests-for-bpf_task_cwd_from_pid/20250529-113933
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link:    
https://lore.kernel.org/r/tencent_97F8B56B340F51DB604B482FEBF012460505%40qq.com
patch subject: [PATCH bpf-next 1/2] bpf: Add bpf_task_cwd_from_pid() kfunc
config: x86_64-randconfig-161-20250529 
(https://download.01.org/0day-ci/archive/20250530/202505300432.nzc50gou-...@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <l...@intel.com>
| Reported-by: Dan Carpenter <dan.carpen...@linaro.org>
| Closes: https://lore.kernel.org/r/202505300432.nzc50gou-...@intel.com/

smatch warnings:
kernel/bpf/helpers.c:2687 bpf_task_cwd_from_pid() warn: inconsistent returns 
'rcu_read'.

vim +/rcu_read +2687 kernel/bpf/helpers.c

b24383bde5a454 Rong Tao     2025-05-29  2657  __bpf_kfunc int 
bpf_task_cwd_from_pid(s32 pid, char *buf, u32 buf_len)
b24383bde5a454 Rong Tao     2025-05-29  2658  {
b24383bde5a454 Rong Tao     2025-05-29  2659    struct path pwd;
b24383bde5a454 Rong Tao     2025-05-29  2660    char kpath[256], *path;
b24383bde5a454 Rong Tao     2025-05-29  2661    struct task_struct *task;
b24383bde5a454 Rong Tao     2025-05-29  2662  
b24383bde5a454 Rong Tao     2025-05-29  2663    if (!buf || buf_len == 0)
b24383bde5a454 Rong Tao     2025-05-29  2664            return -EINVAL;
b24383bde5a454 Rong Tao     2025-05-29  2665  
b24383bde5a454 Rong Tao     2025-05-29  2666    rcu_read_lock();
b24383bde5a454 Rong Tao     2025-05-29  2667    task = pid_task(find_vpid(pid), 
PIDTYPE_PID);
b24383bde5a454 Rong Tao     2025-05-29  2668    if (!task) {
b24383bde5a454 Rong Tao     2025-05-29  2669            rcu_read_unlock();
b24383bde5a454 Rong Tao     2025-05-29  2670            return -ESRCH;
b24383bde5a454 Rong Tao     2025-05-29  2671    }
b24383bde5a454 Rong Tao     2025-05-29  2672    task_lock(task);
b24383bde5a454 Rong Tao     2025-05-29  2673    if (!task->fs) {
b24383bde5a454 Rong Tao     2025-05-29  2674            task_unlock(task);
b24383bde5a454 Rong Tao     2025-05-29  2675            return -ENOENT;

rcu_read_unlock();

b24383bde5a454 Rong Tao     2025-05-29  2676    }
b24383bde5a454 Rong Tao     2025-05-29  2677    get_fs_pwd(task->fs, &pwd);
b24383bde5a454 Rong Tao     2025-05-29  2678    task_unlock(task);
b24383bde5a454 Rong Tao     2025-05-29  2679    rcu_read_unlock();
b24383bde5a454 Rong Tao     2025-05-29  2680  
b24383bde5a454 Rong Tao     2025-05-29  2681    path = d_path(&pwd, kpath, 
sizeof(kpath));
b24383bde5a454 Rong Tao     2025-05-29  2682    path_put(&pwd);
b24383bde5a454 Rong Tao     2025-05-29  2683    if (IS_ERR(path))
b24383bde5a454 Rong Tao     2025-05-29  2684            return PTR_ERR(path);
b24383bde5a454 Rong Tao     2025-05-29  2685  
b24383bde5a454 Rong Tao     2025-05-29  2686    strncpy(buf, path, buf_len);
b24383bde5a454 Rong Tao     2025-05-29 @2687    return 0;
b24383bde5a454 Rong Tao     2025-05-29  2688  }

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


Reply via email to