Commit ae010757 authored by Eduard Zingerman's avatar Eduard Zingerman Committed by Alexei Starovoitov

bpf: rename nocsr -> bpf_fastcall in verifier

Attribute used by LLVM implementation of the feature had been changed
from no_caller_saved_registers to bpf_fastcall (see [1]).
This commit replaces references to nocsr by references to bpf_fastcall
to keep LLVM and Kernel parts in sync.

[1] https://github.com/llvm/llvm-project/pull/105417Acked-by: default avatarYonghong Song <yonghong.song@linux.dev>
Signed-off-by: default avatarEduard Zingerman <eddyz87@gmail.com>
Link: https://lore.kernel.org/r/20240822084112.3257995-2-eddyz87@gmail.comSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 6d641ca5
...@@ -808,12 +808,12 @@ struct bpf_func_proto { ...@@ -808,12 +808,12 @@ struct bpf_func_proto {
bool gpl_only; bool gpl_only;
bool pkt_access; bool pkt_access;
bool might_sleep; bool might_sleep;
/* set to true if helper follows contract for gcc/llvm /* set to true if helper follows contract for llvm
* attribute no_caller_saved_registers: * attribute bpf_fastcall:
* - void functions do not scratch r0 * - void functions do not scratch r0
* - functions taking N arguments scratch only registers r1-rN * - functions taking N arguments scratch only registers r1-rN
*/ */
bool allow_nocsr; bool allow_fastcall;
enum bpf_return_type ret_type; enum bpf_return_type ret_type;
union { union {
struct { struct {
......
...@@ -577,13 +577,13 @@ struct bpf_insn_aux_data { ...@@ -577,13 +577,13 @@ struct bpf_insn_aux_data {
bool call_with_percpu_alloc_ptr; /* {this,per}_cpu_ptr() with prog percpu alloc */ bool call_with_percpu_alloc_ptr; /* {this,per}_cpu_ptr() with prog percpu alloc */
u8 alu_state; /* used in combination with alu_limit */ u8 alu_state; /* used in combination with alu_limit */
/* true if STX or LDX instruction is a part of a spill/fill /* true if STX or LDX instruction is a part of a spill/fill
* pattern for a no_caller_saved_registers call. * pattern for a bpf_fastcall call.
*/ */
u8 nocsr_pattern:1; u8 fastcall_pattern:1;
/* for CALL instructions, a number of spill/fill pairs in the /* for CALL instructions, a number of spill/fill pairs in the
* no_caller_saved_registers pattern. * bpf_fastcall pattern.
*/ */
u8 nocsr_spills_num:3; u8 fastcall_spills_num:3;
/* below fields are initialized once */ /* below fields are initialized once */
unsigned int orig_idx; /* original instruction index */ unsigned int orig_idx; /* original instruction index */
...@@ -653,10 +653,10 @@ struct bpf_subprog_info { ...@@ -653,10 +653,10 @@ struct bpf_subprog_info {
u32 linfo_idx; /* The idx to the main_prog->aux->linfo */ u32 linfo_idx; /* The idx to the main_prog->aux->linfo */
u16 stack_depth; /* max. stack depth used by this function */ u16 stack_depth; /* max. stack depth used by this function */
u16 stack_extra; u16 stack_extra;
/* offsets in range [stack_depth .. nocsr_stack_off) /* offsets in range [stack_depth .. fastcall_stack_off)
* are used for no_caller_saved_registers spills and fills. * are used for bpf_fastcall spills and fills.
*/ */
s16 nocsr_stack_off; s16 fastcall_stack_off;
bool has_tail_call: 1; bool has_tail_call: 1;
bool tail_call_reachable: 1; bool tail_call_reachable: 1;
bool has_ld_abs: 1; bool has_ld_abs: 1;
...@@ -664,8 +664,8 @@ struct bpf_subprog_info { ...@@ -664,8 +664,8 @@ struct bpf_subprog_info {
bool is_async_cb: 1; bool is_async_cb: 1;
bool is_exception_cb: 1; bool is_exception_cb: 1;
bool args_cached: 1; bool args_cached: 1;
/* true if nocsr stack region is used by functions that can't be inlined */ /* true if bpf_fastcall stack region is used by functions that can't be inlined */
bool keep_nocsr_stack: 1; bool keep_fastcall_stack: 1;
u8 arg_cnt; u8 arg_cnt;
struct bpf_subprog_arg_info args[MAX_BPF_FUNC_REG_ARGS]; struct bpf_subprog_arg_info args[MAX_BPF_FUNC_REG_ARGS];
......
...@@ -158,7 +158,7 @@ const struct bpf_func_proto bpf_get_smp_processor_id_proto = { ...@@ -158,7 +158,7 @@ const struct bpf_func_proto bpf_get_smp_processor_id_proto = {
.func = bpf_get_smp_processor_id, .func = bpf_get_smp_processor_id,
.gpl_only = false, .gpl_only = false,
.ret_type = RET_INTEGER, .ret_type = RET_INTEGER,
.allow_nocsr = true, .allow_fastcall = true,
}; };
BPF_CALL_0(bpf_get_numa_node_id) BPF_CALL_0(bpf_get_numa_node_id)
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment