]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
can: raw: convert to getsockopt_iter
authorBreno Leitao <leitao@debian.org>
Wed, 8 Apr 2026 10:30:32 +0000 (03:30 -0700)
committerJakub Kicinski <kuba@kernel.org>
Mon, 13 Apr 2026 21:56:29 +0000 (14:56 -0700)
commit5b75e7d6769557fbee2ae46181deaff0c98ca795
treef4f61b82c8af8270232cc38c1fc706897748728b
parent9c99d62705692db7fc8b8921efa0db189e84e694
can: raw: convert to getsockopt_iter

Convert CAN raw socket'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 copy_to_user()
- For CAN_RAW_FILTER and CAN_RAW_XL_VCID_OPTS: on -ERANGE, set
  opt->optlen to the required buffer size. The wrapper writes this
  back to userspace even on error, 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/20260408-getsockopt-v3-4-061bb9cb355d@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/can/raw.c