On 4/18/25 00:15, Mina Almasry wrote:
Later patches in the series adds TX net_iovs where there is no pp associated, so we can't rely on niov->pp->mp_ops to tell what is the type of the net_iov.
That's fine, but that needs a NULL pp check in io_uring as well, specifically in io_zcrx_recv_frag().
You can also move it to struct net_iov_area and check niov->owner->type instead. It's a safer choice than aliasing with struct page, there is no cost as you're loading ->owner anyway (e.g. for net_iov_virtual_addr()), and it's better in terms of normalisation / not unnecessary duplicating it, assuming we'll never have niovs of different types bound to the same struct net_iov_area.