Re: [PATCH v2 2/2] x86/cfi,bpf: Fix BPF JIT call
From: Peter Zijlstra <peterz@infradead.org>
Date: 2023-12-08 20:57:25
Also in:
bpf, linux-arch, linux-riscv, lkml, llvm
From: Peter Zijlstra <peterz@infradead.org>
Date: 2023-12-08 20:57:25
Also in:
bpf, linux-arch, linux-riscv, lkml, llvm
On Fri, Dec 08, 2023 at 12:45:51PM -0800, Alexei Starovoitov wrote:
I mean we don't need to store a pointer to a func in stubs.
Can it be, roughly:
extern void bpf_tcp_ca_cong_avoid(struct sock *sk, u32 ack, u32 acked);
KCFI_MACRO(hash_of_cong_avoid, bpf_tcp_ca_cong_avoid);
u32 __array_of_kcfi_hash[] = {hash_of_cong_avoid, hash_of_set_state,...};
.bpf_ops_stubs = __array_of_kcfi_hash,But then how do I index this array? The bpf_ops_stubs thing having the same layout at the target struct made it easy and we could use 'moff' for both. That also remains working if someone adds a member to the struct or moves some members around.