Push kernel lock down to net_sysctl().
authormvs <mvs@openbsd.org>
Wed, 14 Aug 2024 17:52:47 +0000 (17:52 +0000)
committermvs <mvs@openbsd.org>
Wed, 14 Aug 2024 17:52:47 +0000 (17:52 +0000)
commit7af15f03dac24b2518f4ed336f8e8cd00d70cef5
treee8c243b56d77ace0f736cb79c21f4b00de109102
parent03650efb1a649d1ea282e2b85a6314e369f55d3d
Push kernel lock down to net_sysctl().

All except PF_MPLS paths are mp-safe:
- net_link_sysctl() and following net_ifiq_sysctl() only return
  EOPNOTSUPP;
- uipc_sysctl() - mp-safe atomic access to integers;
- bpf_sysctl() - mp-safe atomic access to integers;
- pflow_sysctl() - returns statistics from per-CPU counters;
- pipex_sysctl() - mp-safe atomic access to integer;

Push kernel lock down to mpls_sysctl(). sysctl_int_bounded() do copying
with local variable, so context switch is safe. No need to wire memory
or take `sysctl_lock' rwlock(9).

Keep protocols locked as they was include pages wiring. Copying will not
sleep - no network slowdown while doing it with net lock held.

ok bluhm
sys/kern/kern_sysctl.c
sys/kern/uipc_domain.c
sys/netmpls/mpls_raw.c