Re: [bpf-next v8 1/5] bpf: Move constants blinding from JIT to verifier

From: kernel test robot

Date: Tue Mar 17 2026 - 06:56:03 EST


Hi Xu,

kernel test robot noticed the following build errors:

[auto build test ERROR on bpf-next/master]

url: https://github.com/intel-lab-lkp/linux/commits/Xu-Kuohai/bpf-Move-constants-blinding-from-JIT-to-verifier/20260309-214106
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link: https://lore.kernel.org/r/20260309140044.2652538-2-xukuohai%40huaweicloud.com
patch subject: [bpf-next v8 1/5] bpf: Move constants blinding from JIT to verifier
config: powerpc64-randconfig-001-20260317 (https://download.01.org/0day-ci/archive/20260317/202603171843.yv0X1mn3-lkp@xxxxxxxxx/config)
compiler: powerpc64-linux-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260317/202603171843.yv0X1mn3-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603171843.yv0X1mn3-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

powerpc64-linux-ld: kernel/bpf/core.o: in function `bpf_jit_blind_constants':
>> kernel/bpf/core.c:1467: undefined reference to `bpf_patch_insn_data'


vim +1467 kernel/bpf/core.c

1429
1430 int bpf_jit_blind_constants(struct bpf_verifier_env *env)
1431 {
1432 struct bpf_insn insn_buff[16], aux[2];
1433 struct bpf_prog *prog = env->prog;
1434 int insn_delta, insn_cnt;
1435 struct bpf_insn *insn;
1436 int i, rewritten;
1437
1438 if (!prog->blinding_requested || prog->blinded)
1439 return 0;
1440
1441 insn_cnt = prog->len;
1442 insn = prog->insnsi;
1443
1444 for (i = 0; i < insn_cnt; i++, insn++) {
1445 if (bpf_pseudo_func(insn)) {
1446 /* ld_imm64 with an address of bpf subprog is not
1447 * a user controlled constant. Don't randomize it,
1448 * since it will conflict with jit_subprogs() logic.
1449 */
1450 insn++;
1451 i++;
1452 continue;
1453 }
1454
1455 /* We temporarily need to hold the original ld64 insn
1456 * so that we can still access the first part in the
1457 * second blinding run.
1458 */
1459 if (insn[0].code == (BPF_LD | BPF_IMM | BPF_DW) &&
1460 insn[1].code == 0)
1461 memcpy(aux, insn, sizeof(aux));
1462
1463 rewritten = bpf_jit_blind_insn(insn, aux, insn_buff, prog->aux->verifier_zext);
1464 if (!rewritten)
1465 continue;
1466
> 1467 prog = bpf_patch_insn_data(env, i, insn_buff, rewritten);
1468 if (!prog)
1469 return -ENOMEM;
1470
1471 env->prog = prog;
1472 insn_delta = rewritten - 1;
1473
1474 /* Walk new program and skip insns we just inserted. */
1475 insn = prog->insnsi + i + insn_delta;
1476 insn_cnt += insn_delta;
1477 i += insn_delta;
1478 }
1479
1480 prog->blinded = 1;
1481 return 0;
1482 }
1483 #endif /* CONFIG_BPF_JIT */
1484

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki