From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9D37CC433F5 for ; Thu, 30 Sep 2021 13:21:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6C08461528 for ; Thu, 30 Sep 2021 13:21:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351072AbhI3NXM (ORCPT ); Thu, 30 Sep 2021 09:23:12 -0400 Received: from mga14.intel.com ([192.55.52.115]:35403 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348724AbhI3NXK (ORCPT ); Thu, 30 Sep 2021 09:23:10 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10122"; a="224838902" X-IronPort-AV: E=Sophos;i="5.85,336,1624345200"; d="gz'50?scan'50,208,50";a="224838902" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2021 06:21:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,336,1624345200"; d="gz'50?scan'50,208,50";a="709007106" Received: from lkp-server01.sh.intel.com (HELO 72c3bd3cf19c) ([10.239.97.150]) by fmsmga005.fm.intel.com with ESMTP; 30 Sep 2021 06:21:20 -0700 Received: from kbuild by 72c3bd3cf19c with local (Exim 4.92) (envelope-from ) id 1mVvzz-00004o-G9; Thu, 30 Sep 2021 13:21:19 +0000 Date: Thu, 30 Sep 2021 21:20:52 +0800 From: kernel test robot To: "Gustavo A. R. Silva" Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org, "Gustavo A. R. Silva" , LKML , Kees Cook Subject: [gustavoars:for-next/cast-function 1/1] kernel/bpf/verifier.c:12470:16: warning: cast from 'unsigned int (*)(const void *, const struct bpf_insn *)' to 'u64 (*)(u64, u64, u64, u64, u64)' (aka 'unsigned long long (*)(unsigned long long, unsigned long long, unsigned long long, unsigned long long,... Message-ID: <202109302140.3dPl9ABV-lkp@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="AqsLC8rIMeq19msA" Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --AqsLC8rIMeq19msA Content-Type: text/plain; charset=us-ascii Content-Disposition: inline tree: https://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git for-next/cast-function head: ffea83dd8823401f3922276d36aca35c3e99d7f3 commit: ffea83dd8823401f3922276d36aca35c3e99d7f3 [1/1] Makefile: Enable -Wcast-function-type config: i386-randconfig-r016-20210930 (attached as .config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 28981015526f2192440c18f18e8a20cd11b0779c) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git/commit/?id=ffea83dd8823401f3922276d36aca35c3e99d7f3 git remote add gustavoars https://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git git fetch --no-tags gustavoars for-next/cast-function git checkout ffea83dd8823401f3922276d36aca35c3e99d7f3 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> kernel/bpf/verifier.c:12470:16: warning: cast from 'unsigned int (*)(const void *, const struct bpf_insn *)' to 'u64 (*)(u64, u64, u64, u64, u64)' (aka 'unsigned long long (*)(unsigned long long, unsigned long long, unsigned long long, unsigned long long, unsigned long long)') converts to incompatible function type [-Wcast-function-type] insn->imm = BPF_CAST_CALL(func[subprog]->bpf_func) - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/filter.h:366:4: note: expanded from macro 'BPF_CAST_CALL' ((u64 (*)(u64, u64, u64, u64, u64))(x)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> kernel/bpf/verifier.c:12951:17: warning: cast from 'void *(*)(struct bpf_map *, void *)' to 'u64 (*)(u64, u64, u64, u64, u64)' (aka 'unsigned long long (*)(unsigned long long, unsigned long long, unsigned long long, unsigned long long, unsigned long long)') converts to incompatible function type [-Wcast-function-type] insn->imm = BPF_CAST_CALL(ops->map_lookup_elem) - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/filter.h:366:4: note: expanded from macro 'BPF_CAST_CALL' ((u64 (*)(u64, u64, u64, u64, u64))(x)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> kernel/bpf/verifier.c:12955:17: warning: cast from 'int (*)(struct bpf_map *, void *, void *, u64)' (aka 'int (*)(struct bpf_map *, void *, void *, unsigned long long)') to 'u64 (*)(u64, u64, u64, u64, u64)' (aka 'unsigned long long (*)(unsigned long long, unsigned long long, unsigned long long, unsigned long long, unsigned long long)') converts to incompatible function type [-Wcast-function-type] insn->imm = BPF_CAST_CALL(ops->map_update_elem) - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/filter.h:366:4: note: expanded from macro 'BPF_CAST_CALL' ((u64 (*)(u64, u64, u64, u64, u64))(x)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> kernel/bpf/verifier.c:12959:17: warning: cast from 'int (*)(struct bpf_map *, void *)' to 'u64 (*)(u64, u64, u64, u64, u64)' (aka 'unsigned long long (*)(unsigned long long, unsigned long long, unsigned long long, unsigned long long, unsigned long long)') converts to incompatible function type [-Wcast-function-type] insn->imm = BPF_CAST_CALL(ops->map_delete_elem) - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/filter.h:366:4: note: expanded from macro 'BPF_CAST_CALL' ((u64 (*)(u64, u64, u64, u64, u64))(x)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> kernel/bpf/verifier.c:12963:17: warning: cast from 'int (*)(struct bpf_map *, void *, u64)' (aka 'int (*)(struct bpf_map *, void *, unsigned long long)') to 'u64 (*)(u64, u64, u64, u64, u64)' (aka 'unsigned long long (*)(unsigned long long, unsigned long long, unsigned long long, unsigned long long, unsigned long long)') converts to incompatible function type [-Wcast-function-type] insn->imm = BPF_CAST_CALL(ops->map_push_elem) - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/filter.h:366:4: note: expanded from macro 'BPF_CAST_CALL' ((u64 (*)(u64, u64, u64, u64, u64))(x)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/bpf/verifier.c:12967:17: warning: cast from 'int (*)(struct bpf_map *, void *)' to 'u64 (*)(u64, u64, u64, u64, u64)' (aka 'unsigned long long (*)(unsigned long long, unsigned long long, unsigned long long, unsigned long long, unsigned long long)') converts to incompatible function type [-Wcast-function-type] insn->imm = BPF_CAST_CALL(ops->map_pop_elem) - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/filter.h:366:4: note: expanded from macro 'BPF_CAST_CALL' ((u64 (*)(u64, u64, u64, u64, u64))(x)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/bpf/verifier.c:12971:17: warning: cast from 'int (*)(struct bpf_map *, void *)' to 'u64 (*)(u64, u64, u64, u64, u64)' (aka 'unsigned long long (*)(unsigned long long, unsigned long long, unsigned long long, unsigned long long, unsigned long long)') converts to incompatible function type [-Wcast-function-type] insn->imm = BPF_CAST_CALL(ops->map_peek_elem) - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/filter.h:366:4: note: expanded from macro 'BPF_CAST_CALL' ((u64 (*)(u64, u64, u64, u64, u64))(x)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> kernel/bpf/verifier.c:12975:17: warning: cast from 'int (*)(struct bpf_map *, u32, u64)' (aka 'int (*)(struct bpf_map *, unsigned int, unsigned long long)') to 'u64 (*)(u64, u64, u64, u64, u64)' (aka 'unsigned long long (*)(unsigned long long, unsigned long long, unsigned long long, unsigned long long, unsigned long long)') converts to incompatible function type [-Wcast-function-type] insn->imm = BPF_CAST_CALL(ops->map_redirect) - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/filter.h:366:4: note: expanded from macro 'BPF_CAST_CALL' ((u64 (*)(u64, u64, u64, u64, u64))(x)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8 warnings generated. -- >> kernel/bpf/hashtab.c:671:26: warning: cast from 'void *(*)(struct bpf_map *, void *)' to 'u64 (*)(u64, u64, u64, u64, u64)' (aka 'unsigned long long (*)(unsigned long long, unsigned long long, unsigned long long, unsigned long long, unsigned long long)') converts to incompatible function type [-Wcast-function-type] *insn++ = BPF_EMIT_CALL(BPF_CAST_CALL(__htab_map_lookup_elem)); ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/filter.h:366:4: note: expanded from macro 'BPF_CAST_CALL' ((u64 (*)(u64, u64, u64, u64, u64))(x)) ^ include/linux/filter.h:374:14: note: expanded from macro 'BPF_EMIT_CALL' .imm = ((FUNC) - __bpf_call_base) }) ^~~~ kernel/bpf/hashtab.c:712:26: warning: cast from 'void *(*)(struct bpf_map *, void *)' to 'u64 (*)(u64, u64, u64, u64, u64)' (aka 'unsigned long long (*)(unsigned long long, unsigned long long, unsigned long long, unsigned long long, unsigned long long)') converts to incompatible function type [-Wcast-function-type] *insn++ = BPF_EMIT_CALL(BPF_CAST_CALL(__htab_map_lookup_elem)); ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/filter.h:366:4: note: expanded from macro 'BPF_CAST_CALL' ((u64 (*)(u64, u64, u64, u64, u64))(x)) ^ include/linux/filter.h:374:14: note: expanded from macro 'BPF_EMIT_CALL' .imm = ((FUNC) - __bpf_call_base) }) ^~~~ kernel/bpf/hashtab.c:2400:26: warning: cast from 'void *(*)(struct bpf_map *, void *)' to 'u64 (*)(u64, u64, u64, u64, u64)' (aka 'unsigned long long (*)(unsigned long long, unsigned long long, unsigned long long, unsigned long long, unsigned long long)') converts to incompatible function type [-Wcast-function-type] *insn++ = BPF_EMIT_CALL(BPF_CAST_CALL(__htab_map_lookup_elem)); ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/filter.h:366:4: note: expanded from macro 'BPF_CAST_CALL' ((u64 (*)(u64, u64, u64, u64, u64))(x)) ^ include/linux/filter.h:374:14: note: expanded from macro 'BPF_EMIT_CALL' .imm = ((FUNC) - __bpf_call_base) }) ^~~~ 3 warnings generated. -- >> drivers/firewire/core-cdev.c:985:8: warning: cast from 'void (*)(struct fw_iso_context *, dma_addr_t, void *)' (aka 'void (*)(struct fw_iso_context *, unsigned int, void *)') to 'fw_iso_callback_t' (aka 'void (*)(struct fw_iso_context *, unsigned int, unsigned int, void *, void *)') converts to incompatible function type [-Wcast-function-type] cb = (fw_iso_callback_t)iso_mc_callback; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. vim +12470 kernel/bpf/verifier.c 9bac3d6d548e5c Alexei Starovoitov 2015-03-13 12337 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12338 static int jit_subprogs(struct bpf_verifier_env *env) 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12339 { 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12340 struct bpf_prog *prog = env->prog, **func, *tmp; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12341 int i, j, subprog_start, subprog_end = 0, len, subprog; a748c6975dea32 Maciej Fijalkowski 2020-09-16 12342 struct bpf_map *map_ptr; 7105e828c087de Daniel Borkmann 2017-12-20 12343 struct bpf_insn *insn; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12344 void *old_bpf_func; c4c0bdc0d2d084 Yonghong Song 2020-06-23 12345 int err, num_exentries; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12346 f910cefa32b6cd Jiong Wang 2018-05-02 12347 if (env->subprog_cnt <= 1) 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12348 return 0; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12349 7105e828c087de Daniel Borkmann 2017-12-20 12350 for (i = 0, insn = prog->insnsi; i < prog->len; i++, insn++) { 69c087ba6225b5 Yonghong Song 2021-02-26 12351 if (bpf_pseudo_func(insn)) { 69c087ba6225b5 Yonghong Song 2021-02-26 12352 env->insn_aux_data[i].call_imm = insn->imm; 69c087ba6225b5 Yonghong Song 2021-02-26 12353 /* subprog is encoded in insn[1].imm */ 69c087ba6225b5 Yonghong Song 2021-02-26 12354 continue; 69c087ba6225b5 Yonghong Song 2021-02-26 12355 } 69c087ba6225b5 Yonghong Song 2021-02-26 12356 23a2d70c7a2f28 Yonghong Song 2021-02-04 12357 if (!bpf_pseudo_call(insn)) 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12358 continue; c7a897843224a9 Daniel Borkmann 2018-07-12 12359 /* Upon error here we cannot fall back to interpreter but c7a897843224a9 Daniel Borkmann 2018-07-12 12360 * need a hard reject of the program. Thus -EFAULT is c7a897843224a9 Daniel Borkmann 2018-07-12 12361 * propagated in any case. c7a897843224a9 Daniel Borkmann 2018-07-12 12362 */ 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12363 subprog = find_subprog(env, i + insn->imm + 1); 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12364 if (subprog < 0) { 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12365 WARN_ONCE(1, "verifier bug. No program starts at insn %d\n", 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12366 i + insn->imm + 1); 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12367 return -EFAULT; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12368 } 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12369 /* temporarily remember subprog id inside insn instead of 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12370 * aux_data, since next loop will split up all insns into funcs 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12371 */ f910cefa32b6cd Jiong Wang 2018-05-02 12372 insn->off = subprog; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12373 /* remember original imm in case JIT fails and fallback 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12374 * to interpreter will be needed 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12375 */ 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12376 env->insn_aux_data[i].call_imm = insn->imm; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12377 /* point imm to __bpf_call_base+1 from JITs point of view */ 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12378 insn->imm = 1; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12379 } 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12380 c454a46b5efd8e Martin KaFai Lau 2018-12-07 12381 err = bpf_prog_alloc_jited_linfo(prog); c454a46b5efd8e Martin KaFai Lau 2018-12-07 12382 if (err) c454a46b5efd8e Martin KaFai Lau 2018-12-07 12383 goto out_undo_insn; c454a46b5efd8e Martin KaFai Lau 2018-12-07 12384 c454a46b5efd8e Martin KaFai Lau 2018-12-07 12385 err = -ENOMEM; 6396bb221514d2 Kees Cook 2018-06-12 12386 func = kcalloc(env->subprog_cnt, sizeof(prog), GFP_KERNEL); 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12387 if (!func) c7a897843224a9 Daniel Borkmann 2018-07-12 12388 goto out_undo_insn; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12389 f910cefa32b6cd Jiong Wang 2018-05-02 12390 for (i = 0; i < env->subprog_cnt; i++) { 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12391 subprog_start = subprog_end; 9c8105bd440223 Jiong Wang 2018-05-02 12392 subprog_end = env->subprog_info[i + 1].start; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12393 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12394 len = subprog_end - subprog_start; fb7dd8bca0139f Andrii Nakryiko 2021-08-15 12395 /* bpf_prog_run() doesn't call subprogs directly, 492ecee892c2a4 Alexei Starovoitov 2019-02-25 12396 * hence main prog stats include the runtime of subprogs. 492ecee892c2a4 Alexei Starovoitov 2019-02-25 12397 * subprogs don't have IDs and not reachable via prog_get_next_id 700d4796ef59f5 Alexei Starovoitov 2021-02-09 12398 * func[i]->stats will never be accessed and stays NULL 492ecee892c2a4 Alexei Starovoitov 2019-02-25 12399 */ 492ecee892c2a4 Alexei Starovoitov 2019-02-25 12400 func[i] = bpf_prog_alloc_no_stats(bpf_prog_size(len), GFP_USER); 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12401 if (!func[i]) 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12402 goto out_free; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12403 memcpy(func[i]->insnsi, &prog->insnsi[subprog_start], 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12404 len * sizeof(struct bpf_insn)); 4f74d80971bce9 Daniel Borkmann 2017-12-20 12405 func[i]->type = prog->type; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12406 func[i]->len = len; 4f74d80971bce9 Daniel Borkmann 2017-12-20 12407 if (bpf_prog_calc_tag(func[i])) 4f74d80971bce9 Daniel Borkmann 2017-12-20 12408 goto out_free; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12409 func[i]->is_func = 1; ba64e7d8525236 Yonghong Song 2018-11-24 12410 func[i]->aux->func_idx = i; f263a81451c12d John Fastabend 2021-07-07 12411 /* Below members will be freed only at prog->aux */ ba64e7d8525236 Yonghong Song 2018-11-24 12412 func[i]->aux->btf = prog->aux->btf; ba64e7d8525236 Yonghong Song 2018-11-24 12413 func[i]->aux->func_info = prog->aux->func_info; f263a81451c12d John Fastabend 2021-07-07 12414 func[i]->aux->poke_tab = prog->aux->poke_tab; f263a81451c12d John Fastabend 2021-07-07 12415 func[i]->aux->size_poke_tab = prog->aux->size_poke_tab; ba64e7d8525236 Yonghong Song 2018-11-24 12416 a748c6975dea32 Maciej Fijalkowski 2020-09-16 12417 for (j = 0; j < prog->aux->size_poke_tab; j++) { f263a81451c12d John Fastabend 2021-07-07 12418 struct bpf_jit_poke_descriptor *poke; a748c6975dea32 Maciej Fijalkowski 2020-09-16 12419 f263a81451c12d John Fastabend 2021-07-07 12420 poke = &prog->aux->poke_tab[j]; f263a81451c12d John Fastabend 2021-07-07 12421 if (poke->insn_idx < subprog_end && f263a81451c12d John Fastabend 2021-07-07 12422 poke->insn_idx >= subprog_start) f263a81451c12d John Fastabend 2021-07-07 12423 poke->aux = func[i]->aux; a748c6975dea32 Maciej Fijalkowski 2020-09-16 12424 } a748c6975dea32 Maciej Fijalkowski 2020-09-16 12425 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12426 /* Use bpf_prog_F_tag to indicate functions in stack traces. 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12427 * Long term would need debug info to populate names 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12428 */ 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12429 func[i]->aux->name[0] = 'F'; 9c8105bd440223 Jiong Wang 2018-05-02 12430 func[i]->aux->stack_depth = env->subprog_info[i].stack_depth; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12431 func[i]->jit_requested = 1; e6ac2450d6dee3 Martin KaFai Lau 2021-03-24 12432 func[i]->aux->kfunc_tab = prog->aux->kfunc_tab; c454a46b5efd8e Martin KaFai Lau 2018-12-07 12433 func[i]->aux->linfo = prog->aux->linfo; c454a46b5efd8e Martin KaFai Lau 2018-12-07 12434 func[i]->aux->nr_linfo = prog->aux->nr_linfo; c454a46b5efd8e Martin KaFai Lau 2018-12-07 12435 func[i]->aux->jited_linfo = prog->aux->jited_linfo; c454a46b5efd8e Martin KaFai Lau 2018-12-07 12436 func[i]->aux->linfo_idx = env->subprog_info[i].linfo_idx; c4c0bdc0d2d084 Yonghong Song 2020-06-23 12437 num_exentries = 0; c4c0bdc0d2d084 Yonghong Song 2020-06-23 12438 insn = func[i]->insnsi; c4c0bdc0d2d084 Yonghong Song 2020-06-23 12439 for (j = 0; j < func[i]->len; j++, insn++) { c4c0bdc0d2d084 Yonghong Song 2020-06-23 12440 if (BPF_CLASS(insn->code) == BPF_LDX && c4c0bdc0d2d084 Yonghong Song 2020-06-23 12441 BPF_MODE(insn->code) == BPF_PROBE_MEM) c4c0bdc0d2d084 Yonghong Song 2020-06-23 12442 num_exentries++; c4c0bdc0d2d084 Yonghong Song 2020-06-23 12443 } c4c0bdc0d2d084 Yonghong Song 2020-06-23 12444 func[i]->aux->num_exentries = num_exentries; ebf7d1f508a738 Maciej Fijalkowski 2020-09-16 12445 func[i]->aux->tail_call_reachable = env->subprog_info[i].tail_call_reachable; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12446 func[i] = bpf_int_jit_compile(func[i]); 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12447 if (!func[i]->jited) { 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12448 err = -ENOTSUPP; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12449 goto out_free; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12450 } 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12451 cond_resched(); 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12452 } a748c6975dea32 Maciej Fijalkowski 2020-09-16 12453 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12454 /* at this point all bpf functions were successfully JITed 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12455 * now populate all bpf_calls with correct addresses and 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12456 * run last pass of JIT 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12457 */ f910cefa32b6cd Jiong Wang 2018-05-02 12458 for (i = 0; i < env->subprog_cnt; i++) { 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12459 insn = func[i]->insnsi; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12460 for (j = 0; j < func[i]->len; j++, insn++) { 69c087ba6225b5 Yonghong Song 2021-02-26 12461 if (bpf_pseudo_func(insn)) { 69c087ba6225b5 Yonghong Song 2021-02-26 12462 subprog = insn[1].imm; 69c087ba6225b5 Yonghong Song 2021-02-26 12463 insn[0].imm = (u32)(long)func[subprog]->bpf_func; 69c087ba6225b5 Yonghong Song 2021-02-26 12464 insn[1].imm = ((u64)(long)func[subprog]->bpf_func) >> 32; 69c087ba6225b5 Yonghong Song 2021-02-26 12465 continue; 69c087ba6225b5 Yonghong Song 2021-02-26 12466 } 23a2d70c7a2f28 Yonghong Song 2021-02-04 12467 if (!bpf_pseudo_call(insn)) 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12468 continue; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12469 subprog = insn->off; 0d306c31b2f773 Prashant Bhole 2019-04-16 @12470 insn->imm = BPF_CAST_CALL(func[subprog]->bpf_func) - 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12471 __bpf_call_base; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12472 } 2162fed49fa86c Sandipan Das 2018-05-24 12473 2162fed49fa86c Sandipan Das 2018-05-24 12474 /* we use the aux data to keep a list of the start addresses 2162fed49fa86c Sandipan Das 2018-05-24 12475 * of the JITed images for each function in the program 2162fed49fa86c Sandipan Das 2018-05-24 12476 * 2162fed49fa86c Sandipan Das 2018-05-24 12477 * for some architectures, such as powerpc64, the imm field 2162fed49fa86c Sandipan Das 2018-05-24 12478 * might not be large enough to hold the offset of the start 2162fed49fa86c Sandipan Das 2018-05-24 12479 * address of the callee's JITed image from __bpf_call_base 2162fed49fa86c Sandipan Das 2018-05-24 12480 * 2162fed49fa86c Sandipan Das 2018-05-24 12481 * in such cases, we can lookup the start address of a callee 2162fed49fa86c Sandipan Das 2018-05-24 12482 * by using its subprog id, available from the off field of 2162fed49fa86c Sandipan Das 2018-05-24 12483 * the call instruction, as an index for this list 2162fed49fa86c Sandipan Das 2018-05-24 12484 */ 2162fed49fa86c Sandipan Das 2018-05-24 12485 func[i]->aux->func = func; 2162fed49fa86c Sandipan Das 2018-05-24 12486 func[i]->aux->func_cnt = env->subprog_cnt; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12487 } f910cefa32b6cd Jiong Wang 2018-05-02 12488 for (i = 0; i < env->subprog_cnt; i++) { 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12489 old_bpf_func = func[i]->bpf_func; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12490 tmp = bpf_int_jit_compile(func[i]); 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12491 if (tmp != func[i] || func[i]->bpf_func != old_bpf_func) { 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12492 verbose(env, "JIT doesn't support bpf-to-bpf calls\n"); c7a897843224a9 Daniel Borkmann 2018-07-12 12493 err = -ENOTSUPP; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12494 goto out_free; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12495 } 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12496 cond_resched(); 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12497 } 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12498 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12499 /* finally lock prog and jit images for all functions and 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12500 * populate kallsysm 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12501 */ f910cefa32b6cd Jiong Wang 2018-05-02 12502 for (i = 0; i < env->subprog_cnt; i++) { 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12503 bpf_prog_lock_ro(func[i]); 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12504 bpf_prog_kallsyms_add(func[i]); 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12505 } 7105e828c087de Daniel Borkmann 2017-12-20 12506 7105e828c087de Daniel Borkmann 2017-12-20 12507 /* Last step: make now unused interpreter insns from main 7105e828c087de Daniel Borkmann 2017-12-20 12508 * prog consistent for later dump requests, so they can 7105e828c087de Daniel Borkmann 2017-12-20 12509 * later look the same as if they were interpreted only. 7105e828c087de Daniel Borkmann 2017-12-20 12510 */ 7105e828c087de Daniel Borkmann 2017-12-20 12511 for (i = 0, insn = prog->insnsi; i < prog->len; i++, insn++) { 69c087ba6225b5 Yonghong Song 2021-02-26 12512 if (bpf_pseudo_func(insn)) { 69c087ba6225b5 Yonghong Song 2021-02-26 12513 insn[0].imm = env->insn_aux_data[i].call_imm; 69c087ba6225b5 Yonghong Song 2021-02-26 12514 insn[1].imm = find_subprog(env, i + insn[0].imm + 1); 69c087ba6225b5 Yonghong Song 2021-02-26 12515 continue; 69c087ba6225b5 Yonghong Song 2021-02-26 12516 } 23a2d70c7a2f28 Yonghong Song 2021-02-04 12517 if (!bpf_pseudo_call(insn)) 7105e828c087de Daniel Borkmann 2017-12-20 12518 continue; 7105e828c087de Daniel Borkmann 2017-12-20 12519 insn->off = env->insn_aux_data[i].call_imm; 7105e828c087de Daniel Borkmann 2017-12-20 12520 subprog = find_subprog(env, i + insn->off + 1); dbecd7388476ae Sandipan Das 2018-05-24 12521 insn->imm = subprog; 7105e828c087de Daniel Borkmann 2017-12-20 12522 } 7105e828c087de Daniel Borkmann 2017-12-20 12523 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12524 prog->jited = 1; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12525 prog->bpf_func = func[0]->bpf_func; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12526 prog->aux->func = func; f910cefa32b6cd Jiong Wang 2018-05-02 12527 prog->aux->func_cnt = env->subprog_cnt; e16301fbe1837c Martin KaFai Lau 2021-03-24 12528 bpf_prog_jit_attempt_done(prog); 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12529 return 0; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12530 out_free: f263a81451c12d John Fastabend 2021-07-07 12531 /* We failed JIT'ing, so at this point we need to unregister poke f263a81451c12d John Fastabend 2021-07-07 12532 * descriptors from subprogs, so that kernel is not attempting to f263a81451c12d John Fastabend 2021-07-07 12533 * patch it anymore as we're freeing the subprog JIT memory. f263a81451c12d John Fastabend 2021-07-07 12534 */ f263a81451c12d John Fastabend 2021-07-07 12535 for (i = 0; i < prog->aux->size_poke_tab; i++) { f263a81451c12d John Fastabend 2021-07-07 12536 map_ptr = prog->aux->poke_tab[i].tail_call.map; f263a81451c12d John Fastabend 2021-07-07 12537 map_ptr->ops->map_poke_untrack(map_ptr, prog->aux); f263a81451c12d John Fastabend 2021-07-07 12538 } f263a81451c12d John Fastabend 2021-07-07 12539 /* At this point we're guaranteed that poke descriptors are not f263a81451c12d John Fastabend 2021-07-07 12540 * live anymore. We can just unlink its descriptor table as it's f263a81451c12d John Fastabend 2021-07-07 12541 * released with the main prog. f263a81451c12d John Fastabend 2021-07-07 12542 */ a748c6975dea32 Maciej Fijalkowski 2020-09-16 12543 for (i = 0; i < env->subprog_cnt; i++) { a748c6975dea32 Maciej Fijalkowski 2020-09-16 12544 if (!func[i]) a748c6975dea32 Maciej Fijalkowski 2020-09-16 12545 continue; f263a81451c12d John Fastabend 2021-07-07 12546 func[i]->aux->poke_tab = NULL; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12547 bpf_jit_free(func[i]); a748c6975dea32 Maciej Fijalkowski 2020-09-16 12548 } 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12549 kfree(func); c7a897843224a9 Daniel Borkmann 2018-07-12 12550 out_undo_insn: 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12551 /* cleanup main prog to be interpreted */ 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12552 prog->jit_requested = 0; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12553 for (i = 0, insn = prog->insnsi; i < prog->len; i++, insn++) { 23a2d70c7a2f28 Yonghong Song 2021-02-04 12554 if (!bpf_pseudo_call(insn)) 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12555 continue; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12556 insn->off = 0; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12557 insn->imm = env->insn_aux_data[i].call_imm; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12558 } e16301fbe1837c Martin KaFai Lau 2021-03-24 12559 bpf_prog_jit_attempt_done(prog); 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12560 return err; 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12561 } 1c2a088a6626d4 Alexei Starovoitov 2017-12-14 12562 :::::: The code at line 12470 was first introduced by commit :::::: 0d306c31b2f77391dacdeaad4470c577f2aecc4f bpf: use BPF_CAST_CALL for casting bpf call :::::: TO: Prashant Bhole :::::: CC: Alexei Starovoitov --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --AqsLC8rIMeq19msA Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 5r/fnJqBl6ACAA== --AqsLC8rIMeq19msA--