mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-23 16:47:49 -04:00
Convert AF_NETLINK's getsockopt implementation to use the new getsockopt_iter callback with sockopt_t. Key changes: - Replace (char __user *optval, int __user *optlen) with sockopt_t *opt - Use opt->optlen for buffer length (input) and returned size (output) - Use copy_to_iter() instead of put_user()/copy_to_user() - For NETLINK_LIST_MEMBERSHIPS: walk the groups bitmap and emit each u32 sequentially via copy_to_iter(), then set opt->optlen to the total size required (ALIGN(BITS_TO_BYTES(ngroups), sizeof(u32))). The wrapper writes opt->optlen back to userspace even on partial failure, preserving the existing API that lets userspace discover the needed allocation size. Signed-off-by: Breno Leitao <leitao@debian.org> Acked-by: Stanislav Fomichev <sdf@fomichev.me> Link: https://patch.msgid.link/20260501-getsock_one-v1-1-810ce23ea70e@debian.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>