Re: [PATCH bpf-next v7 05/24] bpf/verifier: allow kfunc to return an allocated mem
From: Kumar Kartikeya Dwivedi
Date: Thu Jul 21 2022 - 17:06:44 EST
On Thu, 21 Jul 2022 at 17:38, Benjamin Tissoires
<benjamin.tissoires@xxxxxxxxxx> wrote:
>
> For drivers (outside of network), the incoming data is not statically
> defined in a struct. Most of the time the data buffer is kzalloc-ed
> and thus we can not rely on eBPF and BTF to explore the data.
>
> This commit allows to return an arbitrary memory, previously allocated by
> the driver.
> An interesting extra point is that the kfunc can mark the exported
> memory region as read only or read/write.
>
> So, when a kfunc is not returning a pointer to a struct but to a plain
> type, we can consider it is a valid allocated memory assuming that:
> - one of the arguments is either called rdonly_buf_size or
> rdwr_buf_size
> - and this argument is a const from the caller point of view
>
> We can then use this parameter as the size of the allocated memory.
>
> The memory is either read-only or read-write based on the name
> of the size parameter.
>
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>
>
> ---
Acked-by: Kumar Kartikeya Dwivedi <memxor@xxxxxxxxx>