All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH RFC bpf-next v2 2/5] bpf: Introduce inherit list for dir tag.
Date: Wed, 02 Feb 2022 17:15:14 +0800	[thread overview]
Message-ID: <202202021722.Gftmgh6J-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 15071 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20220201205534.1962784-3-haoluo@google.com>
References: <20220201205534.1962784-3-haoluo@google.com>
TO: Hao Luo <haoluo@google.com>

Hi Hao,

[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on bpf-next/master]

url:    https://github.com/0day-ci/linux/commits/Hao-Luo/Extend-cgroup-interface-with-bpf/20220202-045743
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
:::::: branch date: 12 hours ago
:::::: commit date: 12 hours ago
config: i386-randconfig-m021-20220131 (https://download.01.org/0day-ci/archive/20220202/202202021722.Gftmgh6J-lkp(a)intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
kernel/bpf/inode.c:71 free_obj_list() error: dereferencing freed memory 'e'
kernel/bpf/inode.c:251 populate_dir() error: uninitialized symbol 'ret'.

vim +/e +71 kernel/bpf/inode.c

b2197755b2633e Daniel Borkmann   2015-10-29   64  
f6c6ca7ed74437 Hao Luo           2022-02-01   65  static void free_obj_list(struct kref *kref)
f6c6ca7ed74437 Hao Luo           2022-02-01   66  {
f6c6ca7ed74437 Hao Luo           2022-02-01   67  	struct obj_list *list;
f6c6ca7ed74437 Hao Luo           2022-02-01   68  	struct bpf_inherit_entry *e;
f6c6ca7ed74437 Hao Luo           2022-02-01   69  
f6c6ca7ed74437 Hao Luo           2022-02-01   70  	list = container_of(kref, struct obj_list, refcnt);
f6c6ca7ed74437 Hao Luo           2022-02-01  @71  	list_for_each_entry(e, &list->list, list) {
f6c6ca7ed74437 Hao Luo           2022-02-01   72  		list_del_rcu(&e->list);
f6c6ca7ed74437 Hao Luo           2022-02-01   73  		bpf_any_put(e->obj, e->type);
f6c6ca7ed74437 Hao Luo           2022-02-01   74  		kfree(e);
f6c6ca7ed74437 Hao Luo           2022-02-01   75  	}
f6c6ca7ed74437 Hao Luo           2022-02-01   76  	kfree(list);
f6c6ca7ed74437 Hao Luo           2022-02-01   77  }
f6c6ca7ed74437 Hao Luo           2022-02-01   78  
b2197755b2633e Daniel Borkmann   2015-10-29   79  static void *bpf_fd_probe_obj(u32 ufd, enum bpf_type *type)
b2197755b2633e Daniel Borkmann   2015-10-29   80  {
b2197755b2633e Daniel Borkmann   2015-10-29   81  	void *raw;
b2197755b2633e Daniel Borkmann   2015-10-29   82  
c9da161c6517ba Daniel Borkmann   2015-11-24   83  	raw = bpf_map_get_with_uref(ufd);
70ed506c3bbcfa Andrii Nakryiko   2020-03-02   84  	if (!IS_ERR(raw)) {
70ed506c3bbcfa Andrii Nakryiko   2020-03-02   85  		*type = BPF_TYPE_MAP;
70ed506c3bbcfa Andrii Nakryiko   2020-03-02   86  		return raw;
70ed506c3bbcfa Andrii Nakryiko   2020-03-02   87  	}
70ed506c3bbcfa Andrii Nakryiko   2020-03-02   88  
b2197755b2633e Daniel Borkmann   2015-10-29   89  	raw = bpf_prog_get(ufd);
70ed506c3bbcfa Andrii Nakryiko   2020-03-02   90  	if (!IS_ERR(raw)) {
70ed506c3bbcfa Andrii Nakryiko   2020-03-02   91  		*type = BPF_TYPE_PROG;
70ed506c3bbcfa Andrii Nakryiko   2020-03-02   92  		return raw;
b2197755b2633e Daniel Borkmann   2015-10-29   93  	}
b2197755b2633e Daniel Borkmann   2015-10-29   94  
70ed506c3bbcfa Andrii Nakryiko   2020-03-02   95  	raw = bpf_link_get_from_fd(ufd);
70ed506c3bbcfa Andrii Nakryiko   2020-03-02   96  	if (!IS_ERR(raw)) {
70ed506c3bbcfa Andrii Nakryiko   2020-03-02   97  		*type = BPF_TYPE_LINK;
b2197755b2633e Daniel Borkmann   2015-10-29   98  		return raw;
b2197755b2633e Daniel Borkmann   2015-10-29   99  	}
b2197755b2633e Daniel Borkmann   2015-10-29  100  
70ed506c3bbcfa Andrii Nakryiko   2020-03-02  101  	return ERR_PTR(-EINVAL);
70ed506c3bbcfa Andrii Nakryiko   2020-03-02  102  }
70ed506c3bbcfa Andrii Nakryiko   2020-03-02  103  
b2197755b2633e Daniel Borkmann   2015-10-29  104  static const struct inode_operations bpf_dir_iops;
b2197755b2633e Daniel Borkmann   2015-10-29  105  
b2197755b2633e Daniel Borkmann   2015-10-29  106  static const struct inode_operations bpf_prog_iops = { };
b2197755b2633e Daniel Borkmann   2015-10-29  107  static const struct inode_operations bpf_map_iops  = { };
70ed506c3bbcfa Andrii Nakryiko   2020-03-02  108  static const struct inode_operations bpf_link_iops  = { };
b2197755b2633e Daniel Borkmann   2015-10-29  109  
f6c6ca7ed74437 Hao Luo           2022-02-01  110  static int bpf_mkprog(struct dentry *dentry, umode_t mode, void *arg);
f6c6ca7ed74437 Hao Luo           2022-02-01  111  static int bpf_mkmap(struct dentry *dentry, umode_t mode, void *arg);
f6c6ca7ed74437 Hao Luo           2022-02-01  112  static int bpf_mklink(struct dentry *dentry, umode_t mode, void *arg);
f6c6ca7ed74437 Hao Luo           2022-02-01  113  
b2197755b2633e Daniel Borkmann   2015-10-29  114  static struct inode *bpf_get_inode(struct super_block *sb,
b2197755b2633e Daniel Borkmann   2015-10-29  115  				   const struct inode *dir,
b2197755b2633e Daniel Borkmann   2015-10-29  116  				   umode_t mode)
b2197755b2633e Daniel Borkmann   2015-10-29  117  {
b2197755b2633e Daniel Borkmann   2015-10-29  118  	struct inode *inode;
b2197755b2633e Daniel Borkmann   2015-10-29  119  
b2197755b2633e Daniel Borkmann   2015-10-29  120  	switch (mode & S_IFMT) {
b2197755b2633e Daniel Borkmann   2015-10-29  121  	case S_IFDIR:
b2197755b2633e Daniel Borkmann   2015-10-29  122  	case S_IFREG:
0f98621bef5d2b Daniel Borkmann   2016-10-29  123  	case S_IFLNK:
b2197755b2633e Daniel Borkmann   2015-10-29  124  		break;
b2197755b2633e Daniel Borkmann   2015-10-29  125  	default:
b2197755b2633e Daniel Borkmann   2015-10-29  126  		return ERR_PTR(-EINVAL);
b2197755b2633e Daniel Borkmann   2015-10-29  127  	}
b2197755b2633e Daniel Borkmann   2015-10-29  128  
b2197755b2633e Daniel Borkmann   2015-10-29  129  	inode = new_inode(sb);
b2197755b2633e Daniel Borkmann   2015-10-29  130  	if (!inode)
b2197755b2633e Daniel Borkmann   2015-10-29  131  		return ERR_PTR(-ENOSPC);
b2197755b2633e Daniel Borkmann   2015-10-29  132  
b2197755b2633e Daniel Borkmann   2015-10-29  133  	inode->i_ino = get_next_ino();
078cd8279e6599 Deepa Dinamani    2016-09-14  134  	inode->i_atime = current_time(inode);
b2197755b2633e Daniel Borkmann   2015-10-29  135  	inode->i_mtime = inode->i_atime;
b2197755b2633e Daniel Borkmann   2015-10-29  136  	inode->i_ctime = inode->i_atime;
b2197755b2633e Daniel Borkmann   2015-10-29  137  
21cb47be6fb9ec Christian Brauner 2021-01-21  138  	inode_init_owner(&init_user_ns, inode, dir, mode);
b2197755b2633e Daniel Borkmann   2015-10-29  139  
b2197755b2633e Daniel Borkmann   2015-10-29  140  	return inode;
b2197755b2633e Daniel Borkmann   2015-10-29  141  }
b2197755b2633e Daniel Borkmann   2015-10-29  142  
b2197755b2633e Daniel Borkmann   2015-10-29  143  static int bpf_inode_type(const struct inode *inode, enum bpf_type *type)
b2197755b2633e Daniel Borkmann   2015-10-29  144  {
b2197755b2633e Daniel Borkmann   2015-10-29  145  	*type = BPF_TYPE_UNSPEC;
b2197755b2633e Daniel Borkmann   2015-10-29  146  	if (inode->i_op == &bpf_prog_iops)
b2197755b2633e Daniel Borkmann   2015-10-29  147  		*type = BPF_TYPE_PROG;
b2197755b2633e Daniel Borkmann   2015-10-29  148  	else if (inode->i_op == &bpf_map_iops)
b2197755b2633e Daniel Borkmann   2015-10-29  149  		*type = BPF_TYPE_MAP;
70ed506c3bbcfa Andrii Nakryiko   2020-03-02  150  	else if (inode->i_op == &bpf_link_iops)
70ed506c3bbcfa Andrii Nakryiko   2020-03-02  151  		*type = BPF_TYPE_LINK;
b2197755b2633e Daniel Borkmann   2015-10-29  152  	else
b2197755b2633e Daniel Borkmann   2015-10-29  153  		return -EACCES;
b2197755b2633e Daniel Borkmann   2015-10-29  154  
b2197755b2633e Daniel Borkmann   2015-10-29  155  	return 0;
b2197755b2633e Daniel Borkmann   2015-10-29  156  }
b2197755b2633e Daniel Borkmann   2015-10-29  157  
3a2ad553a70d36 Hao Luo           2022-02-01  158  static struct bpf_dir_tag *inode_tag(const struct inode *inode)
3a2ad553a70d36 Hao Luo           2022-02-01  159  {
3a2ad553a70d36 Hao Luo           2022-02-01  160  	if (unlikely(!S_ISDIR(inode->i_mode)))
3a2ad553a70d36 Hao Luo           2022-02-01  161  		return NULL;
3a2ad553a70d36 Hao Luo           2022-02-01  162  
3a2ad553a70d36 Hao Luo           2022-02-01  163  	return inode->i_private;
3a2ad553a70d36 Hao Luo           2022-02-01  164  }
3a2ad553a70d36 Hao Luo           2022-02-01  165  
3a2ad553a70d36 Hao Luo           2022-02-01  166  /* tag_dir_inode - tag a newly created directory.
3a2ad553a70d36 Hao Luo           2022-02-01  167   * @tag: tag of parent directory
3a2ad553a70d36 Hao Luo           2022-02-01  168   * @dentry: dentry of the new directory
3a2ad553a70d36 Hao Luo           2022-02-01  169   * @inode: inode of the new directory
3a2ad553a70d36 Hao Luo           2022-02-01  170   *
3a2ad553a70d36 Hao Luo           2022-02-01  171   * Called from bpf_mkdir.
3a2ad553a70d36 Hao Luo           2022-02-01  172   */
3a2ad553a70d36 Hao Luo           2022-02-01  173  static int tag_dir_inode(const struct bpf_dir_tag *tag,
3a2ad553a70d36 Hao Luo           2022-02-01  174  			 const struct dentry *dentry, struct inode *inode)
3a2ad553a70d36 Hao Luo           2022-02-01  175  {
3a2ad553a70d36 Hao Luo           2022-02-01  176  	struct bpf_dir_tag *t;
3a2ad553a70d36 Hao Luo           2022-02-01  177  	struct kernfs_node *kn;
3a2ad553a70d36 Hao Luo           2022-02-01  178  
3a2ad553a70d36 Hao Luo           2022-02-01  179  	WARN_ON(tag->type != BPF_DIR_KERNFS_REP);
3a2ad553a70d36 Hao Luo           2022-02-01  180  
3a2ad553a70d36 Hao Luo           2022-02-01  181  	/* kn is put at tag deallocation. */
3a2ad553a70d36 Hao Luo           2022-02-01  182  	kn = kernfs_find_and_get_ns(tag->private, dentry->d_name.name, NULL);
3a2ad553a70d36 Hao Luo           2022-02-01  183  	if (unlikely(!kn))
3a2ad553a70d36 Hao Luo           2022-02-01  184  		return -ENOENT;
3a2ad553a70d36 Hao Luo           2022-02-01  185  
3a2ad553a70d36 Hao Luo           2022-02-01  186  	if (unlikely(kernfs_type(kn) != KERNFS_DIR)) {
3a2ad553a70d36 Hao Luo           2022-02-01  187  		kernfs_put(kn);
3a2ad553a70d36 Hao Luo           2022-02-01  188  		return -EPERM;
3a2ad553a70d36 Hao Luo           2022-02-01  189  	}
3a2ad553a70d36 Hao Luo           2022-02-01  190  
3a2ad553a70d36 Hao Luo           2022-02-01  191  	t = kzalloc(sizeof(struct bpf_dir_tag), GFP_KERNEL | __GFP_NOWARN);
3a2ad553a70d36 Hao Luo           2022-02-01  192  	if (unlikely(!t)) {
3a2ad553a70d36 Hao Luo           2022-02-01  193  		kernfs_put(kn);
3a2ad553a70d36 Hao Luo           2022-02-01  194  		return -ENOMEM;
3a2ad553a70d36 Hao Luo           2022-02-01  195  	}
3a2ad553a70d36 Hao Luo           2022-02-01  196  
3a2ad553a70d36 Hao Luo           2022-02-01  197  	t->type = tag->type;
f6c6ca7ed74437 Hao Luo           2022-02-01  198  	t->inherit_objects = tag->inherit_objects;
f6c6ca7ed74437 Hao Luo           2022-02-01  199  	kref_get(&t->inherit_objects->refcnt);
3a2ad553a70d36 Hao Luo           2022-02-01  200  	t->private = kn;
3a2ad553a70d36 Hao Luo           2022-02-01  201  
3a2ad553a70d36 Hao Luo           2022-02-01  202  	inode->i_private = t;
3a2ad553a70d36 Hao Luo           2022-02-01  203  	return 0;
3a2ad553a70d36 Hao Luo           2022-02-01  204  }
3a2ad553a70d36 Hao Luo           2022-02-01  205  
f6c6ca7ed74437 Hao Luo           2022-02-01  206  /* populate_dir - populate directory with bpf objects in a tag's
f6c6ca7ed74437 Hao Luo           2022-02-01  207   * inherit_objects.
f6c6ca7ed74437 Hao Luo           2022-02-01  208   * @dir: dentry of the directory.
f6c6ca7ed74437 Hao Luo           2022-02-01  209   * @inode: inode of the direcotry.
f6c6ca7ed74437 Hao Luo           2022-02-01  210   *
f6c6ca7ed74437 Hao Luo           2022-02-01  211   * Called from mkdir. Must be called after dentry has been finalized.
f6c6ca7ed74437 Hao Luo           2022-02-01  212   */
f6c6ca7ed74437 Hao Luo           2022-02-01  213  static int populate_dir(struct dentry *dir, struct inode *inode)
f6c6ca7ed74437 Hao Luo           2022-02-01  214  {
f6c6ca7ed74437 Hao Luo           2022-02-01  215  	struct bpf_dir_tag *tag = inode_tag(inode);
f6c6ca7ed74437 Hao Luo           2022-02-01  216  	struct bpf_inherit_entry *e;
f6c6ca7ed74437 Hao Luo           2022-02-01  217  	struct dentry *child;
f6c6ca7ed74437 Hao Luo           2022-02-01  218  	int ret;
f6c6ca7ed74437 Hao Luo           2022-02-01  219  
f6c6ca7ed74437 Hao Luo           2022-02-01  220  	rcu_read_lock();
f6c6ca7ed74437 Hao Luo           2022-02-01  221  	list_for_each_entry_rcu(e, &tag->inherit_objects->list, list) {
f6c6ca7ed74437 Hao Luo           2022-02-01  222  		child = lookup_one_len_unlocked(e->name.name, dir,
f6c6ca7ed74437 Hao Luo           2022-02-01  223  						strlen(e->name.name));
f6c6ca7ed74437 Hao Luo           2022-02-01  224  		if (unlikely(IS_ERR(child))) {
f6c6ca7ed74437 Hao Luo           2022-02-01  225  			ret = PTR_ERR(child);
f6c6ca7ed74437 Hao Luo           2022-02-01  226  			break;
f6c6ca7ed74437 Hao Luo           2022-02-01  227  		}
f6c6ca7ed74437 Hao Luo           2022-02-01  228  
f6c6ca7ed74437 Hao Luo           2022-02-01  229  		switch (e->type) {
f6c6ca7ed74437 Hao Luo           2022-02-01  230  		case BPF_TYPE_PROG:
f6c6ca7ed74437 Hao Luo           2022-02-01  231  			ret = bpf_mkprog(child, e->mode, e->obj);
f6c6ca7ed74437 Hao Luo           2022-02-01  232  			break;
f6c6ca7ed74437 Hao Luo           2022-02-01  233  		case BPF_TYPE_MAP:
f6c6ca7ed74437 Hao Luo           2022-02-01  234  			ret = bpf_mkmap(child, e->mode, e->obj);
f6c6ca7ed74437 Hao Luo           2022-02-01  235  			break;
f6c6ca7ed74437 Hao Luo           2022-02-01  236  		case BPF_TYPE_LINK:
f6c6ca7ed74437 Hao Luo           2022-02-01  237  			ret = bpf_mklink(child, e->mode, e->obj);
f6c6ca7ed74437 Hao Luo           2022-02-01  238  			break;
f6c6ca7ed74437 Hao Luo           2022-02-01  239  		default:
f6c6ca7ed74437 Hao Luo           2022-02-01  240  			ret = -EPERM;
f6c6ca7ed74437 Hao Luo           2022-02-01  241  			break;
f6c6ca7ed74437 Hao Luo           2022-02-01  242  		}
f6c6ca7ed74437 Hao Luo           2022-02-01  243  		dput(child);
f6c6ca7ed74437 Hao Luo           2022-02-01  244  		if (ret)
f6c6ca7ed74437 Hao Luo           2022-02-01  245  			break;
f6c6ca7ed74437 Hao Luo           2022-02-01  246  
f6c6ca7ed74437 Hao Luo           2022-02-01  247  		/* To match bpf_any_put in bpf_free_inode. */
f6c6ca7ed74437 Hao Luo           2022-02-01  248  		bpf_any_get(e->obj, e->type);
f6c6ca7ed74437 Hao Luo           2022-02-01  249  	}
f6c6ca7ed74437 Hao Luo           2022-02-01  250  	rcu_read_unlock();
f6c6ca7ed74437 Hao Luo           2022-02-01 @251  	return ret;
f6c6ca7ed74437 Hao Luo           2022-02-01  252  }
f6c6ca7ed74437 Hao Luo           2022-02-01  253  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH RFC bpf-next v2 2/5] bpf: Introduce inherit list for dir tag.
Date: Wed, 02 Feb 2022 12:32:01 +0300	[thread overview]
Message-ID: <202202021722.Gftmgh6J-lkp@intel.com> (raw)
In-Reply-To: <20220201205534.1962784-3-haoluo@google.com>

[-- Attachment #1: Type: text/plain, Size: 4885 bytes --]

Hi Hao,

url:    https://github.com/0day-ci/linux/commits/Hao-Luo/Extend-cgroup-interface-with-bpf/20220202-045743
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
config: i386-randconfig-m021-20220131 (https://download.01.org/0day-ci/archive/20220202/202202021722.Gftmgh6J-lkp(a)intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
kernel/bpf/inode.c:71 free_obj_list() error: dereferencing freed memory 'e'
kernel/bpf/inode.c:251 populate_dir() error: uninitialized symbol 'ret'.

vim +/e +71 kernel/bpf/inode.c

f6c6ca7ed74437 Hao Luo           2022-02-01   65  static void free_obj_list(struct kref *kref)
f6c6ca7ed74437 Hao Luo           2022-02-01   66  {
f6c6ca7ed74437 Hao Luo           2022-02-01   67  	struct obj_list *list;
f6c6ca7ed74437 Hao Luo           2022-02-01   68  	struct bpf_inherit_entry *e;
f6c6ca7ed74437 Hao Luo           2022-02-01   69  
f6c6ca7ed74437 Hao Luo           2022-02-01   70  	list = container_of(kref, struct obj_list, refcnt);
f6c6ca7ed74437 Hao Luo           2022-02-01  @71  	list_for_each_entry(e, &list->list, list) {

Need to use list_for_each_entry_safe() because this frees the list
iterator.

f6c6ca7ed74437 Hao Luo           2022-02-01   72  		list_del_rcu(&e->list);
f6c6ca7ed74437 Hao Luo           2022-02-01   73  		bpf_any_put(e->obj, e->type);
f6c6ca7ed74437 Hao Luo           2022-02-01   74  		kfree(e);
f6c6ca7ed74437 Hao Luo           2022-02-01   75  	}
f6c6ca7ed74437 Hao Luo           2022-02-01   76  	kfree(list);
f6c6ca7ed74437 Hao Luo           2022-02-01   77  }

[ snip ]

f6c6ca7ed74437 Hao Luo           2022-02-01  213  static int populate_dir(struct dentry *dir, struct inode *inode)
f6c6ca7ed74437 Hao Luo           2022-02-01  214  {
f6c6ca7ed74437 Hao Luo           2022-02-01  215  	struct bpf_dir_tag *tag = inode_tag(inode);
f6c6ca7ed74437 Hao Luo           2022-02-01  216  	struct bpf_inherit_entry *e;
f6c6ca7ed74437 Hao Luo           2022-02-01  217  	struct dentry *child;
f6c6ca7ed74437 Hao Luo           2022-02-01  218  	int ret;
f6c6ca7ed74437 Hao Luo           2022-02-01  219  
f6c6ca7ed74437 Hao Luo           2022-02-01  220  	rcu_read_lock();
f6c6ca7ed74437 Hao Luo           2022-02-01  221  	list_for_each_entry_rcu(e, &tag->inherit_objects->list, list) {
f6c6ca7ed74437 Hao Luo           2022-02-01  222  		child = lookup_one_len_unlocked(e->name.name, dir,
f6c6ca7ed74437 Hao Luo           2022-02-01  223  						strlen(e->name.name));
f6c6ca7ed74437 Hao Luo           2022-02-01  224  		if (unlikely(IS_ERR(child))) {
f6c6ca7ed74437 Hao Luo           2022-02-01  225  			ret = PTR_ERR(child);
f6c6ca7ed74437 Hao Luo           2022-02-01  226  			break;
f6c6ca7ed74437 Hao Luo           2022-02-01  227  		}
f6c6ca7ed74437 Hao Luo           2022-02-01  228  
f6c6ca7ed74437 Hao Luo           2022-02-01  229  		switch (e->type) {
f6c6ca7ed74437 Hao Luo           2022-02-01  230  		case BPF_TYPE_PROG:
f6c6ca7ed74437 Hao Luo           2022-02-01  231  			ret = bpf_mkprog(child, e->mode, e->obj);
f6c6ca7ed74437 Hao Luo           2022-02-01  232  			break;
f6c6ca7ed74437 Hao Luo           2022-02-01  233  		case BPF_TYPE_MAP:
f6c6ca7ed74437 Hao Luo           2022-02-01  234  			ret = bpf_mkmap(child, e->mode, e->obj);
f6c6ca7ed74437 Hao Luo           2022-02-01  235  			break;
f6c6ca7ed74437 Hao Luo           2022-02-01  236  		case BPF_TYPE_LINK:
f6c6ca7ed74437 Hao Luo           2022-02-01  237  			ret = bpf_mklink(child, e->mode, e->obj);
f6c6ca7ed74437 Hao Luo           2022-02-01  238  			break;
f6c6ca7ed74437 Hao Luo           2022-02-01  239  		default:
f6c6ca7ed74437 Hao Luo           2022-02-01  240  			ret = -EPERM;
f6c6ca7ed74437 Hao Luo           2022-02-01  241  			break;
f6c6ca7ed74437 Hao Luo           2022-02-01  242  		}
f6c6ca7ed74437 Hao Luo           2022-02-01  243  		dput(child);
f6c6ca7ed74437 Hao Luo           2022-02-01  244  		if (ret)
f6c6ca7ed74437 Hao Luo           2022-02-01  245  			break;
f6c6ca7ed74437 Hao Luo           2022-02-01  246  
f6c6ca7ed74437 Hao Luo           2022-02-01  247  		/* To match bpf_any_put in bpf_free_inode. */
f6c6ca7ed74437 Hao Luo           2022-02-01  248  		bpf_any_get(e->obj, e->type);
f6c6ca7ed74437 Hao Luo           2022-02-01  249  	}
f6c6ca7ed74437 Hao Luo           2022-02-01  250  	rcu_read_unlock();
f6c6ca7ed74437 Hao Luo           2022-02-01 @251  	return ret;

This warning is just about empty loops.  Likely impossible.

f6c6ca7ed74437 Hao Luo           2022-02-01  252  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

             reply	other threads:[~2022-02-02  9:15 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-02  9:15 kernel test robot [this message]
2022-02-02  9:32 ` [PATCH RFC bpf-next v2 2/5] bpf: Introduce inherit list for dir tag Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2022-02-02 14:00 kernel test robot
2022-02-01 20:55 [PATCH RFC bpf-next v2 0/5] Extend cgroup interface with bpf Hao Luo
2022-02-01 20:55 ` [PATCH RFC bpf-next v2 1/5] bpf: Bpffs directory tag Hao Luo
2022-02-01 20:55 ` [PATCH RFC bpf-next v2 2/5] bpf: Introduce inherit list for dir tag Hao Luo
2022-02-01 20:55 ` [PATCH RFC bpf-next v2 3/5] bpf: cgroup_view iter Hao Luo
2022-02-02  1:17   ` kernel test robot
2022-02-02  3:39   ` kernel test robot
2022-02-02  3:39     ` kernel test robot
2022-02-01 20:55 ` [PATCH RFC bpf-next v2 4/5] bpf: Pin cgroup_view Hao Luo
2022-02-02  4:20   ` kernel test robot
2022-02-02  5:11   ` kernel test robot
2022-02-02  5:11     ` kernel test robot
2022-02-01 20:55 ` [PATCH RFC bpf-next v2 5/5] selftests/bpf: test for pinning for cgroup_view link Hao Luo
2022-02-03 18:04   ` Alexei Starovoitov
2022-02-03 22:46     ` Hao Luo
2022-02-04  3:33       ` Alexei Starovoitov
2022-02-04 18:26         ` Hao Luo
2022-02-06  4:29           ` Alexei Starovoitov
2022-02-08 20:07             ` Hao Luo
2022-02-08 21:20               ` Alexei Starovoitov
2022-02-08 21:34                 ` Hao Luo
2022-02-14 18:29                 ` Hao Luo
2022-02-14 19:24                   ` Alexei Starovoitov
2022-02-14 20:23                     ` Hao Luo
2022-02-14 20:27                       ` Alexei Starovoitov
2022-02-14 20:39                         ` Hao Luo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202202021722.Gftmgh6J-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.