This patchset adds support for SOL_SOCKET level getsockopt and setsockopt in io_uring, using the command op. SOL_SOCKET seems to be the most common level parameter for get/setsockopt(2). This implementation benefits from the work done to leverage sockptr_t in SOL_SOCKET path. For getsockopt command, the optlen field is not a userspace pointers, but an absolute value, so this is slightly different from getsockopt(2) behaviour. The updated value is returned in cqe->res. If this approach is good enough, I am planning to extend the support for those "levels" that have already implemented sockptr_t support This patch was tested with a new test[1] in liburing. This patch depends on "io_uring: Add io_uring command support for sockets"[2] [1] Link: https://github.com/leitao/liburing/blob/getsock/test/socket-getsetsock-cmd.c [2] Link: https://lore.kernel.org/all/20230627134424.2784797-1-leitao@xxxxxxxxxx/ Breno Leitao (3): net: expose sock_use_custom_sol_socket io_uring/cmd: Add support for getsockopt command io_uring/cmd: Add support for set_sockopt include/linux/net.h | 5 ++++ include/uapi/linux/io_uring.h | 8 ++++++ io_uring/uring_cmd.c | 51 +++++++++++++++++++++++++++++++++++ net/socket.c | 5 ---- 4 files changed, 64 insertions(+), 5 deletions(-) -- 2.34.1