On 16 Nov 2022, at 0:17, Christoph Hellwig wrote: > On Mon, Nov 07, 2022 at 09:05:12PM -0800, Jonathan Lemon wrote: >> +struct io_zctap_buf *io_zctap_get_buf(struct io_zctap_ifq *ifq, int refc) >> +{ >> + return NULL; >> +} >> +EXPORT_SYMBOL(io_zctap_get_buf); >> + >> +void io_zctap_put_buf(struct io_zctap_ifq *ifq, struct io_zctap_buf *buf) >> +{ >> +} >> +EXPORT_SYMBOL(io_zctap_put_buf); > > Adding stubs without anything in them is rather pointless. This patch just introduces the API, for easier reviewing (and handling some patch dependencies). Patch 8 adds the initial implementation. > Also why are these exported? I can't find any modular users anywhere. > Even if so, any low-level uring zero copy functionality should be > EXPORT_SYMBOL_GPL, and only added once the modular users show up and > are discussed. I just copied EXPORT_SYMBOL from io_uring.c, and have no preference as to which export variant is used. I was testing against several drivers, which were loadable modules for ease of development. For example, Broadcom’s in-tree bnxt driver does not (currently) have steering support, so testing was against their external driver package while waiting for the features to land upstream. -- Jonathan