On 5/13/25 08:48, Matt Bobrowski wrote: > On Fri, May 09, 2025 at 09:20:53AM -0700, Alexei Starovoitov wrote: >> On Thu, May 8, 2025 at 2:09 AM Matt Bobrowski <mattbobrowski@xxxxxxxxxx> wrote: >>> >>>> >>>> static int check_mem_reg(struct bpf_verifier_env *env, struct bpf_reg_state *reg, >>>> - u32 regno, u32 mem_size) >>>> + u32 regno, u32 mem_size, bool read_only) >>> >>> Maybe s/read_only/write_mem_access? >> >> 'bool' arguments are not readable at the callsite. >> Let's use enum bpf_access_type BPF_READ|WRITE here >> or introduce another enum ? > > Yes, I agree, and using enum bpf_access_type is also something that > had crossed my mind. I think that's what should be used here in favour > of the boolean. Reusing bpf_access_type feels like the right thing here, however, it is missing an option for read/write access. Should we introduce a new BPF_READ_WRITE enum value? Or assume that BPF_WRITE should also perform the BPF_READ check? Or make this argument an int and pass `BPF_READ | BPF_WRITE`?