From: kernel test robot <lkp@intel.com>
To: Joanne Koong <joannelkoong@gmail.com>, bpf@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, andrii@kernel.org, ast@kernel.org,
daniel@iogearbox.net, Joanne Koong <joannelkoong@gmail.com>
Subject: Re: [PATCH v1 bpf-next 4/5] bpf: Add bpf_dynptr_clone
Date: Tue, 18 Apr 2023 02:53:29 +0800 [thread overview]
Message-ID: <202304180233.Hk6WZE5M-lkp@intel.com> (raw)
In-Reply-To: <20230409033431.3992432-5-joannelkoong@gmail.com>
Hi Joanne,
kernel test robot noticed the following build warnings:
[auto build test WARNING on bpf-next/master]
url: https://github.com/intel-lab-lkp/linux/commits/Joanne-Koong/bpf-Add-bpf_dynptr_trim-and-bpf_dynptr_advance/20230409-113652
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link: https://lore.kernel.org/r/20230409033431.3992432-5-joannelkoong%40gmail.com
patch subject: [PATCH v1 bpf-next 4/5] bpf: Add bpf_dynptr_clone
config: m68k-randconfig-s032-20230416 (https://download.01.org/0day-ci/archive/20230418/202304180233.Hk6WZE5M-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 12.1.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-39-gce1a6720-dirty
# https://github.com/intel-lab-lkp/linux/commit/d7830addcc26375f56b68655ddbfb44116b3e7f6
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Joanne-Koong/bpf-Add-bpf_dynptr_trim-and-bpf_dynptr_advance/20230409-113652
git checkout d7830addcc26375f56b68655ddbfb44116b3e7f6
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=m68k olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=m68k SHELL=/bin/bash kernel/bpf/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202304180233.Hk6WZE5M-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> kernel/bpf/verifier.c:7020:41: sparse: sparse: mixing different enum types:
>> kernel/bpf/verifier.c:7020:41: sparse: unsigned int enum bpf_arg_type
>> kernel/bpf/verifier.c:7020:41: sparse: unsigned int enum bpf_type_flag
kernel/bpf/verifier.c:18042:38: sparse: sparse: subtraction of functions? Share your drugs
kernel/bpf/verifier.c: note: in included file (through include/linux/bpf.h, include/linux/bpf-cgroup.h):
include/linux/bpfptr.h:65:40: sparse: sparse: cast to non-scalar
include/linux/bpfptr.h:65:40: sparse: sparse: cast from non-scalar
include/linux/bpfptr.h:65:40: sparse: sparse: cast to non-scalar
include/linux/bpfptr.h:65:40: sparse: sparse: cast from non-scalar
include/linux/bpfptr.h:65:40: sparse: sparse: cast to non-scalar
include/linux/bpfptr.h:65:40: sparse: sparse: cast from non-scalar
vim +7020 kernel/bpf/verifier.c
7006
7007 static int handle_dynptr_clone(struct bpf_verifier_env *env, enum bpf_arg_type arg_type,
7008 int regno, int insn_idx, struct bpf_kfunc_call_arg_meta *meta)
7009 {
7010 struct bpf_reg_state *regs = cur_regs(env), *reg = ®s[regno];
7011 struct bpf_reg_state *first_reg_state, *second_reg_state;
7012 struct bpf_func_state *state = func(env, reg);
7013 enum bpf_dynptr_type dynptr_type = meta->initialized_dynptr.type;
7014 int err, spi, ref_obj_id;
7015
7016 if (!dynptr_type) {
7017 verbose(env, "verifier internal error: no dynptr type for bpf_dynptr_clone\n");
7018 return -EFAULT;
7019 }
> 7020 arg_type |= get_dynptr_type_flag(dynptr_type);
7021
7022 err = process_dynptr_func(env, regno, insn_idx, arg_type);
7023 if (err < 0)
7024 return err;
7025
7026 spi = dynptr_get_spi(env, reg);
7027 if (spi < 0)
7028 return spi;
7029
7030 first_reg_state = &state->stack[spi].spilled_ptr;
7031 second_reg_state = &state->stack[spi - 1].spilled_ptr;
7032 ref_obj_id = first_reg_state->ref_obj_id;
7033
7034 /* reassign the clone the same dynptr id as the original */
7035 __mark_dynptr_reg(first_reg_state, dynptr_type, true, meta->initialized_dynptr.id);
7036 __mark_dynptr_reg(second_reg_state, dynptr_type, false, meta->initialized_dynptr.id);
7037
7038 if (meta->initialized_dynptr.ref_obj_id) {
7039 /* release the new ref obj id assigned during process_dynptr_func */
7040 err = release_reference_state(cur_func(env), ref_obj_id);
7041 if (err)
7042 return err;
7043 /* reassign the clone the same ref obj id as the original */
7044 first_reg_state->ref_obj_id = meta->initialized_dynptr.ref_obj_id;
7045 second_reg_state->ref_obj_id = meta->initialized_dynptr.ref_obj_id;
7046 }
7047
7048 return 0;
7049 }
7050
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
next prev parent reply other threads:[~2023-04-17 18:54 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-09 3:34 [PATCH v1 bpf-next 0/5] Dynptr convenience helpers Joanne Koong
2023-04-09 3:34 ` [PATCH v1 bpf-next 1/5] bpf: Add bpf_dynptr_trim and bpf_dynptr_advance Joanne Koong
2023-04-12 21:46 ` Andrii Nakryiko
2023-04-14 5:15 ` Joanne Koong
2023-04-17 23:35 ` Andrii Nakryiko
2023-04-19 6:22 ` Joanne Koong
2023-04-19 16:30 ` Andrii Nakryiko
2023-04-09 3:34 ` [PATCH v1 bpf-next 2/5] bpf: Add bpf_dynptr_is_null and bpf_dynptr_is_rdonly Joanne Koong
2023-04-12 21:50 ` Andrii Nakryiko
2023-04-20 6:45 ` Joanne Koong
2023-04-09 3:34 ` [PATCH v1 bpf-next 3/5] bpf: Add bpf_dynptr_get_size and bpf_dynptr_get_offset Joanne Koong
2023-04-12 21:52 ` Andrii Nakryiko
2023-04-14 5:17 ` Joanne Koong
2023-04-09 3:34 ` [PATCH v1 bpf-next 4/5] bpf: Add bpf_dynptr_clone Joanne Koong
2023-04-12 22:12 ` Andrii Nakryiko
2023-04-14 6:02 ` Joanne Koong
2023-04-17 23:46 ` Andrii Nakryiko
2023-04-19 6:56 ` Joanne Koong
2023-04-19 16:34 ` Andrii Nakryiko
2023-04-17 18:53 ` kernel test robot [this message]
2023-04-09 3:34 ` [PATCH v1 bpf-next 5/5] selftests/bpf: add tests for dynptr convenience helpers Joanne Koong
2023-04-12 21:48 ` [PATCH v1 bpf-next 0/5] Dynptr " Andrii Nakryiko
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=202304180233.Hk6WZE5M-lkp@intel.com \
--to=lkp@intel.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=joannelkoong@gmail.com \
--cc=oe-kbuild-all@lists.linux.dev \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).