From: kernel test robot <lkp@intel.com>
To: Joanne Koong <joannelkoong@gmail.com>, bpf@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, martin.lau@kernel.org,
andrii@kernel.org, ast@kernel.org, memxor@gmail.com,
daniel@iogearbox.net, netdev@vger.kernel.org, toke@kernel.org,
Joanne Koong <joannelkoong@gmail.com>
Subject: Re: [PATCH v13 bpf-next 09/10] bpf: Add bpf_dynptr_slice and bpf_dynptr_slice_rdwr
Date: Thu, 2 Mar 2023 11:29:45 +0800 [thread overview]
Message-ID: <202303021152.sPWiwGYn-lkp@intel.com> (raw)
In-Reply-To: <20230301154953.641654-10-joannelkoong@gmail.com>
Hi Joanne,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on bpf-next/master]
url: https://github.com/intel-lab-lkp/linux/commits/Joanne-Koong/bpf-Support-sk_buff-and-xdp_buff-as-valid-kfunc-arg-types/20230301-235341
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link: https://lore.kernel.org/r/20230301154953.641654-10-joannelkoong%40gmail.com
patch subject: [PATCH v13 bpf-next 09/10] bpf: Add bpf_dynptr_slice and bpf_dynptr_slice_rdwr
config: microblaze-randconfig-s043-20230302 (https://download.01.org/0day-ci/archive/20230302/202303021152.sPWiwGYn-lkp@intel.com/config)
compiler: microblaze-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/ab021cad431168baaba04ed320003be30f4deb34
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Joanne-Koong/bpf-Support-sk_buff-and-xdp_buff-as-valid-kfunc-arg-types/20230301-235341
git checkout ab021cad431168baaba04ed320003be30f4deb34
# 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=microblaze 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=microblaze 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/202303021152.sPWiwGYn-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> kernel/bpf/helpers.c:2231:24: sparse: sparse: Using plain integer as NULL pointer
kernel/bpf/helpers.c:2235:24: sparse: sparse: Using plain integer as NULL pointer
kernel/bpf/helpers.c:2256:24: sparse: sparse: Using plain integer as NULL pointer
kernel/bpf/helpers.c:2305:24: sparse: sparse: Using plain integer as NULL pointer
kernel/bpf/helpers.c:2342:18: sparse: sparse: context imbalance in 'bpf_rcu_read_lock' - wrong count at exit
kernel/bpf/helpers.c:2347:18: sparse: sparse: context imbalance in 'bpf_rcu_read_unlock' - unexpected unlock
vim +2231 kernel/bpf/helpers.c
2195
2196 /**
2197 * bpf_dynptr_slice - Obtain a read-only pointer to the dynptr data.
2198 *
2199 * For non-skb and non-xdp type dynptrs, there is no difference between
2200 * bpf_dynptr_slice and bpf_dynptr_data.
2201 *
2202 * If the intention is to write to the data slice, please use
2203 * bpf_dynptr_slice_rdwr.
2204 *
2205 * The user must check that the returned pointer is not null before using it.
2206 *
2207 * Please note that in the case of skb and xdp dynptrs, bpf_dynptr_slice
2208 * does not change the underlying packet data pointers, so a call to
2209 * bpf_dynptr_slice will not invalidate any ctx->data/data_end pointers in
2210 * the bpf program.
2211 *
2212 * @ptr: The dynptr whose data slice to retrieve
2213 * @offset: Offset into the dynptr
2214 * @buffer: User-provided buffer to copy contents into
2215 * @buffer__szk: Size (in bytes) of the buffer. This is the length of the
2216 * requested slice. This must be a constant.
2217 *
2218 * @returns: NULL if the call failed (eg invalid dynptr), pointer to a read-only
2219 * data slice (can be either direct pointer to the data or a pointer to the user
2220 * provided buffer, with its contents containing the data, if unable to obtain
2221 * direct pointer)
2222 */
2223 __bpf_kfunc void *bpf_dynptr_slice(const struct bpf_dynptr_kern *ptr, u32 offset,
2224 void *buffer, u32 buffer__szk)
2225 {
2226 enum bpf_dynptr_type type;
2227 u32 len = buffer__szk;
2228 int err;
2229
2230 if (!ptr->data)
> 2231 return 0;
2232
2233 err = bpf_dynptr_check_off_len(ptr, offset, len);
2234 if (err)
2235 return 0;
2236
2237 type = bpf_dynptr_get_type(ptr);
2238
2239 switch (type) {
2240 case BPF_DYNPTR_TYPE_LOCAL:
2241 case BPF_DYNPTR_TYPE_RINGBUF:
2242 return ptr->data + ptr->offset + offset;
2243 case BPF_DYNPTR_TYPE_SKB:
2244 return skb_header_pointer(ptr->data, ptr->offset + offset, len, buffer);
2245 case BPF_DYNPTR_TYPE_XDP:
2246 {
2247 void *xdp_ptr = bpf_xdp_pointer(ptr->data, ptr->offset + offset, len);
2248 if (xdp_ptr)
2249 return xdp_ptr;
2250
2251 bpf_xdp_copy_buf(ptr->data, ptr->offset + offset, buffer, len, false);
2252 return buffer;
2253 }
2254 default:
2255 WARN_ONCE(true, "unknown dynptr type %d\n", type);
2256 return 0;
2257 }
2258 }
2259
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
next prev parent reply other threads:[~2023-03-02 3:30 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-01 15:49 [PATCH v13 bpf-next 00/10] Add skb + xdp dynptrs Joanne Koong
2023-03-01 15:49 ` [PATCH v13 bpf-next 01/10] bpf: Support "sk_buff" and "xdp_buff" as valid kfunc arg types Joanne Koong
2023-03-01 15:49 ` [PATCH v13 bpf-next 02/10] bpf: Refactor process_dynptr_func Joanne Koong
2023-03-01 15:49 ` [PATCH v13 bpf-next 03/10] bpf: Allow initializing dynptrs in kfuncs Joanne Koong
2023-03-06 7:36 ` Kumar Kartikeya Dwivedi
2023-03-07 6:53 ` Joanne Koong
2023-03-07 23:53 ` Andrii Nakryiko
2023-03-01 15:49 ` [PATCH v13 bpf-next 04/10] bpf: Define no-ops for externally called bpf dynptr functions Joanne Koong
2023-03-01 15:49 ` [PATCH v13 bpf-next 05/10] bpf: Refactor verifier dynptr into get_dynptr_arg_reg Joanne Koong
2023-03-01 15:49 ` [PATCH v13 bpf-next 06/10] bpf: Add __uninit kfunc annotation Joanne Koong
2023-03-01 15:49 ` [PATCH v13 bpf-next 07/10] bpf: Add skb dynptrs Joanne Koong
2023-03-01 15:49 ` [PATCH v13 bpf-next 08/10] bpf: Add xdp dynptrs Joanne Koong
2023-03-01 15:49 ` [PATCH v13 bpf-next 09/10] bpf: Add bpf_dynptr_slice and bpf_dynptr_slice_rdwr Joanne Koong
2023-03-02 3:29 ` kernel test robot [this message]
2023-03-02 3:53 ` Joanne Koong
2023-03-06 7:10 ` Kumar Kartikeya Dwivedi
2023-03-07 2:23 ` Alexei Starovoitov
2023-03-07 10:22 ` Kumar Kartikeya Dwivedi
2023-03-07 15:45 ` Alexei Starovoitov
2023-03-07 17:35 ` Kumar Kartikeya Dwivedi
2023-03-08 0:01 ` Andrii Nakryiko
2023-03-10 21:15 ` Alexei Starovoitov
2023-03-10 21:29 ` Andrii Nakryiko
2023-03-10 21:54 ` Kumar Kartikeya Dwivedi
2023-03-10 21:54 ` Alexei Starovoitov
2023-03-13 6:31 ` Joanne Koong
2023-03-13 14:41 ` Kumar Kartikeya Dwivedi
2023-03-16 18:55 ` Andrii Nakryiko
2023-03-27 7:47 ` Joanne Koong
2023-03-28 21:42 ` Andrii Nakryiko
2023-04-09 0:22 ` Joanne Koong
2023-04-12 19:05 ` Andrii Nakryiko
2023-03-10 21:38 ` Kumar Kartikeya Dwivedi
2023-03-10 21:49 ` Alexei Starovoitov
2023-03-01 15:49 ` [PATCH v13 bpf-next 10/10] selftests/bpf: tests for using dynptrs to parse skb and xdp buffers Joanne Koong
2023-03-01 18:08 ` Alexei Starovoitov
2023-03-01 18:43 ` Andrii Nakryiko
2023-03-02 4:28 ` Joanne Koong
2023-03-08 1:55 ` Ilya Leoshkevich
2023-03-08 7:22 ` Joanne Koong
2023-03-08 14:24 ` Ilya Leoshkevich
2023-03-09 8:13 ` Joanne Koong
2023-03-10 3:40 ` Ilya Leoshkevich
2023-03-10 5:12 ` Stanislav Fomichev
2023-03-10 17:43 ` Alexei Starovoitov
2023-03-01 18:10 ` [PATCH v13 bpf-next 00/10] Add skb + xdp dynptrs patchwork-bot+netdevbpf
2023-03-08 8:16 ` Jakub Kicinski
2023-03-08 17:08 ` Andrii Nakryiko
2023-03-08 17:28 ` Jakub Kicinski
2023-03-08 19:02 ` 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=202303021152.sPWiwGYn-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=martin.lau@kernel.org \
--cc=memxor@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=toke@kernel.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 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).