The branch main has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=c7f38a2df1f0d15346f4405407d89365f6ae3fe1

commit c7f38a2df1f0d15346f4405407d89365f6ae3fe1
Author:     Konstantin Belousov <k...@freebsd.org>
AuthorDate: 2021-10-19 21:25:19 +0000
Commit:     Konstantin Belousov <k...@freebsd.org>
CommitDate: 2021-10-19 21:25:19 +0000

    procctl: stop using SA_*LOCKED, define local enum
    
    Using SA_*LOCKED constants breaks !INVARIANT builds
    
    Reported by:    cy
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
---
 sys/kern/kern_procctl.c | 62 ++++++++++++++++++++++++++++---------------------
 1 file changed, 36 insertions(+), 26 deletions(-)

diff --git a/sys/kern/kern_procctl.c b/sys/kern/kern_procctl.c
index 00c68359f375..f90c0e146e2b 100644
--- a/sys/kern/kern_procctl.c
+++ b/sys/kern/kern_procctl.c
@@ -705,6 +705,12 @@ pdeathsig_status(struct thread *td, struct proc *p, void 
*data)
        return (0);
 }
 
+enum {
+       PCTL_SLOCKED,
+       PCTL_XLOCKED,
+       PCTL_UNLOCKED,
+};
+
 struct procctl_cmd_info {
        int lock_tree;
        bool one_proc : 1;
@@ -718,136 +724,136 @@ struct procctl_cmd_info {
 };
 static const struct procctl_cmd_info procctl_cmds_info[] = {
        [PROC_SPROTECT] =
-           { .lock_tree = SA_SLOCKED, .one_proc = false,
+           { .lock_tree = PCTL_SLOCKED, .one_proc = false,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = false,
              .copyin_sz = sizeof(int), .copyout_sz = 0,
              .exec = protect_set, .copyout_on_error = false, },
        [PROC_REAP_ACQUIRE] =
-           { .lock_tree = SA_XLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_XLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = true,
              .need_candebug = false,
              .copyin_sz = 0, .copyout_sz = 0,
              .exec = reap_acquire, .copyout_on_error = false, },
        [PROC_REAP_RELEASE] =
-           { .lock_tree = SA_XLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_XLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = true,
              .need_candebug = false,
              .copyin_sz = 0, .copyout_sz = 0,
              .exec = reap_release, .copyout_on_error = false, },
        [PROC_REAP_STATUS] =
-           { .lock_tree = SA_SLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_SLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = false,
              .copyin_sz = 0,
              .copyout_sz = sizeof(struct procctl_reaper_status),
              .exec = reap_status, .copyout_on_error = false, },
        [PROC_REAP_GETPIDS] =
-           { .lock_tree = SA_SLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_SLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = false,
              .copyin_sz = sizeof(struct procctl_reaper_pids),
              .copyout_sz = 0,
              .exec = reap_getpids, .copyout_on_error = false, },
        [PROC_REAP_KILL] =
-           { .lock_tree = SA_SLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_SLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = false,
              .copyin_sz = sizeof(struct procctl_reaper_kill),
              .copyout_sz = sizeof(struct procctl_reaper_kill),
              .exec = reap_kill, .copyout_on_error = true, },
        [PROC_TRACE_CTL] =
-           { .lock_tree = SA_SLOCKED, .one_proc = false,
+           { .lock_tree = PCTL_SLOCKED, .one_proc = false,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = true,
              .copyin_sz = sizeof(int), .copyout_sz = 0,
              .exec = trace_ctl, .copyout_on_error = false, },
        [PROC_TRACE_STATUS] =
-           { .lock_tree = SA_UNLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_UNLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = false,
              .copyin_sz = 0, .copyout_sz = sizeof(int),
              .exec = trace_status, .copyout_on_error = false, },
        [PROC_TRAPCAP_CTL] =
-           { .lock_tree = SA_SLOCKED, .one_proc = false,
+           { .lock_tree = PCTL_SLOCKED, .one_proc = false,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = true,
              .copyin_sz = sizeof(int), .copyout_sz = 0,
              .exec = trapcap_ctl, .copyout_on_error = false, },
        [PROC_TRAPCAP_STATUS] =
-           { .lock_tree = SA_UNLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_UNLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = false,
              .copyin_sz = 0, .copyout_sz = sizeof(int),
              .exec = trapcap_status, .copyout_on_error = false, },
        [PROC_PDEATHSIG_CTL] =
-           { .lock_tree = SA_UNLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_UNLOCKED, .one_proc = true,
              .esrch_is_einval = true, .no_nonnull_data = false,
              .need_candebug = false,
              .copyin_sz = sizeof(int), .copyout_sz = 0,
              .exec = pdeathsig_ctl, .copyout_on_error = false, },
        [PROC_PDEATHSIG_STATUS] =
-           { .lock_tree = SA_UNLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_UNLOCKED, .one_proc = true,
              .esrch_is_einval = true, .no_nonnull_data = false,
              .need_candebug = false,
              .copyin_sz = 0, .copyout_sz = sizeof(int),
              .exec = pdeathsig_status, .copyout_on_error = false, },
        [PROC_ASLR_CTL] =
-           { .lock_tree = SA_UNLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_UNLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = true,
              .copyin_sz = sizeof(int), .copyout_sz = 0,
              .exec = aslr_ctl, .copyout_on_error = false, },
        [PROC_ASLR_STATUS] =
-           { .lock_tree = SA_UNLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_UNLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = false,
              .copyin_sz = 0, .copyout_sz = sizeof(int),
              .exec = aslr_status, .copyout_on_error = false, },
        [PROC_PROTMAX_CTL] =
-           { .lock_tree = SA_UNLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_UNLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = true,
              .copyin_sz = sizeof(int), .copyout_sz = 0,
              .exec = protmax_ctl, .copyout_on_error = false, },
        [PROC_PROTMAX_STATUS] =
-           { .lock_tree = SA_UNLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_UNLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = false,
              .copyin_sz = 0, .copyout_sz = sizeof(int),
              .exec = protmax_status, .copyout_on_error = false, },
        [PROC_STACKGAP_CTL] =
-           { .lock_tree = SA_UNLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_UNLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = true,
              .copyin_sz = sizeof(int), .copyout_sz = 0,
              .exec = stackgap_ctl, .copyout_on_error = false, },
        [PROC_STACKGAP_STATUS] =
-           { .lock_tree = SA_UNLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_UNLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = false,
              .copyin_sz = 0, .copyout_sz = sizeof(int),
              .exec = stackgap_status, .copyout_on_error = false, },
        [PROC_NO_NEW_PRIVS_CTL] =
-           { .lock_tree = SA_SLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_SLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = true,
              .copyin_sz = sizeof(int), .copyout_sz = 0,
              .exec = no_new_privs_ctl, .copyout_on_error = false, },
        [PROC_NO_NEW_PRIVS_STATUS] =
-           { .lock_tree = SA_UNLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_UNLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = false,
              .copyin_sz = 0, .copyout_sz = sizeof(int),
              .exec = no_new_privs_status, .copyout_on_error = false, },
        [PROC_WXMAP_CTL] =
-           { .lock_tree = SA_UNLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_UNLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = true,
              .copyin_sz = sizeof(int), .copyout_sz = 0,
              .exec = wxmap_ctl, .copyout_on_error = false, },
        [PROC_WXMAP_STATUS] =
-           { .lock_tree = SA_UNLOCKED, .one_proc = true,
+           { .lock_tree = PCTL_UNLOCKED, .one_proc = true,
              .esrch_is_einval = false, .no_nonnull_data = false,
              .need_candebug = false,
              .copyin_sz = 0, .copyout_sz = sizeof(int),
@@ -915,12 +921,14 @@ kern_procctl(struct thread *td, idtype_t idtype, id_t id, 
int com, void *data)
                return (EINVAL);
 
        switch (cmd_info->lock_tree) {
-       case SA_XLOCKED:
+       case PCTL_XLOCKED:
                sx_xlock(&proctree_lock);
                break;
-       case SA_SLOCKED:
+       case PCTL_SLOCKED:
                sx_slock(&proctree_lock);
                break;
+       default:
+               break;
        }
 
        switch (idtype) {
@@ -991,12 +999,14 @@ kern_procctl(struct thread *td, idtype_t idtype, id_t id, 
int com, void *data)
        }
 
        switch (cmd_info->lock_tree) {
-       case SA_XLOCKED:
+       case PCTL_XLOCKED:
                sx_xunlock(&proctree_lock);
                break;
-       case SA_SLOCKED:
+       case PCTL_SLOCKED:
                sx_sunlock(&proctree_lock);
                break;
+       default:
+               break;
        }
        return (error);
 }

Reply via email to