* [ammarfaizi2-block:google/android/kernel/common/android-4.14-stable 241/9999] kernel/bpf/cgroup.c:195:6: warning: variable 'old_flags' set but not used
@ 2022-03-10 17:15 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-03-10 17:15 UTC (permalink / raw)
To: Alexei Starovoitov
Cc: kbuild-all, GNU/Weeb Mailing List, linux-kernel, Connor O'Brien
tree: https://github.com/ammarfaizi2/linux-block google/android/kernel/common/android-4.14-stable
head: cb5d0103b1f8fc3aa997a696472fd774c67a1b1f
commit: 9e61c87b1f47b4dc3d48de83d85e9f17c320f91e [241/9999] UPSTREAM: bpf: multi program support for cgroup+bpf
config: i386-randconfig-a012 (https://download.01.org/0day-ci/archive/20220311/202203110118.cEBHu9dR-lkp@intel.com/config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build):
# https://github.com/ammarfaizi2/linux-block/commit/9e61c87b1f47b4dc3d48de83d85e9f17c320f91e
git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
git fetch --no-tags ammarfaizi2-block google/android/kernel/common/android-4.14-stable
git checkout 9e61c87b1f47b4dc3d48de83d85e9f17c320f91e
# save the config file to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash kernel/bpf/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
kernel/bpf/cgroup.c: In function '__cgroup_bpf_attach':
>> kernel/bpf/cgroup.c:195:6: warning: variable 'old_flags' set but not used [-Wunused-but-set-variable]
u32 old_flags;
^~~~~~~~~
vim +/old_flags +195 kernel/bpf/cgroup.c
177
178 /**
179 * __cgroup_bpf_attach() - Attach the program to a cgroup, and
180 * propagate the change to descendants
181 * @cgrp: The cgroup which descendants to traverse
182 * @prog: A program to attach
183 * @type: Type of attach operation
184 *
185 * Must be called with cgroup_mutex held.
186 */
187 int __cgroup_bpf_attach(struct cgroup *cgrp, struct bpf_prog *prog,
188 enum bpf_attach_type type, u32 flags)
189 {
190 struct list_head *progs = &cgrp->bpf.progs[type];
191 struct bpf_prog *old_prog = NULL;
192 struct cgroup_subsys_state *css;
193 struct bpf_prog_list *pl;
194 bool pl_was_allocated;
> 195 u32 old_flags;
196 int err;
197
198 if ((flags & BPF_F_ALLOW_OVERRIDE) && (flags & BPF_F_ALLOW_MULTI))
199 /* invalid combination */
200 return -EINVAL;
201
202 if (!hierarchy_allows_attach(cgrp, type, flags))
203 return -EPERM;
204
205 if (!list_empty(progs) && cgrp->bpf.flags[type] != flags)
206 /* Disallow attaching non-overridable on top
207 * of existing overridable in this cgroup.
208 * Disallow attaching multi-prog if overridable or none
209 */
210 return -EPERM;
211
212 if (prog_list_length(progs) >= BPF_CGROUP_MAX_PROGS)
213 return -E2BIG;
214
215 if (flags & BPF_F_ALLOW_MULTI) {
216 list_for_each_entry(pl, progs, node)
217 if (pl->prog == prog)
218 /* disallow attaching the same prog twice */
219 return -EINVAL;
220
221 pl = kmalloc(sizeof(*pl), GFP_KERNEL);
222 if (!pl)
223 return -ENOMEM;
224 pl_was_allocated = true;
225 pl->prog = prog;
226 list_add_tail(&pl->node, progs);
227 } else {
228 if (list_empty(progs)) {
229 pl = kmalloc(sizeof(*pl), GFP_KERNEL);
230 if (!pl)
231 return -ENOMEM;
232 pl_was_allocated = true;
233 list_add_tail(&pl->node, progs);
234 } else {
235 pl = list_first_entry(progs, typeof(*pl), node);
236 old_prog = pl->prog;
237 pl_was_allocated = false;
238 }
239 pl->prog = prog;
240 }
241
242 old_flags = cgrp->bpf.flags[type];
243 cgrp->bpf.flags[type] = flags;
244
245 /* allocate and recompute effective prog arrays */
246 css_for_each_descendant_pre(css, &cgrp->self) {
247 struct cgroup *desc = container_of(css, struct cgroup, self);
248
249 err = compute_effective_progs(desc, type, &desc->bpf.inactive);
250 if (err)
251 goto cleanup;
252 }
253
254 /* all allocations were successful. Activate all prog arrays */
255 css_for_each_descendant_pre(css, &cgrp->self) {
256 struct cgroup *desc = container_of(css, struct cgroup, self);
257
258 activate_effective_progs(desc, type, desc->bpf.inactive);
259 desc->bpf.inactive = NULL;
260 }
261
262 static_branch_inc(&cgroup_bpf_enabled_key);
263 if (old_prog) {
264 bpf_prog_put(old_prog);
265 static_branch_dec(&cgroup_bpf_enabled_key);
266 }
267 return 0;
268
269 cleanup:
270 /* oom while computing effective. Free all computed effective arrays
271 * since they were not activated
272 */
273 css_for_each_descendant_pre(css, &cgrp->self) {
274 struct cgroup *desc = container_of(css, struct cgroup, self);
275
276 bpf_prog_array_free(desc->bpf.inactive);
277 desc->bpf.inactive = NULL;
278 }
279
280 /* and cleanup the prog list */
281 pl->prog = old_prog;
282 if (pl_was_allocated) {
283 list_del(&pl->node);
284 kfree(pl);
285 }
286 return err;
287 }
288
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-03-10 17:16 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-10 17:15 [ammarfaizi2-block:google/android/kernel/common/android-4.14-stable 241/9999] kernel/bpf/cgroup.c:195:6: warning: variable 'old_flags' set but not used kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.