Introduce temporary PR_MPSYSCTL flag to mark (*pr_sysctl)() handler MP
authormvs <mvs@openbsd.org>
Tue, 16 May 2023 19:36:00 +0000 (19:36 +0000)
committermvs <mvs@openbsd.org>
Tue, 16 May 2023 19:36:00 +0000 (19:36 +0000)
commitdf71082dc8b610585991393266cb6deb2a4bea37
tree182306cd23573ab9702469fcee7c68fbeda0a987
parent062268a7fa922f274ad76278076d8fca835613dc
Introduce temporary PR_MPSYSCTL flag to mark (*pr_sysctl)() handler MP
safe. We have may of them, so use flag instead of pushing kernel lock
within.

Unlock ip_sysctl(). Still take kernel lock within IPCTL_MRTSTATS case.
It looks like `mrtstat' protection is inconsistent, so keep locking as
it was. Since `mrtstat' are counters, it make sense to rework them into
per CPU counters with separate diffs.

Feedback and ok from bluhm@
sys/kern/uipc_domain.c
sys/netinet/in_proto.c
sys/netinet/ip_input.c
sys/sys/protosw.h