From: Jakub Kicinski Date: Thu, 17 Feb 2022 20:22:28 +0000 (-0800) Subject: Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=93d11e0d76e3c5a8350c77d1463d9f845bdc9307;p=linux.git Merge git://git./linux/kernel/git/netdev/net Fast path bpf marge for some -next work. Signed-off-by: Jakub Kicinski --- 93d11e0d76e3c5a8350c77d1463d9f845bdc9307 diff --cc kernel/bpf/btf.c index 11740b300de93,3e23b3fa79ff6..6f094c9f7f0b0 --- a/kernel/bpf/btf.c +++ b/kernel/bpf/btf.c @@@ -5805,19 -5705,9 +5806,19 @@@ static int btf_check_func_arg_match(str if (reg->type == PTR_TO_BTF_ID) { reg_btf = reg->btf; reg_ref_id = reg->btf_id; + /* Ensure only one argument is referenced PTR_TO_BTF_ID */ + if (reg->ref_obj_id) { + if (ref_obj_id) { + bpf_log(log, "verifier internal error: more than one arg with ref_obj_id R%d %u %u\n", + regno, reg->ref_obj_id, ref_obj_id); + return -EFAULT; + } + ref_regno = regno; + ref_obj_id = reg->ref_obj_id; + } } else { reg_btf = btf_vmlinux; - reg_ref_id = *reg2btf_ids[reg->type]; + reg_ref_id = *reg2btf_ids[base_type(reg->type)]; } reg_ref_t = btf_type_skip_modifiers(reg_btf, reg_ref_id,