Re: [PATCH] pidfd: add ioctl to retrieve pid info
From: kernel test robot
Date: Thu Oct 03 2024 - 17:55:05 EST
Hi,
kernel test robot noticed the following build errors:
[auto build test ERROR on shuah-kselftest/next]
[also build test ERROR on shuah-kselftest/fixes linus/master v6.12-rc1 next-20241003]
[cannot apply to brauner-vfs/vfs.all]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/luca-boccassi-gmail-com/pidfd-add-ioctl-to-retrieve-pid-info/20241002-223302
base: https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git next
patch link: https://lore.kernel.org/r/20241002142516.110567-1-luca.boccassi%40gmail.com
patch subject: [PATCH] pidfd: add ioctl to retrieve pid info
config: openrisc-allnoconfig (https://download.01.org/0day-ci/archive/20241004/202410040559.LZnpGpVU-lkp@xxxxxxxxx/config)
compiler: or1k-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241004/202410040559.LZnpGpVU-lkp@xxxxxxxxx/reproduce)
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 <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410040559.LZnpGpVU-lkp@xxxxxxxxx/
All errors (new ones prefixed by >>):
fs/pidfs.c: In function 'pidfd_info':
>> fs/pidfs.c:146:39: error: implicit declaration of function 'task_css_check' [-Wimplicit-function-declaration]
146 | struct cgroup *cgrp = task_css_check(task, pids_cgrp_id, 1)->cgroup;
| ^~~~~~~~~~~~~~
>> fs/pidfs.c:146:60: error: 'pids_cgrp_id' undeclared (first use in this function)
146 | struct cgroup *cgrp = task_css_check(task, pids_cgrp_id, 1)->cgroup;
| ^~~~~~~~~~~~
fs/pidfs.c:146:60: note: each undeclared identifier is reported only once for each function it appears in
vim +/task_css_check +146 fs/pidfs.c
116
117 static long pidfd_info(struct task_struct *task, struct pid *pid, unsigned long arg)
118 {
119 struct pidfd_info uinfo = {}, info = {};
120
121 if (copy_from_user(&uinfo, (struct pidfd_info *)arg, sizeof(struct pidfd_info)))
122 return -EFAULT;
123 if (uinfo.size > sizeof(struct pidfd_info))
124 return -E2BIG;
125 if (uinfo.size < sizeof(struct pidfd_info))
126 return -EINVAL; /* First version, no smaller struct possible */
127
128 if (uinfo.request_mask & ~(PIDFD_INFO_PID | PIDFD_INFO_CREDS | PIDFD_INFO_CGROUPID | PIDFD_INFO_SECURITY_CONTEXT))
129 return -EINVAL;
130
131 memcpy(&info, &uinfo, uinfo.size);
132
133 if (uinfo.request_mask & PIDFD_INFO_PID)
134 info.pid = pid_nr_ns(pid, task_active_pid_ns(task));
135
136 if (uinfo.request_mask & PIDFD_INFO_CREDS) {
137 const struct cred *c = get_task_cred(task);
138 if (!c)
139 return -ESRCH;
140
141 info.uid = from_kuid_munged(current_user_ns(), c->uid);
142 info.gid = from_kgid_munged(current_user_ns(), c->gid);
143 }
144
145 if (uinfo.request_mask & PIDFD_INFO_CGROUPID) {
> 146 struct cgroup *cgrp = task_css_check(task, pids_cgrp_id, 1)->cgroup;
147 if (!cgrp)
148 return -ENODEV;
149
150 info.cgroupid = cgroup_id(cgrp);
151 }
152
153 if (uinfo.request_mask & PIDFD_INFO_SECURITY_CONTEXT) {
154 char *secctx;
155 u32 secid, secctx_len;
156 const struct cred *c = get_task_cred(task);
157 if (!c)
158 return -ESRCH;
159
160 security_cred_getsecid(c, &secid);
161 if (security_secid_to_secctx(secid, &secctx, &secctx_len))
162 return -EFAULT;
163
164 memcpy(info.security_context, secctx, min_t(u32, secctx_len, NAME_MAX-1));
165 }
166
167 if (copy_to_user((void __user *)arg, &info, uinfo.size))
168 return -EFAULT;
169
170 return 0;
171 }
172
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki