svn commit: r368053 - head/lib/libsysdecode
Author: kaktus Date: Thu Nov 26 09:07:45 2020 New Revision: 368053 URL: https://svnweb.freebsd.org/changeset/base/368053 Log: libsysdecode: account for invalid protection flags Reported by: jhb MFC with: r368022 Modified: head/lib/libsysdecode/flags.c Modified: head/lib/libsysdecode/flags.c == --- head/lib/libsysdecode/flags.c Thu Nov 26 07:34:20 2020 (r368052) +++ head/lib/libsysdecode/flags.c Thu Nov 26 09:07:45 2020 (r368053) @@ -662,7 +662,7 @@ sysdecode_mmap_prot(FILE *fp, int prot, int *rem) printed = false; protm = PROT_MAX_EXTRACT(prot); - prot = PROT_EXTRACT(prot); + prot &= ~PROT_MAX(protm); if (protm != 0) { fputs("PROT_MAX(", fp); printed = print_mask_int(fp, mmapprot, protm, rem); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r368022 - head/lib/libsysdecode
Author: kaktus Date: Wed Nov 25 16:30:57 2020 New Revision: 368022 URL: https://svnweb.freebsd.org/changeset/base/368022 Log: libsysdecode: correctly decode mmap flags r352913 added decoding of mmap PROT_MAX()'d flags but didn’t account for the case where different values were specified for PROT_MAX and regular flags. Fix it. Submitted by: sigsys_gmail.com Reported by: sigsys_gmail.com MFC after:7 days Differential Revision:https://reviews.freebsd.org/D27312 Modified: head/lib/libsysdecode/flags.c Modified: head/lib/libsysdecode/flags.c == --- head/lib/libsysdecode/flags.c Wed Nov 25 15:45:20 2020 (r368021) +++ head/lib/libsysdecode/flags.c Wed Nov 25 16:30:57 2020 (r368022) @@ -662,11 +662,11 @@ sysdecode_mmap_prot(FILE *fp, int prot, int *rem) printed = false; protm = PROT_MAX_EXTRACT(prot); + prot = PROT_EXTRACT(prot); if (protm != 0) { fputs("PROT_MAX(", fp); printed = print_mask_int(fp, mmapprot, protm, rem); fputs(")|", fp); - prot = protm; } return (print_mask_int(fp, mmapprot, prot, rem) || printed); } ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r366537 - head/libexec/rc/rc.d
Author: kaktus Date: Thu Oct 8 11:45:10 2020 New Revision: 366537 URL: https://svnweb.freebsd.org/changeset/base/366537 Log: [pf] /etc/rc.d/pf should REQUIRE routing When a system with pf_enable="YES" in /etc/rc.conf uses hostnames in /etc/pf.conf, these hostnames cannot be resolved via external nameservers because the default route is not yet set. This results in an empty (all open) ruleset. Since r195026 already put netif back to REQUIRE, this change does not affect the issue that the firewall should rather have been setup before any network traffic can occur. PR: 211928 Submitted by: Robert Schulze Reported by: Robert Schulze Tested by:Mateusz Kwiatkowski No objections from: kp MFC after:3 days Modified: head/libexec/rc/rc.d/pf Modified: head/libexec/rc/rc.d/pf == --- head/libexec/rc/rc.d/pf Thu Oct 8 11:30:22 2020(r366536) +++ head/libexec/rc/rc.d/pf Thu Oct 8 11:45:10 2020(r366537) @@ -4,8 +4,7 @@ # # PROVIDE: pf -# REQUIRE: FILESYSTEMS netif pflog pfsync -# BEFORE: routing +# REQUIRE: FILESYSTEMS netif pflog pfsync routing # KEYWORD: nojailvnet . /etc/rc.subr ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r364150 - stable/12/lib/libc/gen
Author: kaktus Date: Wed Aug 12 10:03:10 2020 New Revision: 364150 URL: https://svnweb.freebsd.org/changeset/base/364150 Log: MFC userland part of r351729 Add sysctlbyname system call Modified: stable/12/lib/libc/gen/Symbol.map stable/12/lib/libc/gen/sysctlbyname.c Modified: stable/12/lib/libc/gen/Symbol.map == --- stable/12/lib/libc/gen/Symbol.map Wed Aug 12 09:57:28 2020 (r364149) +++ stable/12/lib/libc/gen/Symbol.map Wed Aug 12 10:03:10 2020 (r364150) @@ -423,6 +423,7 @@ FBSD_1.5 { }; FBSD_1.6 { + __sysctlbyname; memalign; sigandset; sigisemptyset; Modified: stable/12/lib/libc/gen/sysctlbyname.c == --- stable/12/lib/libc/gen/sysctlbyname.c Wed Aug 12 09:57:28 2020 (r364149) +++ stable/12/lib/libc/gen/sysctlbyname.c Wed Aug 12 10:03:10 2020 (r364150) @@ -1,28 +1,59 @@ -/* - * - * "THE BEER-WARE LICENSE" (Revision 42): - * wrote this file. As long as you retain this notice you - * can do whatever you want with this stuff. If we meet some day, and you think - * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp - * +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright 2019 Pawel Biernacki, Mysterious Code Ltd. * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ #include __FBSDID("$FreeBSD$"); -#include +#include #include +#include +#include "libc_private.h" + +#defineSYSCTLBYNAME_OSREL 1201522 + +extern int __sysctlbyname(const char *name, size_t namelen, void *oldp, +size_t *oldlenp, const void *newp, size_t newlen); + int sysctlbyname(const char *name, void *oldp, size_t *oldlenp, const void *newp, size_t newlen) { - int real_oid[CTL_MAXNAME+2]; - size_t oidlen; + int oid[CTL_MAXNAME]; + size_t len; - oidlen = sizeof(real_oid) / sizeof(int); - if (sysctlnametomib(name, real_oid, &oidlen) < 0) + if (__getosreldate() >= SYSCTLBYNAME_OSREL) { + len = strlen(name); + return (__sysctlbyname(name, len, oldp, oldlenp, newp, + newlen)); + } + len = nitems(oid); + if (sysctlnametomib(name, oid, &len) == -1) return (-1); - return (sysctl(real_oid, oidlen, oldp, oldlenp, newp, newlen)); + return (sysctl(oid, len, oldp, oldlenp, newp, newlen)); } ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r363833 - in stable/12/sys: compat/freebsd32 kern sys
Author: kaktus Date: Tue Aug 4 12:44:47 2020 New Revision: 363833 URL: https://svnweb.freebsd.org/changeset/base/363833 Log: regen Modified: stable/12/sys/compat/freebsd32/freebsd32_proto.h stable/12/sys/compat/freebsd32/freebsd32_syscall.h stable/12/sys/compat/freebsd32/freebsd32_syscalls.c stable/12/sys/compat/freebsd32/freebsd32_sysent.c stable/12/sys/compat/freebsd32/freebsd32_systrace_args.c stable/12/sys/kern/init_sysent.c stable/12/sys/kern/syscalls.c stable/12/sys/kern/systrace_args.c stable/12/sys/sys/syscall.h stable/12/sys/sys/sysproto.h Modified: stable/12/sys/compat/freebsd32/freebsd32_proto.h == --- stable/12/sys/compat/freebsd32/freebsd32_proto.hTue Aug 4 12:42:55 2020(r363832) +++ stable/12/sys/compat/freebsd32/freebsd32_proto.hTue Aug 4 12:44:47 2020(r363833) @@ -728,6 +728,14 @@ struct freebsd32_cpuset_setdomain_args { char mask_l_[PADL_(domainset_t *)]; domainset_t * mask; char mask_r_[PADR_(domainset_t *)]; char policy_l_[PADL_(int)]; int policy; char policy_r_[PADR_(int)]; }; +struct freebsd32___sysctlbyname_args { + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; + char namelen_l_[PADL_(size_t)]; size_t namelen; char namelen_r_[PADR_(size_t)]; + char old_l_[PADL_(void *)]; void * old; char old_r_[PADR_(void *)]; + char oldlenp_l_[PADL_(uint32_t *)]; uint32_t * oldlenp; char oldlenp_r_[PADR_(uint32_t *)]; + char new_l_[PADL_(void *)]; void * new; char new_r_[PADR_(void *)]; + char newlen_l_[PADL_(size_t)]; size_t newlen; char newlen_r_[PADR_(size_t)]; +}; #if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__)) #define PAD64_REQUIRED #endif @@ -865,6 +873,7 @@ int freebsd32_mknodat(struct thread *, struct freebsd3 intfreebsd32_kevent(struct thread *, struct freebsd32_kevent_args *); intfreebsd32_cpuset_getdomain(struct thread *, struct freebsd32_cpuset_getdomain_args *); intfreebsd32_cpuset_setdomain(struct thread *, struct freebsd32_cpuset_setdomain_args *); +intfreebsd32___sysctlbyname(struct thread *, struct freebsd32___sysctlbyname_args *); #ifdef COMPAT_43 @@ -1419,6 +1428,7 @@ int freebsd11_freebsd32_fstatat(struct thread *, struc #defineFREEBSD32_SYS_AUE_freebsd32_kevent AUE_KEVENT #defineFREEBSD32_SYS_AUE_freebsd32_cpuset_getdomainAUE_NULL #defineFREEBSD32_SYS_AUE_freebsd32_cpuset_setdomainAUE_NULL +#defineFREEBSD32_SYS_AUE_freebsd32___sysctlbyname AUE_SYSCTL #undef PAD_ #undef PADL_ Modified: stable/12/sys/compat/freebsd32/freebsd32_syscall.h == --- stable/12/sys/compat/freebsd32/freebsd32_syscall.h Tue Aug 4 12:42:55 2020(r363832) +++ stable/12/sys/compat/freebsd32/freebsd32_syscall.h Tue Aug 4 12:44:47 2020(r363833) @@ -494,4 +494,5 @@ #defineFREEBSD32_SYS_fhlink565 #defineFREEBSD32_SYS_fhlinkat 566 #defineFREEBSD32_SYS_fhreadlink567 -#defineFREEBSD32_SYS_MAXSYSCALL568 +#defineFREEBSD32_SYS_freebsd32___sysctlbyname 570 +#defineFREEBSD32_SYS_MAXSYSCALL571 Modified: stable/12/sys/compat/freebsd32/freebsd32_syscalls.c == --- stable/12/sys/compat/freebsd32/freebsd32_syscalls.c Tue Aug 4 12:42:55 2020(r363832) +++ stable/12/sys/compat/freebsd32/freebsd32_syscalls.c Tue Aug 4 12:44:47 2020(r363833) @@ -604,4 +604,7 @@ const char *freebsd32_syscallnames[] = { "fhlink", /* 565 = fhlink */ "fhlinkat", /* 566 = fhlinkat */ "fhreadlink", /* 567 = fhreadlink */ + "#568", /* 568 = funlinkat */ + "#569", /* 569 = copy_file_range */ + "freebsd32___sysctlbyname", /* 570 = freebsd32___sysctlbyname */ }; Modified: stable/12/sys/compat/freebsd32/freebsd32_sysent.c == --- stable/12/sys/compat/freebsd32/freebsd32_sysent.c Tue Aug 4 12:42:55 2020(r363832) +++ stable/12/sys/compat/freebsd32/freebsd32_sysent.c Tue Aug 4 12:44:47 2020(r363833) @@ -651,4 +651,7 @@ struct sysent freebsd32_sysent[] = { { AS(fhlink_args), (sy_call_t *)sys_fhlink, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 565 = fhlink */ { AS(fhlinkat_args), (sy_call_t *)sys_fhlinkat, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 566 = fhlinkat */ { AS(fhreadlink_args), (sy_call_t *)sys_fhreadlink, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 567 = fhreadlink */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },
svn commit: r363832 - in stable/12/sys: compat/freebsd32 kern sys
Author: kaktus Date: Tue Aug 4 12:42:55 2020 New Revision: 363832 URL: https://svnweb.freebsd.org/changeset/base/363832 Log: MFC kernel part of r351729 Add sysctlbyname system call The two syscalls that exists in head but not in stable/12 are marked as UNIMPL to keep the __sysctlbyname syscall number the same (570). Userland part to be commited in about a week time. Requested by: mjg Discussed with: kib Modified: stable/12/sys/compat/freebsd32/freebsd32_misc.c stable/12/sys/compat/freebsd32/syscalls.master stable/12/sys/kern/capabilities.conf stable/12/sys/kern/kern_sysctl.c stable/12/sys/kern/syscalls.master stable/12/sys/sys/param.h stable/12/sys/sys/syscall.mk stable/12/sys/sys/sysctl.h Modified: stable/12/sys/compat/freebsd32/freebsd32_misc.c == --- stable/12/sys/compat/freebsd32/freebsd32_misc.c Tue Aug 4 12:04:47 2020(r363831) +++ stable/12/sys/compat/freebsd32/freebsd32_misc.c Tue Aug 4 12:42:55 2020(r363832) @@ -2279,6 +2279,32 @@ freebsd32___sysctl(struct thread *td, struct freebsd32 } int +freebsd32___sysctlbyname(struct thread *td, +struct freebsd32___sysctlbyname_args *uap) +{ + size_t oldlen, rv; + int error; + uint32_t tmp; + + if (uap->oldlenp != NULL) { + error = fueword32(uap->oldlenp, &tmp); + oldlen = tmp; + } else { + error = oldlen = 0; + } + if (error != 0) + return (EFAULT); + error = kern___sysctlbyname(td, uap->name, uap->namelen, uap->old, + &oldlen, uap->new, uap->newlen, &rv, SCTL_MASK32, 1); + if (error != 0) + return (error); + if (uap->oldlenp != NULL) + error = suword32(uap->oldlenp, rv); + + return (error); +} + +int freebsd32_jail(struct thread *td, struct freebsd32_jail_args *uap) { uint32_t version; Modified: stable/12/sys/compat/freebsd32/syscalls.master == --- stable/12/sys/compat/freebsd32/syscalls.master Tue Aug 4 12:04:47 2020(r363831) +++ stable/12/sys/compat/freebsd32/syscalls.master Tue Aug 4 12:42:55 2020(r363832) @@ -1127,5 +1127,10 @@ const char *to); } 567AUE_NULLNOPROTO { int fhreadlink( struct fhandle *fhp, char *buf, \ size_t bufsize); } +568AUE_NULLUNIMPL funlinkat +569AUE_NULLUNIMPL copy_file_range +570AUE_SYSCTL STD { int freebsd32___sysctlbyname(const char *name, \ + size_t namelen, void *old, uint32_t *oldlenp, \ + void *new, size_t newlen); } ; vim: syntax=off Modified: stable/12/sys/kern/capabilities.conf == --- stable/12/sys/kern/capabilities.confTue Aug 4 12:04:47 2020 (r363831) +++ stable/12/sys/kern/capabilities.confTue Aug 4 12:42:55 2020 (r363832) @@ -63,6 +63,7 @@ __mac_set_proc ## proxying daemon in userspace. ## __sysctl +__sysctlbyname ## ## Allow umtx operations as these are scoped by address space. Modified: stable/12/sys/kern/kern_sysctl.c == --- stable/12/sys/kern/kern_sysctl.cTue Aug 4 12:04:47 2020 (r363831) +++ stable/12/sys/kern/kern_sysctl.cTue Aug 4 12:42:55 2020 (r363832) @@ -2102,6 +2102,68 @@ sys___sysctl(struct thread *td, struct sysctl_args *ua return (error); } +int +kern___sysctlbyname(struct thread *td, const char *oname, size_t namelen, +void *old, size_t *oldlenp, void *new, size_t newlen, size_t *retval, +int flags, bool inkernel) +{ + int oid[CTL_MAXNAME]; + char namebuf[16]; + char *name; + size_t oidlen; + int error; + + if (namelen > MAXPATHLEN || namelen == 0) + return (EINVAL); + name = namebuf; + if (namelen > sizeof(namebuf)) + name = malloc(namelen, M_SYSCTL, M_WAITOK); + error = copyin(oname, name, namelen); + if (error != 0) + goto out; + + oid[0] = CTL_SYSCTL; + oid[1] = CTL_SYSCTL_NAME2OID; + oidlen = sizeof(oid); + error = kernel_sysctl(td, oid, 2, oid, &oidlen, (void *)name, namelen, + retval, flags); + if (error != 0) + goto out; + error = userland_sysctl(td, oid, *retval / sizeof(int), old, oldlenp, + inkernel, new, newlen, retval, flags); + +out: + if (namelen > sizeof(namebuf)) + free(name, M_SYSCTL); + return (error); +} + +#ifndef_SYS_SYSPROTO_H_ +struct __sysctlbyname_args { + const char *name; + size_t namelen; +
svn commit: r363326 - stable/12/usr.bin/truss
Author: kaktus Date: Sun Jul 19 15:16:57 2020 New Revision: 363326 URL: https://svnweb.freebsd.org/changeset/base/363326 Log: MFC r362947 truss: print more information about traced sysctls Modified: stable/12/usr.bin/truss/syscalls.c Modified: stable/12/usr.bin/truss/syscalls.c == --- stable/12/usr.bin/truss/syscalls.c Sun Jul 19 15:16:27 2020 (r363325) +++ stable/12/usr.bin/truss/syscalls.c Sun Jul 19 15:16:57 2020 (r363326) @@ -1558,14 +1558,37 @@ print_cmsgs(FILE *fp, pid_t pid, bool receive, struct } static void -print_sysctl_oid(FILE *fp, int *oid, int len) +print_sysctl_oid(FILE *fp, int *oid, size_t len) { - int i; + size_t i; + bool first; - for (i = 0; i < len; i++) - fprintf(fp, ".%d", oid[i]); + first = true; + fprintf(fp, "{ "); + for (i = 0; i < len; i++) { + fprintf(fp, "%s%d", first ? "" : ".", oid[i]); + first = false; + } + fprintf(fp, " }"); } +static void +print_sysctl(FILE *fp, int *oid, size_t len) +{ + char name[BUFSIZ]; + int qoid[CTL_MAXNAME + 2]; + size_t i; + + qoid[0] = CTL_SYSCTL; + qoid[1] = CTL_SYSCTL_NAME; + memcpy(qoid + 2, oid, len * sizeof(int)); + i = sizeof(name); + if (sysctl(qoid, len + 2, name, &i, 0, 0) == -1) + print_sysctl_oid(fp, oid, len); + else + fprintf(fp, "%s", name); +} + /* * Converts a syscall argument into a string. Said string is * allocated via malloc(), so needs to be free()'d. sc is @@ -2277,9 +2300,8 @@ print_arg(struct syscall_args *sc, unsigned long *args break; case Sysctl: { char name[BUFSIZ]; - int oid[CTL_MAXNAME + 2], qoid[CTL_MAXNAME + 2]; - size_t i; - int len; + int oid[CTL_MAXNAME + 2]; + size_t len; memset(name, 0, sizeof(name)); len = args[sc->offset + 1]; @@ -2293,39 +2315,35 @@ print_arg(struct syscall_args *sc, unsigned long *args fprintf(fp, "debug"); break; case CTL_SYSCTL_NAME: - fprintf(fp, "name"); + fprintf(fp, "name "); print_sysctl_oid(fp, oid + 2, len - 2); break; case CTL_SYSCTL_NEXT: fprintf(fp, "next"); break; case CTL_SYSCTL_NAME2OID: - fprintf(fp, "name2oid"); + fprintf(fp, "name2oid %s", + get_string(pid, + (void *)args[sc->offset + 4], + args[sc->offset + 5])); break; case CTL_SYSCTL_OIDFMT: - fprintf(fp, "oidfmt"); - print_sysctl_oid(fp, oid + 2, len - 2); + fprintf(fp, "oidfmt "); + print_sysctl(fp, oid + 2, len - 2); break; case CTL_SYSCTL_OIDDESCR: - fprintf(fp, "oiddescr"); - print_sysctl_oid(fp, oid + 2, len - 2); + fprintf(fp, "oiddescr "); + print_sysctl(fp, oid + 2, len - 2); break; case CTL_SYSCTL_OIDLABEL: - fprintf(fp, "oidlabel"); - print_sysctl_oid(fp, oid + 2, len - 2); + fprintf(fp, "oidlabel "); + print_sysctl(fp, oid + 2, len - 2); break; default: - print_sysctl_oid(fp, oid + 1, len - 1); + print_sysctl(fp, oid + 1, len - 1); } } else { - qoid[0] = CTL_SYSCTL; - qoid[1] = CTL_SYSCTL_NAME; - memcpy(qoid + 2, oid, len * sizeof(int)); - i = sizeof(name); - if (sysctl(qoid, len + 2, name, &i, 0, 0) == -1) - print_
svn commit: r363059 - stable/11/usr.sbin/bhyve
Author: kaktus Date: Thu Jul 9 20:55:18 2020 New Revision: 363059 URL: https://svnweb.freebsd.org/changeset/base/363059 Log: MFC r362612 bhyve: allow for automatic destruction on power-off Modified: stable/11/usr.sbin/bhyve/bhyve.8 stable/11/usr.sbin/bhyve/bhyverun.c Modified: stable/11/usr.sbin/bhyve/bhyve.8 == --- stable/11/usr.sbin/bhyve/bhyve.8Thu Jul 9 20:54:16 2020 (r363058) +++ stable/11/usr.sbin/bhyve/bhyve.8Thu Jul 9 20:55:18 2020 (r363059) @@ -112,6 +112,8 @@ If a is specified more than once the last one has precedence. .It Fl C Include guest memory in core file. +.It Fl D +Destroy the VM on guest initiated power-off. .It Fl e Force .Nm Modified: stable/11/usr.sbin/bhyve/bhyverun.c == --- stable/11/usr.sbin/bhyve/bhyverun.c Thu Jul 9 20:54:16 2020 (r363058) +++ stable/11/usr.sbin/bhyve/bhyverun.c Thu Jul 9 20:55:18 2020 (r363059) @@ -171,6 +171,7 @@ char *guest_uuid_str; static int guest_vmexit_on_hlt, guest_vmexit_on_pause; static int virtio_msix = 1; static int x2apic_mode = 0;/* default is xAPIC */ +static int destroy_on_poweroff = 0; static int strictio; static int strictmsr = 1; @@ -210,7 +211,7 @@ usage(int code) { fprintf(stderr, - "Usage: %s [-abehuwxACHPSWY]\n" + "Usage: %s [-abehuwxACDHPSWY]\n" " %*s [-c [[cpus=]numcpus][,sockets=n][,cores=n][,threads=n]]\n" " %*s [-g ] [-l ]\n" " %*s [-m mem] [-p vcpu:hostcpu] [-s ] [-U uuid] \n" @@ -218,6 +219,7 @@ usage(int code) " -A: create ACPI tables\n" " -c: number of cpus and/or topology specification\n" " -C: include guest memory in core file\n" + " -D: destroy on power-off\n" " -e: exit on unhandled I/O access\n" " -g: gdb port\n" " -h: help\n" @@ -788,6 +790,8 @@ vmexit_suspend(struct vmctx *ctx, struct vm_exit *vmex case VM_SUSPEND_RESET: exit(0); case VM_SUSPEND_POWEROFF: + if (destroy_on_poweroff) + vm_destroy(ctx); exit(1); case VM_SUSPEND_HALT: exit(2); @@ -1021,7 +1025,7 @@ main(int argc, char *argv[]) rtc_localtime = 1; memflags = 0; - optstr = "abehuwxACHIPSWYp:g:c:s:m:l:U:"; + optstr = "abehuwxACDHIPSWYp:g:c:s:m:l:U:"; while ((c = getopt(argc, argv, optstr)) != -1) { switch (c) { case 'a': @@ -1032,6 +1036,9 @@ main(int argc, char *argv[]) break; case 'b': bvmcons = 1; + break; + case 'D': + destroy_on_poweroff = 1; break; case 'p': if (pincpu_parse(optarg) != 0) { ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r363058 - stable/12/usr.sbin/bhyve
Author: kaktus Date: Thu Jul 9 20:54:16 2020 New Revision: 363058 URL: https://svnweb.freebsd.org/changeset/base/363058 Log: MFC r362612 bhyve: allow for automatic destruction on power-off Modified: stable/12/usr.sbin/bhyve/bhyve.8 stable/12/usr.sbin/bhyve/bhyverun.c Modified: stable/12/usr.sbin/bhyve/bhyve.8 == --- stable/12/usr.sbin/bhyve/bhyve.8Thu Jul 9 20:53:56 2020 (r363057) +++ stable/12/usr.sbin/bhyve/bhyve.8Thu Jul 9 20:54:16 2020 (r363058) @@ -113,6 +113,8 @@ If a is specified more than once the last one has precedence. .It Fl C Include guest memory in core file. +.It Fl D +Destroy the VM on guest initiated power-off. .It Fl e Force .Nm Modified: stable/12/usr.sbin/bhyve/bhyverun.c == --- stable/12/usr.sbin/bhyve/bhyverun.c Thu Jul 9 20:53:56 2020 (r363057) +++ stable/12/usr.sbin/bhyve/bhyverun.c Thu Jul 9 20:54:16 2020 (r363058) @@ -173,6 +173,7 @@ static int gdb_port = 0; static int guest_vmexit_on_hlt, guest_vmexit_on_pause; static int virtio_msix = 1; static int x2apic_mode = 0;/* default is xAPIC */ +static int destroy_on_poweroff = 0; static int strictio; static int strictmsr = 1; @@ -212,7 +213,7 @@ usage(int code) { fprintf(stderr, - "Usage: %s [-abehuwxACHPSWY]\n" + "Usage: %s [-abehuwxACDHPSWY]\n" " %*s [-c [[cpus=]numcpus][,sockets=n][,cores=n][,threads=n]]\n" " %*s [-g ] [-l ]\n" " %*s [-m mem] [-p vcpu:hostcpu] [-s ] [-U uuid] \n" @@ -220,6 +221,7 @@ usage(int code) " -A: create ACPI tables\n" " -c: number of cpus and/or topology specification\n" " -C: include guest memory in core file\n" + " -D: destroy on power-off\n" " -e: exit on unhandled I/O access\n" " -g: gdb port\n" " -h: help\n" @@ -761,6 +763,8 @@ vmexit_suspend(struct vmctx *ctx, struct vm_exit *vmex case VM_SUSPEND_RESET: exit(0); case VM_SUSPEND_POWEROFF: + if (destroy_on_poweroff) + vm_destroy(ctx); exit(1); case VM_SUSPEND_HALT: exit(2); @@ -1021,7 +1025,7 @@ main(int argc, char *argv[]) rtc_localtime = 1; memflags = 0; - optstr = "abehuwxACHIPSWYp:g:G:c:s:m:l:U:"; + optstr = "abehuwxACDHIPSWYp:g:G:c:s:m:l:U:"; while ((c = getopt(argc, argv, optstr)) != -1) { switch (c) { case 'a': @@ -1032,6 +1036,9 @@ main(int argc, char *argv[]) break; case 'b': bvmcons = 1; + break; + case 'D': + destroy_on_poweroff = 1; break; case 'p': if (pincpu_parse(optarg) != 0) { ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r362969 - head/sys/kern
Author: kaktus Date: Mon Jul 6 16:34:15 2020 New Revision: 362969 URL: https://svnweb.freebsd.org/changeset/base/362969 Log: kern.tty_info_kstacks: set compact format as default Modified: head/sys/kern/tty_info.c Modified: head/sys/kern/tty_info.c == --- head/sys/kern/tty_info.cMon Jul 6 16:34:09 2020(r362968) +++ head/sys/kern/tty_info.cMon Jul 6 16:34:15 2020(r362969) @@ -239,7 +239,7 @@ sbuf_tty_drain(void *a, const char *d, int len) } #ifdef STACK -static int tty_info_kstacks = STACK_SBUF_FMT_LONG; +static int tty_info_kstacks = STACK_SBUF_FMT_COMPACT; static int sysctl_tty_info_kstacks(SYSCTL_HANDLER_ARGS) ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r362967 - in head/sys: kern sys
Author: kaktus Date: Mon Jul 6 16:33:28 2020 New Revision: 362967 URL: https://svnweb.freebsd.org/changeset/base/362967 Log: kern.tty_info_kstacks: add a compact format Add a more compact display format for kern.tty_info_kstacks inspired by procstat -kk. Set it as a default one. # sysctl kern.tty_info_kstacks=1 kern.tty_info_kstacks: 0 -> 1 # sleep 2 ^T load: 0.17 cmd: sleep 623 [nanslp] 0.72r 0.00u 0.00s 0% 2124k #0 0x80c4443e at mi_switch+0xbe #1 0x80c98044 at sleepq_catch_signals+0x494 #2 0x80c982c2 at sleepq_timedwait_sig+0x12 #3 0x80c43af3 at _sleep+0x193 #4 0x80c50e31 at kern_clock_nanosleep+0x1a1 #5 0x80c5119b at sys_nanosleep+0x3b #6 0x810ffc69 at amd64_syscall+0x119 #7 0x810d5520 at fast_syscall_common+0x101 sleep: about 1 second(s) left out of the original 2 ^C # sysctl kern.tty_info_kstacks=2 kern.tty_info_kstacks: 1 -> 2 # sleep 2 ^T load: 0.24 cmd: sleep 625 [nanslp] 0.81r 0.00u 0.00s 0% 2124k mi_switch+0xbe sleepq_catch_signals+0x494 sleepq_timedwait_sig+0x12 sleep+0x193 kern_clock_nanosleep+0x1a1 sys_nanosleep+0x3b amd64_syscall+0x119 fast_syscall_common+0x101 sleep: about 1 second(s) left out of the original 2 ^C Suggested by: avg Reviewed by: mjg Relnotes: yes Sponsored by: Mysterious Code Ltd. Differential Revision:https://reviews.freebsd.org/D25487 Modified: head/sys/kern/subr_stack.c head/sys/kern/tty_info.c head/sys/sys/stack.h Modified: head/sys/kern/subr_stack.c == --- head/sys/kern/subr_stack.c Mon Jul 6 16:33:21 2020(r362966) +++ head/sys/kern/subr_stack.c Mon Jul 6 16:33:28 2020(r362967) @@ -170,7 +170,8 @@ stack_print_short_ddb(const struct stack *st) * flags - M_WAITOK or M_NOWAIT (EWOULDBLOCK). */ int -stack_sbuf_print_flags(struct sbuf *sb, const struct stack *st, int flags) +stack_sbuf_print_flags(struct sbuf *sb, const struct stack *st, int flags, +enum stack_sbuf_fmt format) { char namebuf[64]; long offset; @@ -182,9 +183,19 @@ stack_sbuf_print_flags(struct sbuf *sb, const struct s &offset, flags); if (error == EWOULDBLOCK) return (error); - sbuf_printf(sb, "#%d %p at %s+%#lx\n", i, (void *)st->pcs[i], - namebuf, offset); + switch (format) { + case STACK_SBUF_FMT_LONG: + sbuf_printf(sb, "#%d %p at %s+%#lx\n", i, + (void *)st->pcs[i], namebuf, offset); + break; + case STACK_SBUF_FMT_COMPACT: + sbuf_printf(sb, "%s+%#lx ", namebuf, offset); + break; + default: + __assert_unreachable(); + } } + sbuf_nl_terminate(sb); return (0); } @@ -192,7 +203,7 @@ void stack_sbuf_print(struct sbuf *sb, const struct stack *st) { - (void)stack_sbuf_print_flags(sb, st, M_WAITOK); + (void)stack_sbuf_print_flags(sb, st, M_WAITOK, STACK_SBUF_FMT_LONG); } #if defined(DDB) || defined(WITNESS) Modified: head/sys/kern/tty_info.c == --- head/sys/kern/tty_info.cMon Jul 6 16:33:21 2020(r362966) +++ head/sys/kern/tty_info.cMon Jul 6 16:33:28 2020(r362967) @@ -239,10 +239,36 @@ sbuf_tty_drain(void *a, const char *d, int len) } #ifdef STACK -static bool tty_info_kstacks = true; -SYSCTL_BOOL(_kern, OID_AUTO, tty_info_kstacks, CTLFLAG_RWTUN, -&tty_info_kstacks, 0, -"Enable printing kernel stack(9) traces on ^T (tty info)"); +static int tty_info_kstacks = STACK_SBUF_FMT_LONG; + +static int +sysctl_tty_info_kstacks(SYSCTL_HANDLER_ARGS) +{ + enum stack_sbuf_fmt val; + int error; + + val = tty_info_kstacks; + error = sysctl_handle_int(oidp, &val, 0, req); + if (error != 0 || req->newptr == NULL) + return (error); + + switch (val) { + case STACK_SBUF_FMT_NONE: + case STACK_SBUF_FMT_LONG: + case STACK_SBUF_FMT_COMPACT: + tty_info_kstacks = val; + break; + default: + error = EINVAL; + } + + return (error); +} +SYSCTL_PROC(_kern, OID_AUTO, tty_info_kstacks, +CTLFLAG_RWTUN | CTLFLAG_MPSAFE | CTLTYPE_INT, NULL, 0, +sysctl_tty_info_kstacks, "I", +"Adjust format of kernel stack(9) traces on ^T (tty info): " +"0 - disabled; 1 - long; 2 - compact"); #endif /* @@ -254,7 +280,8 @@ tty_info(struct tty *tp) struct timeval rtime, utime, stime; #ifdef STACK struct stack stack; - int sterr; + int sterr, kstacks_val; + bool print_kstacks; #endif struct proc *p, *ppick; struct thread *td, *tdpick; @@ -337,
svn commit: r362947 - head/usr.bin/truss
Author: kaktus Date: Sun Jul 5 19:53:54 2020 New Revision: 362947 URL: https://svnweb.freebsd.org/changeset/base/362947 Log: truss: print more information about traced sysctls MFC after:2 weeks Sponsored by: Mysterious Code Ltd. Modified: head/usr.bin/truss/syscalls.c Modified: head/usr.bin/truss/syscalls.c == --- head/usr.bin/truss/syscalls.c Sun Jul 5 19:38:36 2020 (r362946) +++ head/usr.bin/truss/syscalls.c Sun Jul 5 19:53:54 2020 (r362947) @@ -1577,14 +1577,37 @@ print_cmsgs(FILE *fp, pid_t pid, bool receive, struct } static void -print_sysctl_oid(FILE *fp, int *oid, int len) +print_sysctl_oid(FILE *fp, int *oid, size_t len) { - int i; + size_t i; + bool first; - for (i = 0; i < len; i++) - fprintf(fp, ".%d", oid[i]); + first = true; + fprintf(fp, "{ "); + for (i = 0; i < len; i++) { + fprintf(fp, "%s%d", first ? "" : ".", oid[i]); + first = false; + } + fprintf(fp, " }"); } +static void +print_sysctl(FILE *fp, int *oid, size_t len) +{ + char name[BUFSIZ]; + int qoid[CTL_MAXNAME + 2]; + size_t i; + + qoid[0] = CTL_SYSCTL; + qoid[1] = CTL_SYSCTL_NAME; + memcpy(qoid + 2, oid, len * sizeof(int)); + i = sizeof(name); + if (sysctl(qoid, len + 2, name, &i, 0, 0) == -1) + print_sysctl_oid(fp, oid, len); + else + fprintf(fp, "%s", name); +} + /* * Converts a syscall argument into a string. Said string is * allocated via malloc(), so needs to be free()'d. sc is @@ -2298,9 +2321,8 @@ print_arg(struct syscall_args *sc, unsigned long *args break; case Sysctl: { char name[BUFSIZ]; - int oid[CTL_MAXNAME + 2], qoid[CTL_MAXNAME + 2]; - size_t i; - int len; + int oid[CTL_MAXNAME + 2]; + size_t len; memset(name, 0, sizeof(name)); len = args[sc->offset + 1]; @@ -2314,39 +2336,35 @@ print_arg(struct syscall_args *sc, unsigned long *args fprintf(fp, "debug"); break; case CTL_SYSCTL_NAME: - fprintf(fp, "name"); + fprintf(fp, "name "); print_sysctl_oid(fp, oid + 2, len - 2); break; case CTL_SYSCTL_NEXT: fprintf(fp, "next"); break; case CTL_SYSCTL_NAME2OID: - fprintf(fp, "name2oid"); + fprintf(fp, "name2oid %s", + get_string(pid, + args[sc->offset + 4], + args[sc->offset + 5])); break; case CTL_SYSCTL_OIDFMT: - fprintf(fp, "oidfmt"); - print_sysctl_oid(fp, oid + 2, len - 2); + fprintf(fp, "oidfmt "); + print_sysctl(fp, oid + 2, len - 2); break; case CTL_SYSCTL_OIDDESCR: - fprintf(fp, "oiddescr"); - print_sysctl_oid(fp, oid + 2, len - 2); + fprintf(fp, "oiddescr "); + print_sysctl(fp, oid + 2, len - 2); break; case CTL_SYSCTL_OIDLABEL: - fprintf(fp, "oidlabel"); - print_sysctl_oid(fp, oid + 2, len - 2); + fprintf(fp, "oidlabel "); + print_sysctl(fp, oid + 2, len - 2); break; default: - print_sysctl_oid(fp, oid + 1, len - 1); + print_sysctl(fp, oid + 1, len - 1); } } else { - qoid[0] = CTL_SYSCTL; - qoid[1] = CTL_SYSCTL_NAME; - memcpy(qoid + 2, oid, len * sizeof(int)); - i = sizeof(name); - if (sysctl(qoid, len + 2, name, &i, 0, 0) == -1) -
svn commit: r362932 - head/sys/dev/ixl
Author: kaktus Date: Sat Jul 4 14:20:03 2020 New Revision: 362932 URL: https://svnweb.freebsd.org/changeset/base/362932 Log: dev.ixl..debug: mark as MPSAFE This node provides no handler, it's implicitly MPSAFE. Reviewed by: erj Sponsored by: Mysterious Code Ltd. Differential Revision:https://reviews.freebsd.org/D25408 Modified: head/sys/dev/ixl/if_iavf.c Modified: head/sys/dev/ixl/if_iavf.c == --- head/sys/dev/ixl/if_iavf.c Sat Jul 4 13:32:57 2020(r362931) +++ head/sys/dev/ixl/if_iavf.c Sat Jul 4 14:20:03 2020(r362932) @@ -2090,7 +2090,7 @@ iavf_add_device_sysctls(struct iavf_sc *sc) /* Add sysctls meant to print debug information, but don't list them * in "sysctl -a" output. */ debug_node = SYSCTL_ADD_NODE(ctx, ctx_list, - OID_AUTO, "debug", CTLFLAG_RD | CTLFLAG_SKIP | CTLFLAG_NEEDGIANT, + OID_AUTO, "debug", CTLFLAG_RD | CTLFLAG_SKIP | CTLFLAG_MPSAFE, NULL, "Debug Sysctls"); debug_list = SYSCTL_CHILDREN(debug_node); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r362912 - stable/11/lib/libc/sys
Author: kaktus Date: Fri Jul 3 11:46:42 2020 New Revision: 362912 URL: https://svnweb.freebsd.org/changeset/base/362912 Log: MFC r362611 man page of select(2) should mention pselect(2) Reviewed by: bcr (manpages), kib, trasz Approved by: kib (mentor) MFC after:7 days Sponsored by: Mysterious Code Ltd. Modified: stable/11/lib/libc/sys/select.2 Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libc/sys/select.2 == --- stable/11/lib/libc/sys/select.2 Fri Jul 3 11:44:43 2020 (r362911) +++ stable/11/lib/libc/sys/select.2 Fri Jul 3 11:46:42 2020 (r362912) @@ -28,7 +28,7 @@ .\" @(#)select.2 8.2 (Berkeley) 3/25/94 .\" $FreeBSD$ .\" -.Dd November 17, 2002 +.Dd June 25, 2020 .Dt SELECT 2 .Os .Sh NAME @@ -172,6 +172,7 @@ was invalid. .Xr gettimeofday 2 , .Xr kqueue 2 , .Xr poll 2 , +.Xr pselect 2 , .Xr read 2 , .Xr recv 2 , .Xr send 2 , ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r362911 - stable/12/lib/libc/sys
Author: kaktus Date: Fri Jul 3 11:44:43 2020 New Revision: 362911 URL: https://svnweb.freebsd.org/changeset/base/362911 Log: MFC r362611 man page of select(2) should mention pselect(2) Reviewed by: bcr (manpages), kib, trasz Approved by: kib (mentor) MFC after:7 days Sponsored by: Mysterious Code Ltd. Modified: stable/12/lib/libc/sys/select.2 Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libc/sys/select.2 == --- stable/12/lib/libc/sys/select.2 Fri Jul 3 09:23:11 2020 (r362910) +++ stable/12/lib/libc/sys/select.2 Fri Jul 3 11:44:43 2020 (r362911) @@ -28,7 +28,7 @@ .\" @(#)select.2 8.2 (Berkeley) 3/25/94 .\" $FreeBSD$ .\" -.Dd November 17, 2002 +.Dd June 25, 2020 .Dt SELECT 2 .Os .Sh NAME @@ -172,6 +172,7 @@ was invalid. .Xr gettimeofday 2 , .Xr kqueue 2 , .Xr poll 2 , +.Xr pselect 2 , .Xr read 2 , .Xr recv 2 , .Xr send 2 , ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r362612 - head/usr.sbin/bhyve
Author: kaktus Date: Thu Jun 25 12:35:20 2020 New Revision: 362612 URL: https://svnweb.freebsd.org/changeset/base/362612 Log: bhyve: allow for automatic destruction on power-off Introduce -D flag that allows for the VM to be destroyed on guest initiated power-off by the bhyve(8) process itself. This is quality of life change that allows for simpler deployments without the need for bhyvectl --destroy. Requested by: swills Reviewed by: 0mp (manpages), grehan, kib, swills Approved by: kib (mentor) MFC after:2 weeks Sponsored by: Mysterious Code Ltd. Differential Revision:https://reviews.freebsd.org/D25414 Modified: head/usr.sbin/bhyve/bhyve.8 head/usr.sbin/bhyve/bhyverun.c Modified: head/usr.sbin/bhyve/bhyve.8 == --- head/usr.sbin/bhyve/bhyve.8 Thu Jun 25 12:31:05 2020(r362611) +++ head/usr.sbin/bhyve/bhyve.8 Thu Jun 25 12:35:20 2020(r362612) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 18, 2020 +.Dd Jun 25, 2020 .Dt BHYVE 8 .Os .Sh NAME @@ -32,7 +32,7 @@ .Nd "run a guest operating system inside a virtual machine" .Sh SYNOPSIS .Nm -.Op Fl AabCeHhPSuWwxY +.Op Fl AabCDeHhPSuWwxY .Oo .Sm off .Fl c\~ @@ -131,6 +131,8 @@ If a is specified more than once the last one has precedence. .It Fl C Include guest memory in core file. +.It Fl D +Destroy the VM on guest initiated power-off. .It Fl e Force .Nm Modified: head/usr.sbin/bhyve/bhyverun.c == --- head/usr.sbin/bhyve/bhyverun.c Thu Jun 25 12:31:05 2020 (r362611) +++ head/usr.sbin/bhyve/bhyverun.c Thu Jun 25 12:35:20 2020 (r362612) @@ -197,6 +197,7 @@ static int gdb_port = 0; static int guest_vmexit_on_hlt, guest_vmexit_on_pause; static int virtio_msix = 1; static int x2apic_mode = 0;/* default is xAPIC */ +static int destroy_on_poweroff = 0; static int strictio; static int strictmsr = 1; @@ -236,7 +237,7 @@ usage(int code) { fprintf(stderr, - "Usage: %s [-abehuwxACHPSWY]\n" + "Usage: %s [-abehuwxACDHPSWY]\n" " %*s [-c [[cpus=]numcpus][,sockets=n][,cores=n][,threads=n]]\n" " %*s [-g ] [-l ]\n" " %*s [-m mem] [-p vcpu:hostcpu] [-s ] [-U uuid] \n" @@ -244,6 +245,7 @@ usage(int code) " -A: create ACPI tables\n" " -c: number of cpus and/or topology specification\n" " -C: include guest memory in core file\n" + " -D: destroy on power-off\n" " -e: exit on unhandled I/O access\n" " -g: gdb port\n" " -h: help\n" @@ -815,6 +817,8 @@ vmexit_suspend(struct vmctx *ctx, struct vm_exit *vmex case VM_SUSPEND_RESET: exit(0); case VM_SUSPEND_POWEROFF: + if (destroy_on_poweroff) + vm_destroy(ctx); exit(1); case VM_SUSPEND_HALT: exit(2); @@ -1101,9 +1105,9 @@ main(int argc, char *argv[]) memflags = 0; #ifdef BHYVE_SNAPSHOT - optstr = "abehuwxACHIPSWYp:g:G:c:s:m:l:U:r:"; + optstr = "abehuwxACDHIPSWYp:g:G:c:s:m:l:U:r:"; #else - optstr = "abehuwxACHIPSWYp:g:G:c:s:m:l:U:"; + optstr = "abehuwxACDHIPSWYp:g:G:c:s:m:l:U:"; #endif while ((c = getopt(argc, argv, optstr)) != -1) { switch (c) { @@ -1115,6 +1119,9 @@ main(int argc, char *argv[]) break; case 'b': bvmcons = 1; + break; + case 'D': + destroy_on_poweroff = 1; break; case 'p': if (pincpu_parse(optarg) != 0) { ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r362611 - head/lib/libc/sys
Author: kaktus Date: Thu Jun 25 12:31:05 2020 New Revision: 362611 URL: https://svnweb.freebsd.org/changeset/base/362611 Log: man page of select(2) should mention pselect(2) Reviewed by: bcr (manpages), kib, trasz Approved by: kib (mentor) MFC after:7 days Sponsored by: Mysterious Code Ltd. Differential Revision:https://reviews.freebsd.org/D25169 Modified: head/lib/libc/sys/select.2 Modified: head/lib/libc/sys/select.2 == --- head/lib/libc/sys/select.2 Thu Jun 25 11:41:28 2020(r362610) +++ head/lib/libc/sys/select.2 Thu Jun 25 12:31:05 2020(r362611) @@ -28,7 +28,7 @@ .\" @(#)select.2 8.2 (Berkeley) 3/25/94 .\" $FreeBSD$ .\" -.Dd November 17, 2002 +.Dd June 25, 2020 .Dt SELECT 2 .Os .Sh NAME @@ -172,6 +172,7 @@ was invalid. .Xr gettimeofday 2 , .Xr kqueue 2 , .Xr poll 2 , +.Xr pselect 2 , .Xr read 2 , .Xr recv 2 , .Xr send 2 , ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r362468 - head/sys/net
Author: kaktus Date: Sun Jun 21 18:40:17 2020 New Revision: 362468 URL: https://svnweb.freebsd.org/changeset/base/362468 Log: net.link.generic.ifdata..linkspecific: rework handler This OID was added in r17352 but the write path of IFDATA_LINKSPECIFIC seems unused as there are no in-base writers, and as far as I can tell we had issues with this code before, see PR 219472. Drop the write path to make the handler read-only as described in comments and man-pages. It can be marked as MPSAFE now. Reviewed by: bdragon, kib, melifaro, wollman Approved by: kib (mentor) Sponsored by: Mysterious Code Ltd. Differential Revision:https://reviews.freebsd.org/D25348 Modified: head/sys/net/if_mib.c Modified: head/sys/net/if_mib.c == --- head/sys/net/if_mib.c Sun Jun 21 16:06:01 2020(r362467) +++ head/sys/net/if_mib.c Sun Jun 21 18:40:17 2020(r362468) @@ -122,10 +122,6 @@ sysctl_ifdata(SYSCTL_HANDLER_ARGS) /* XXX bad syntax! error = SYSCTL_OUT(req, ifp->if_linkmib, ifp->if_linkmiblen); if (error || !req->newptr) goto out; - - error = SYSCTL_IN(req, ifp->if_linkmib, ifp->if_linkmiblen); - if (error) - goto out; break; case IFDATA_DRIVERNAME: @@ -152,6 +148,6 @@ out: } static SYSCTL_NODE(_net_link_generic, IFMIB_IFDATA, ifdata, -CTLFLAG_RW | CTLFLAG_NEEDGIANT, sysctl_ifdata, +CTLFLAG_RD | CTLFLAG_MPSAFE, sysctl_ifdata, "Interface table"); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r362343 - in head/sys: kern sys
Author: kaktus Date: Thu Jun 18 21:42:54 2020 New Revision: 362343 URL: https://svnweb.freebsd.org/changeset/base/362343 Log: hw.bus.info: rework handler hw.bus.info was added in r68522 as a node, but there was never anything connected "behind" it. Its only purpose is to return a struct u_businfo. The only in-base consumer are devinfo(3)/devinfo(8). Rewrite the handler as SYSCTL_PROC and mark it as MPSAFE and read-only as there never was a writable path. Reviewed by: kib Approved by: kib (mentor) Sponsored by: Mysterious Code Ltd. Differential Revision:https://reviews.freebsd.org/D25321 Modified: head/sys/kern/subr_bus.c head/sys/sys/sysctl.h Modified: head/sys/kern/subr_bus.c == --- head/sys/kern/subr_bus.cThu Jun 18 20:49:56 2020(r362342) +++ head/sys/kern/subr_bus.cThu Jun 18 21:42:54 2020(r362343) @@ -5454,7 +5454,7 @@ print_devclass_list(void) */ static int -sysctl_bus(SYSCTL_HANDLER_ARGS) +sysctl_bus_info(SYSCTL_HANDLER_ARGS) { struct u_businfoubus; @@ -5463,7 +5463,8 @@ sysctl_bus(SYSCTL_HANDLER_ARGS) return (SYSCTL_OUT(req, &ubus, sizeof(ubus))); } -SYSCTL_NODE(_hw_bus, OID_AUTO, info, CTLFLAG_RW | CTLFLAG_NEEDGIANT, sysctl_bus, +SYSCTL_PROC(_hw_bus, OID_AUTO, info, CTLTYPE_STRUCT | CTLFLAG_RD | +CTLFLAG_MPSAFE, NULL, 0, sysctl_bus_info, "S,u_businfo", "bus-related data"); static int @@ -,7 +5556,8 @@ bus_data_generation_check(int generation) void bus_data_generation_update(void) { - bus_data_generation++; + + atomic_add_int(&bus_data_generation, 1); } int Modified: head/sys/sys/sysctl.h == --- head/sys/sys/sysctl.h Thu Jun 18 20:49:56 2020(r362342) +++ head/sys/sys/sysctl.h Thu Jun 18 21:42:54 2020(r362343) @@ -1122,7 +1122,6 @@ SYSCTL_DECL(_dev); SYSCTL_DECL(_hw); SYSCTL_DECL(_hw_bus); SYSCTL_DECL(_hw_bus_devices); -SYSCTL_DECL(_hw_bus_info); SYSCTL_DECL(_machdep); SYSCTL_DECL(_machdep_mitigations); SYSCTL_DECL(_user); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r361113 - head/sys/net
Author: kaktus Date: Sat May 16 17:05:44 2020 New Revision: 361113 URL: https://svnweb.freebsd.org/changeset/base/361113 Log: sysctl: fix setting net.isr.dispatch during early boot Fix another collateral damage of r357614: netisr is initialised way before malloc() is available hence it can't use sysctl_handle_string() that allocates temporary buffer. Handle that internally in sysctl_netisr_dispatch_policy(). PR: 246114 Reported by: delphij Reviewed by: kib Approved by: kib (mentor) Differential Revision:https://reviews.freebsd.org/D24858 Modified: head/sys/net/netisr.c Modified: head/sys/net/netisr.c == --- head/sys/net/netisr.c Sat May 16 16:29:23 2020(r361112) +++ head/sys/net/netisr.c Sat May 16 17:05:44 2020(r361113) @@ -345,19 +345,34 @@ static int sysctl_netisr_dispatch_policy(SYSCTL_HANDLER_ARGS) { char tmp[NETISR_DISPATCH_POLICY_MAXSTR]; + size_t len; u_int dispatch_policy; int error; netisr_dispatch_policy_to_str(netisr_dispatch_policy, tmp, sizeof(tmp)); - error = sysctl_handle_string(oidp, tmp, sizeof(tmp), req); - if (error == 0 && req->newptr != NULL) { - error = netisr_dispatch_policy_from_str(tmp, - &dispatch_policy); - if (error == 0 && dispatch_policy == NETISR_DISPATCH_DEFAULT) - error = EINVAL; - if (error == 0) - netisr_dispatch_policy = dispatch_policy; + /* +* netisr is initialised very early during the boot when malloc isn't +* available yet so we can't use sysctl_handle_string() to process +* any non-default value that was potentially set via loader. +*/ + if (req->newptr != NULL) { + len = req->newlen - req->newidx; + if (len >= NETISR_DISPATCH_POLICY_MAXSTR) + return (EINVAL); + error = SYSCTL_IN(req, tmp, len); + if (error == 0) { + tmp[len] = '\0'; + error = netisr_dispatch_policy_from_str(tmp, + &dispatch_policy); + if (error == 0 && + dispatch_policy == NETISR_DISPATCH_DEFAULT) + error = EINVAL; + if (error == 0) + netisr_dispatch_policy = dispatch_policy; + } + } else { + error = sysctl_handle_string(oidp, tmp, sizeof(tmp), req); } return (error); } ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r359976 - head/sys/kern
Author: kaktus Date: Wed Apr 15 16:55:38 2020 New Revision: 359976 URL: https://svnweb.freebsd.org/changeset/base/359976 Log: sysctl_handle_string: Put logical or in parentheses. Reported by: rdivacky Approved by: kib (mentor) Pointy-hat to:kaktus Modified: head/sys/kern/kern_sysctl.c Modified: head/sys/kern/kern_sysctl.c == --- head/sys/kern/kern_sysctl.c Wed Apr 15 16:33:55 2020(r359975) +++ head/sys/kern/kern_sysctl.c Wed Apr 15 16:55:38 2020(r359976) @@ -1655,7 +1655,7 @@ sysctl_handle_string(SYSCTL_HANDLER_ARGS) * string. In ddb, don't worry about trying to make a malloced * snapshot. */ - if ((oidp->oid_kind & CTLFLAG_WR | CTLFLAG_TUN) == 0 || arg2 == 0 + if ((oidp->oid_kind & (CTLFLAG_WR | CTLFLAG_TUN)) == 0 || arg2 == 0 || kdb_active) { arg2 = strlen((char *)arg1) + 1; ro_string = 1; ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r359975 - head/sys/kern
Author: kaktus Date: Wed Apr 15 16:33:55 2020 New Revision: 359975 URL: https://svnweb.freebsd.org/changeset/base/359975 Log: sysctl(9): fix handling string tunables. r357614 changed internals of handling string sysctls, and inadvertently broke setting string tunables. Take them into account. PR: 245463 Reported by: jhb, np Reviewed by: imp, jhb, kib Approved by: kib (mentor) Differential Revision:https://reviews.freebsd.org/D24429 Modified: head/sys/kern/kern_sysctl.c Modified: head/sys/kern/kern_sysctl.c == --- head/sys/kern/kern_sysctl.c Wed Apr 15 16:33:27 2020(r359974) +++ head/sys/kern/kern_sysctl.c Wed Apr 15 16:33:55 2020(r359975) @@ -1648,13 +1648,15 @@ sysctl_handle_string(SYSCTL_HANDLER_ARGS) int error = 0, ro_string = 0; /* -* If the sysctl isn't writable, microoptimise and treat it as a -* const string. +* If the sysctl isn't writable and isn't a preallocated tunable that +* can be modified by kenv(2), microoptimise and treat it as a +* read-only string. * A zero-length buffer indicates a fixed size read-only * string. In ddb, don't worry about trying to make a malloced * snapshot. */ - if (!(oidp->oid_kind & CTLFLAG_WR) || arg2 == 0 || kdb_active) { + if ((oidp->oid_kind & CTLFLAG_WR | CTLFLAG_TUN) == 0 || arg2 == 0 + || kdb_active) { arg2 = strlen((char *)arg1) + 1; ro_string = 1; } @@ -1697,8 +1699,7 @@ sysctl_handle_string(SYSCTL_HANDLER_ARGS) arg2 = req->newlen - req->newidx; tmparg = malloc(arg2, M_SYSCTLTMP, M_WAITOK); - error = copyin((const char *)req->newptr + req->newidx, - tmparg, arg2); + error = SYSCTL_IN(req, tmparg, arg2); if (error) { free(tmparg, M_SYSCTLTMP); return (error); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r358548 - head/sys/kern
Author: kaktus Date: Mon Mar 2 15:30:52 2020 New Revision: 358548 URL: https://svnweb.freebsd.org/changeset/base/358548 Log: sys/: Document few more sysctls. Submitted by: Antranig Vartanian Reviewed by: kaktus Commented by: jhb Approved by: kib (mentor) Sponsored by: illuria security Differential Revision:https://reviews.freebsd.org/D23759 Modified: head/sys/kern/kern_exec.c head/sys/kern/kern_shutdown.c head/sys/kern/kern_synch.c head/sys/kern/kern_umtx.c head/sys/kern/sched_4bsd.c head/sys/kern/sched_ule.c head/sys/kern/subr_kobj.c Modified: head/sys/kern/kern_exec.c == --- head/sys/kern/kern_exec.c Mon Mar 2 14:36:15 2020(r358547) +++ head/sys/kern/kern_exec.c Mon Mar 2 15:30:52 2020(r358548) @@ -123,18 +123,22 @@ static int do_execve(struct thread *td, struct image_a /* XXX This should be vm_size_t. */ SYSCTL_PROC(_kern, KERN_PS_STRINGS, ps_strings, CTLTYPE_ULONG|CTLFLAG_RD| -CTLFLAG_CAPRD|CTLFLAG_MPSAFE, NULL, 0, sysctl_kern_ps_strings, "LU", ""); +CTLFLAG_CAPRD|CTLFLAG_MPSAFE, NULL, 0, sysctl_kern_ps_strings, "LU", +"Location of process' ps_strings structure"); /* XXX This should be vm_size_t. */ SYSCTL_PROC(_kern, KERN_USRSTACK, usrstack, CTLTYPE_ULONG|CTLFLAG_RD| -CTLFLAG_CAPRD|CTLFLAG_MPSAFE, NULL, 0, sysctl_kern_usrstack, "LU", ""); +CTLFLAG_CAPRD|CTLFLAG_MPSAFE, NULL, 0, sysctl_kern_usrstack, "LU", +"Top of process stack"); SYSCTL_PROC(_kern, OID_AUTO, stackprot, CTLTYPE_INT|CTLFLAG_RD|CTLFLAG_MPSAFE, -NULL, 0, sysctl_kern_stackprot, "I", ""); +NULL, 0, sysctl_kern_stackprot, "I", +"Stack memory permissions"); u_long ps_arg_cache_limit = PAGE_SIZE / 16; SYSCTL_ULONG(_kern, OID_AUTO, ps_arg_cache_limit, CTLFLAG_RW, -&ps_arg_cache_limit, 0, ""); +&ps_arg_cache_limit, 0, +"Process' command line characters cache limit"); static int disallow_high_osrel; SYSCTL_INT(_kern, OID_AUTO, disallow_high_osrel, CTLFLAG_RW, Modified: head/sys/kern/kern_shutdown.c == --- head/sys/kern/kern_shutdown.c Mon Mar 2 14:36:15 2020 (r358547) +++ head/sys/kern/kern_shutdown.c Mon Mar 2 15:30:52 2020 (r358548) @@ -167,7 +167,8 @@ static int show_busybufs; static int show_busybufs = 1; #endif SYSCTL_INT(_kern_shutdown, OID_AUTO, show_busybufs, CTLFLAG_RW, - &show_busybufs, 0, ""); +&show_busybufs, 0, +"Show busy buffers during shutdown"); int suspend_blocked = 0; SYSCTL_INT(_kern, OID_AUTO, suspend_blocked, CTLFLAG_RW, Modified: head/sys/kern/kern_synch.c == --- head/sys/kern/kern_synch.c Mon Mar 2 14:36:15 2020(r358547) +++ head/sys/kern/kern_synch.c Mon Mar 2 15:30:52 2020(r358548) @@ -94,7 +94,8 @@ static fixpt_t cexp[3] = { }; /* kernel uses `FSCALE', userland (SHOULD) use kern.fscale */ -SYSCTL_INT(_kern, OID_AUTO, fscale, CTLFLAG_RD, SYSCTL_NULL_INT_PTR, FSCALE, ""); +SYSCTL_INT(_kern, OID_AUTO, fscale, CTLFLAG_RD, SYSCTL_NULL_INT_PTR, FSCALE, +"Fixed-point scale factor used for calculating load average values"); static voidloadav(void *arg); Modified: head/sys/kern/kern_umtx.c == --- head/sys/kern/kern_umtx.c Mon Mar 2 14:36:15 2020(r358547) +++ head/sys/kern/kern_umtx.c Mon Mar 2 15:30:52 2020(r358548) @@ -240,7 +240,7 @@ SYSCTL_INT(_kern_ipc, OID_AUTO, umtx_vnode_persistent, static int umtx_max_rb = 1000; SYSCTL_INT(_kern_ipc, OID_AUTO, umtx_max_robust, CTLFLAG_RWTUN, &umtx_max_rb, 0, -""); +"Maximum number of robust mutexes allowed for each thread"); static uma_zone_t umtx_pi_zone; static struct umtxq_chain umtxq_chains[2][UMTX_CHAINS]; Modified: head/sys/kern/sched_4bsd.c == --- head/sys/kern/sched_4bsd.c Mon Mar 2 14:36:15 2020(r358547) +++ head/sys/kern/sched_4bsd.c Mon Mar 2 15:30:52 2020(r358548) @@ -437,7 +437,8 @@ maybe_preempt(struct thread *td) /* decay 95% of `ts_pctcpu' in 60 seconds; see CCPU_SHIFT before changing */ static fixpt_t ccpu = 0.95122942450071400909 * FSCALE; /* exp(-1/20) */ -SYSCTL_UINT(_kern, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, ""); +SYSCTL_UINT(_kern, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, +"Decay factor used for updating %CPU"); /* * If `ccpu' is not equal to `exp(-1/20)' and you still want to use the Modified: head/sys/kern/sched_ule.c == --- head/sys/kern/sched_ule.c Mon Mar 2 14:36:15 2020(r358547) +++ head/sys/kern/sched_ule.c Mon Mar 2 15:30:52 2020(r358548) @@ -3128,4 +3128,5 @@ SYSCTL_PROC(_
svn commit: r358379 - head/sys/dev/random
Author: kaktus Date: Thu Feb 27 13:12:14 2020 New Revision: 358379 URL: https://svnweb.freebsd.org/changeset/base/358379 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (18 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Mark all obvious cases as MPSAFE. All entries that haven't been marked as MPSAFE before are by default marked as NEEDGIANT Reviewed by: cem Approved by: csprng, kib (mentor, blanket) Differential Revision:https://reviews.freebsd.org/D23841 Modified: head/sys/dev/random/fortuna.c head/sys/dev/random/ivy.c head/sys/dev/random/random_harvestq.c head/sys/dev/random/random_infra.c Modified: head/sys/dev/random/fortuna.c == --- head/sys/dev/random/fortuna.c Thu Feb 27 11:23:44 2020 (r358378) +++ head/sys/dev/random/fortuna.c Thu Feb 27 13:12:14 2020 (r358379) @@ -299,14 +299,14 @@ random_fortuna_init_alg(void *unused __unused) fortuna_state.fs_lasttime = 0; random_fortuna_o = SYSCTL_ADD_NODE(&random_clist, SYSCTL_STATIC_CHILDREN(_kern_random), - OID_AUTO, "fortuna", CTLFLAG_RW, 0, + OID_AUTO, "fortuna", CTLFLAG_RW | CTLFLAG_MPSAFE, 0, "Fortuna Parameters"); SYSCTL_ADD_PROC(&random_clist, - SYSCTL_CHILDREN(random_fortuna_o), OID_AUTO, - "minpoolsize", CTLTYPE_UINT | CTLFLAG_RWTUN, - &fortuna_state.fs_minpoolsize, RANDOM_FORTUNA_DEFPOOLSIZE, - random_check_uint_fs_minpoolsize, "IU", - "Minimum pool size necessary to cause a reseed"); + SYSCTL_CHILDREN(random_fortuna_o), OID_AUTO, "minpoolsize", + CTLTYPE_UINT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, + &fortuna_state.fs_minpoolsize, RANDOM_FORTUNA_DEFPOOLSIZE, + random_check_uint_fs_minpoolsize, "IU", + "Minimum pool size necessary to cause a reseed"); KASSERT(fortuna_state.fs_minpoolsize > 0, ("random: Fortuna threshold must be > 0 at startup")); SYSCTL_ADD_BOOL(&random_clist, SYSCTL_CHILDREN(random_fortuna_o), Modified: head/sys/dev/random/ivy.c == --- head/sys/dev/random/ivy.c Thu Feb 27 11:23:44 2020(r358378) +++ head/sys/dev/random/ivy.c Thu Feb 27 13:12:14 2020(r358379) @@ -60,7 +60,7 @@ static struct random_source random_ivy = { .rs_read = random_ivy_read }; -SYSCTL_NODE(_kern_random, OID_AUTO, rdrand, CTLFLAG_RW, 0, +SYSCTL_NODE(_kern_random, OID_AUTO, rdrand, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, "rdrand (ivy) entropy source"); static bool acquire_independent_seed_samples = false; SYSCTL_BOOL(_kern_random_rdrand, OID_AUTO, rdrand_independent_seed, Modified: head/sys/dev/random/random_harvestq.c == --- head/sys/dev/random/random_harvestq.c Thu Feb 27 11:23:44 2020 (r358378) +++ head/sys/dev/random/random_harvestq.c Thu Feb 27 13:12:14 2020 (r358379) @@ -111,7 +111,7 @@ struct random_sources { static CK_LIST_HEAD(sources_head, random_sources) source_list = CK_LIST_HEAD_INITIALIZER(source_list); -SYSCTL_NODE(_kern_random, OID_AUTO, harvest, CTLFLAG_RW, 0, +SYSCTL_NODE(_kern_random, OID_AUTO, harvest, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, "Entropy Device Parameters"); /* @@ -305,8 +305,10 @@ random_check_uint_harvestmask(SYSCTL_HANDLER_ARGS) (orig_value & user_immutable_mask); return (0); } -SYSCTL_PROC(_kern_random_harvest, OID_AUTO, mask, CTLTYPE_UINT | CTLFLAG_RW, -NULL, 0, random_check_uint_harvestmask, "IU", "Entropy harvesting mask"); +SYSCTL_PROC(_kern_random_harvest, OID_AUTO, mask, +CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, NULL, 0, +random_check_uint_harvestmask, "IU", +"Entropy harvesting mask"); /* ARGSUSED */ static int @@ -326,7 +328,8 @@ random_print_harvestmask(SYSCTL_HANDLER_ARGS) return (error); } SYSCTL_PROC(_kern_random_harvest, OID_AUTO, mask_bin, -CTLTYPE_STRING | CTLFLAG_RD, NULL, 0, random_print_harvestmask, "A", +CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, 0, +random_print_harvestmask, "A", "Entropy harvesting mask (printable)"); static const char *random_source_descr[ENTROPYSOURCE] = { @@ -387,8 +390,9 @@ random_print_harvestmask_symbolic(SYSCTL_HANDLER_ARGS) return (error); } SYSCTL_PROC(_kern_random_harvest, OID_AUTO, mask_symbolic, -CTLTYPE_STRING | CTLFLAG_RD, NULL, 0, random_print_harvestmask_symbolic, -"A", "Entropy harvesting mask
svn commit: r358334 - head/sys/sys
Author: kaktus Date: Wed Feb 26 15:12:38 2020 New Revision: 358334 URL: https://svnweb.freebsd.org/changeset/base/358334 Log: Move the SYSCTL_ENFORCE_FLAGS to SYSCTL_NODE_WITH_LABEL where it should be at the beginning. Modified: head/sys/sys/sysctl.h Modified: head/sys/sys/sysctl.h == --- head/sys/sys/sysctl.h Wed Feb 26 14:26:36 2020(r358333) +++ head/sys/sys/sysctl.h Wed Feb 26 15:12:38 2020(r358334) @@ -324,7 +324,6 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry); SYSCTL_OID_RAW(sysctl___##name, &sysctl__children, \ nbr, #name, CTLTYPE_NODE|(access), NULL, 0, \ handler, "N", descr, NULL); \ - SYSCTL_ENFORCE_FLAGS(access); \ CTASSERT(((access) & CTLTYPE) == 0 || \ ((access) & SYSCTL_CT_ASSERT_MASK) == CTLTYPE_NODE) @@ -335,6 +334,7 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry); #defineSYSCTL_NODE_WITH_LABEL(parent, nbr, name, access, handler, descr, label) \ SYSCTL_OID_GLOBAL(parent, nbr, name, CTLTYPE_NODE|(access), \ NULL, 0, handler, "N", descr, label); \ + SYSCTL_ENFORCE_FLAGS(access); \ CTASSERT(((access) & CTLTYPE) == 0 || \ ((access) & SYSCTL_CT_ASSERT_MASK) == CTLTYPE_NODE) ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r358333 - in head/sys: amd64/amd64 amd64/linux32 arm/altera/socfpga arm/arm arm/broadcom/bcm2835 arm/freescale/imx arm/mv arm/nvidia arm/nvidia/tegra124 arm/ti arm/ti/am335x arm/ti/cpsw...
Author: kaktus Date: Wed Feb 26 14:26:36 2020 New Revision: 358333 URL: https://svnweb.freebsd.org/changeset/base/358333 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Mark all obvious cases as MPSAFE. All entries that haven't been marked as MPSAFE before are by default marked as NEEDGIANT Approved by: kib (mentor, blanket) Commented by: kib, gallatin, melifaro Differential Revision:https://reviews.freebsd.org/D23718 Modified: head/sys/amd64/amd64/efirt_machdep.c head/sys/amd64/amd64/machdep.c head/sys/amd64/amd64/pmap.c head/sys/amd64/amd64/prof_machdep.c head/sys/amd64/linux32/linux32_sysvec.c head/sys/arm/altera/socfpga/socfpga_rstmgr.c head/sys/arm/arm/busdma_machdep.c head/sys/arm/arm/cpuinfo.c head/sys/arm/arm/machdep_boot.c head/sys/arm/arm/pmap-v6.c head/sys/arm/broadcom/bcm2835/bcm2835_audio.c head/sys/arm/broadcom/bcm2835/bcm2835_bsc.c head/sys/arm/broadcom/bcm2835/bcm2835_cpufreq.c head/sys/arm/broadcom/bcm2835/bcm2835_fbd.c head/sys/arm/broadcom/bcm2835/bcm2835_gpio.c head/sys/arm/broadcom/bcm2835/bcm2835_pwm.c head/sys/arm/broadcom/bcm2835/bcm2835_rng.c head/sys/arm/broadcom/bcm2835/bcm2835_spi.c head/sys/arm/freescale/imx/imx6_anatop.c head/sys/arm/freescale/imx/imx_machdep.c head/sys/arm/mv/mv_thermal.c head/sys/arm/mv/mv_ts.c head/sys/arm/nvidia/tegra124/tegra124_coretemp.c head/sys/arm/nvidia/tegra_soctherm.c head/sys/arm/ti/am335x/am335x_ehrpwm.c head/sys/arm/ti/am335x/am335x_lcd.c head/sys/arm/ti/am335x/am335x_musb.c head/sys/arm/ti/cpsw/if_cpsw.c head/sys/arm/ti/ti_adc.c head/sys/arm/ti/ti_pruss.c head/sys/arm/ti/twl/twl_clks.c head/sys/arm/ti/twl/twl_vreg.c head/sys/arm/xilinx/zy7_devcfg.c head/sys/arm/xilinx/zy7_slcr.c head/sys/arm64/arm64/busdma_bounce.c head/sys/arm64/arm64/pmap.c head/sys/cam/ata/ata_da.c head/sys/cam/ata/ata_pmp.c head/sys/cam/cam.c head/sys/cam/cam_iosched.c head/sys/cam/ctl/ctl.c head/sys/cam/ctl/ctl_backend_block.c head/sys/cam/ctl/ctl_frontend_cam_sim.c head/sys/cam/ctl/ctl_frontend_iscsi.c head/sys/cam/ctl/ctl_ha.c head/sys/cam/nvme/nvme_da.c head/sys/cam/scsi/scsi_all.c head/sys/cam/scsi/scsi_cd.c head/sys/cam/scsi/scsi_da.c head/sys/cam/scsi/scsi_enc.c head/sys/cam/scsi/scsi_sa.c head/sys/cam/scsi/scsi_xpt.c head/sys/cddl/compat/opensolaris/kern/opensolaris_kstat.c head/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c head/sys/cddl/dev/dtrace/dtrace_sysctl.c head/sys/cddl/dev/dtrace/dtrace_test.c head/sys/cddl/dev/profile/profile.c head/sys/compat/ia32/ia32_sysvec.c head/sys/compat/linux/linux_mib.c head/sys/compat/ndis/subr_ntoskrnl.c head/sys/compat/x86bios/x86bios.c head/sys/contrib/rdma/krping/krping_dev.c head/sys/crypto/ccp/ccp_hardware.c head/sys/ddb/db_capture.c head/sys/ddb/db_main.c head/sys/ddb/db_script.c head/sys/ddb/db_textdump.c head/sys/dev/aac/aac.c head/sys/dev/aacraid/aacraid.c head/sys/dev/acpi_support/acpi_asus.c head/sys/dev/acpi_support/acpi_asus_wmi.c head/sys/dev/acpi_support/acpi_fujitsu.c head/sys/dev/acpi_support/acpi_hp.c head/sys/dev/acpi_support/acpi_ibm.c head/sys/dev/acpi_support/acpi_panasonic.c head/sys/dev/acpi_support/acpi_rapidstart.c head/sys/dev/acpi_support/acpi_sony.c head/sys/dev/acpi_support/acpi_toshiba.c head/sys/dev/acpi_support/atk0110.c head/sys/dev/acpica/acpi.c head/sys/dev/acpica/acpi_acad.c head/sys/dev/acpica/acpi_battery.c head/sys/dev/acpica/acpi_cpu.c head/sys/dev/acpica/acpi_dock.c head/sys/dev/acpica/acpi_ec.c head/sys/dev/acpica/acpi_smbat.c head/sys/dev/acpica/acpi_thermal.c head/sys/dev/acpica/acpi_timer.c head/sys/dev/acpica/acpi_video.c head/sys/dev/adb/adb_kbd.c head/sys/dev/adb/adb_mouse.c head/sys/dev/ae/if_ae.c head/sys/dev/age/if_age.c head/sys/dev/ahci/ahci.c head/sys/dev/aic7xxx/aic79xx_osm.c head/sys/dev/alc/if_a
svn commit: r358318 - head/sys/sys
Author: kaktus Date: Tue Feb 25 19:12:40 2020 New Revision: 358318 URL: https://svnweb.freebsd.org/changeset/base/358318 Log: SYSCTL_ROOT_NODE should use the SYSCTL_ENFORCE_FLAGS macro too. Approved by: kib (mentor, blanket) Modified: head/sys/sys/sysctl.h Modified: head/sys/sys/sysctl.h == --- head/sys/sys/sysctl.h Tue Feb 25 19:11:20 2020(r358317) +++ head/sys/sys/sysctl.h Tue Feb 25 19:12:40 2020(r358318) @@ -324,6 +324,7 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry); SYSCTL_OID_RAW(sysctl___##name, &sysctl__children, \ nbr, #name, CTLTYPE_NODE|(access), NULL, 0, \ handler, "N", descr, NULL); \ + SYSCTL_ENFORCE_FLAGS(access); \ CTASSERT(((access) & CTLTYPE) == 0 || \ ((access) & SYSCTL_CT_ASSERT_MASK) == CTLTYPE_NODE) ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r358316 - in head/sys: dev/xen/balloon dev/xen/blkfront dev/xen/netback dev/xen/xenstore xen/xenbus
Author: kaktus Date: Tue Feb 25 19:04:39 2020 New Revision: 358316 URL: https://svnweb.freebsd.org/changeset/base/358316 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (16 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Mark all obvious cases as MPSAFE. Reviewed by: royger Approved by: kib (mentor, blanket) Differential Revision:https://reviews.freebsd.org/D23638 Modified: head/sys/dev/xen/balloon/balloon.c head/sys/dev/xen/blkfront/blkfront.c head/sys/dev/xen/netback/netback.c head/sys/dev/xen/xenstore/xenstore.c head/sys/xen/xenbus/xenbusb.c Modified: head/sys/dev/xen/balloon/balloon.c == --- head/sys/dev/xen/balloon/balloon.c Tue Feb 25 17:26:10 2020 (r358315) +++ head/sys/dev/xen/balloon/balloon.c Tue Feb 25 19:04:39 2020 (r358316) @@ -79,7 +79,9 @@ static struct balloon_stats balloon_stats; #define bs balloon_stats SYSCTL_DECL(_dev_xen); -static SYSCTL_NODE(_dev_xen, OID_AUTO, balloon, CTLFLAG_RD, NULL, "Balloon"); +static SYSCTL_NODE(_dev_xen, OID_AUTO, balloon, +CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, +"Balloon"); SYSCTL_ULONG(_dev_xen_balloon, OID_AUTO, current, CTLFLAG_RD, &bs.current_pages, 0, "Current allocation"); SYSCTL_ULONG(_dev_xen_balloon, OID_AUTO, target, CTLFLAG_RD, Modified: head/sys/dev/xen/blkfront/blkfront.c == --- head/sys/dev/xen/blkfront/blkfront.cTue Feb 25 17:26:10 2020 (r358315) +++ head/sys/dev/xen/blkfront/blkfront.cTue Feb 25 19:04:39 2020 (r358316) @@ -83,7 +83,8 @@ static void xbd_startio(struct xbd_softc *sc); static MALLOC_DEFINE(M_XENBLOCKFRONT, "xbd", "Xen Block Front driver data"); static int xbd_enable_indirect = 1; -SYSCTL_NODE(_hw, OID_AUTO, xbd, CTLFLAG_RD, 0, "xbd driver parameters"); +SYSCTL_NODE(_hw, OID_AUTO, xbd, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, +"xbd driver parameters"); SYSCTL_INT(_hw_xbd, OID_AUTO, xbd_enable_indirect, CTLFLAG_RDTUN, &xbd_enable_indirect, 0, "Enable xbd indirect segments"); @@ -926,8 +927,8 @@ xbd_setup_sysctl(struct xbd_softc *xbd) "communication channel pages (negotiated)"); SYSCTL_ADD_PROC(sysctl_ctx, children, OID_AUTO, - "features", CTLTYPE_STRING|CTLFLAG_RD, xbd, 0, - xbd_sysctl_features, "A", "protocol features (negotiated)"); + "features", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, xbd, + 0, xbd_sysctl_features, "A", "protocol features (negotiated)"); } /* Modified: head/sys/dev/xen/netback/netback.c == --- head/sys/dev/xen/netback/netback.c Tue Feb 25 17:26:10 2020 (r358315) +++ head/sys/dev/xen/netback/netback.c Tue Feb 25 19:04:39 2020 (r358316) @@ -1157,7 +1157,7 @@ xnb_setup_sysctl(struct xnb_softc *xnb) SYSCTL_CHILDREN(sysctl_tree), OID_AUTO, "unit_test_results", - CTLTYPE_STRING | CTLFLAG_RD, + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, xnb, 0, xnb_unit_test_main, @@ -1168,7 +1168,7 @@ xnb_setup_sysctl(struct xnb_softc *xnb) SYSCTL_CHILDREN(sysctl_tree), OID_AUTO, "dump_rings", - CTLTYPE_STRING | CTLFLAG_RD, + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, xnb, 0, xnb_dump_rings, Modified: head/sys/dev/xen/xenstore/xenstore.c == --- head/sys/dev/xen/xenstore/xenstore.cTue Feb 25 17:26:10 2020 (r358315) +++ head/sys/dev/xen/xenstore/xenstore.cTue Feb 25 19:04:39 2020 (r358316) @@ -1241,7 +1241,8 @@ DRIVER_MODULE(xenstore, xenpv, xenstore_driver, xensto /*--- Sysctl Data */ /* XXX Shouldn't the node be somewhere else? */ -SYSCTL_NODE(_dev, OID_AUTO, xen, CTLFLAG_RD, NULL, "Xen"); +SYSCTL_NODE(_dev, OID_AUTO, xen, CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, +"Xen"); SYSCTL_INT(_dev_xen, OID_AUTO, xsd_port, CTLFLAG_RD, &xs.evtchn, 0, ""); SYSCTL_ULONG(_dev_xen, OID_AUTO, xsd_kva, CTLFLAG_RD, (u_long *) &xen_store, 0, ""); Modified: head/sys/xen/xenbus/xenbusb.c == --
svn commit: r358286 - in head/sys/dev: e1000 ixgbe ixl
Author: kaktus Date: Mon Feb 24 10:51:26 2020 New Revision: 358286 URL: https://svnweb.freebsd.org/changeset/base/358286 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (15 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Modified: head/sys/dev/e1000/if_em.c head/sys/dev/ixgbe/if_bypass.c head/sys/dev/ixgbe/if_ix.c head/sys/dev/ixgbe/if_ixv.c head/sys/dev/ixl/if_iavf.c head/sys/dev/ixl/if_ixl.c head/sys/dev/ixl/ixl_pf_main.c head/sys/dev/ixl/ixl_txrx.c Modified: head/sys/dev/e1000/if_em.c == --- head/sys/dev/e1000/if_em.c Mon Feb 24 10:47:18 2020(r358285) +++ head/sys/dev/e1000/if_em.c Mon Feb 24 10:51:26 2020(r358286) @@ -459,7 +459,8 @@ static driver_t igb_if_driver = { #define CSUM_TSO 0 #endif -static SYSCTL_NODE(_hw, OID_AUTO, em, CTLFLAG_RD, 0, "EM driver parameters"); +static SYSCTL_NODE(_hw, OID_AUTO, em, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, +"EM driver parameters"); static int em_disable_crc_stripping = 0; SYSCTL_INT(_hw_em, OID_AUTO, disable_crc_stripping, CTLFLAG_RDTUN, @@ -785,27 +786,29 @@ em_if_attach_pre(if_ctx_t ctx) /* SYSCTL stuff */ SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "nvm", CTLTYPE_INT|CTLFLAG_RW, adapter, 0, - em_sysctl_nvm_info, "I", "NVM Information"); + OID_AUTO, "nvm", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + adapter, 0, em_sysctl_nvm_info, "I", "NVM Information"); SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "debug", CTLTYPE_INT|CTLFLAG_RW, adapter, 0, - em_sysctl_debug_info, "I", "Debug Information"); + OID_AUTO, "debug", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + adapter, 0, em_sysctl_debug_info, "I", "Debug Information"); SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "fc", CTLTYPE_INT|CTLFLAG_RW, adapter, 0, - em_set_flowcntl, "I", "Flow Control"); + OID_AUTO, "fc", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + adapter, 0, em_set_flowcntl, "I", "Flow Control"); SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "reg_dump", CTLTYPE_STRING | CTLFLAG_RD, adapter, 0, + OID_AUTO, "reg_dump", + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, adapter, 0, em_get_regs, "A", "Dump Registers"); SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "rs_dump", CTLTYPE_INT | CTLFLAG_RW, adapter, 0, + OID_AUTO, "rs_dump", + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, adapter, 0, em_get_rs, "I", "Dump RS indexes"); /* Determine hardware and mac info */ @@ -1020,7 +1023,8 @@ em_if_attach_pre(if_ctx_t ctx) hw->dev_spec.ich8lan.eee_disable = eee_setting; SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "eee_control", CTLTYPE_INT|CTLFLAG_RW, + OID_AUTO, "eee_control", + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, adapter, 0, em_sysctl_eee, "I", "Disable Energy Efficient Ethernet"); @@ -4081,13 +4085,13 @@ em_add_hw_stats(struct adapter *adapter) CTLFLAG_RD, &adapter->watchdog_events, "Watchdog timeouts"); SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "device_control", - CTLTYPE_UINT | CTLFLAG_RD, adapter, E1000_CTRL, - em_sysctl_reg_handler, "IU", - "Device Control Register"); + CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, + adapter, E1000_CTRL, em_sysctl_reg_handler, "IU", + "Device Control Register"); SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "rx_control", - CTLTYPE_UINT | CTLFLAG_RD, adapter, E1000_RCTL, - em_sysctl_reg_handler, "IU", - "Receiver Control Register"); + CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, + adapter, E1000_RCTL, em_sysctl_reg_handler, "IU", + "Receiver Control Register"); SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "fc_high_water", CTLFLAG_RD, &adapter->hw.fc.high_water, 0, "Flow Control High Water
svn commit: r358285 - in head/sys: netinet netinet/libalias netinet6
Author: kaktus Date: Mon Feb 24 10:47:18 2020 New Revision: 358285 URL: https://svnweb.freebsd.org/changeset/base/358285 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (14 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Approved by: kib (mentor, blanket) Differential Revision:https://reviews.freebsd.org/D23639 Modified: head/sys/netinet/libalias/alias_sctp.c head/sys/netinet/sctp_sysctl.c head/sys/netinet/sctp_usrreq.c head/sys/netinet6/sctp6_usrreq.c Modified: head/sys/netinet/libalias/alias_sctp.c == --- head/sys/netinet/libalias/alias_sctp.c Mon Feb 24 10:45:22 2020 (r358284) +++ head/sys/netinet/libalias/alias_sctp.c Mon Feb 24 10:47:18 2020 (r358285) @@ -367,44 +367,68 @@ SYSCTL_DECL(_net_inet); SYSCTL_DECL(_net_inet_ip); SYSCTL_DECL(_net_inet_ip_alias); -static SYSCTL_NODE(_net_inet_ip_alias, OID_AUTO, sctp, CTLFLAG_RW, NULL, +static SYSCTL_NODE(_net_inet_ip_alias, OID_AUTO, sctp, +CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, "SCTP NAT"); -SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, log_level, CTLTYPE_UINT | CTLFLAG_RW, +SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, log_level, +CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &sysctl_log_level, 0, sysctl_chg_loglevel, "IU", "Level of detail (0 - default, 1 - event, 2 - info, 3 - detail, 4 - debug, 5 - max debug)"); -SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, init_timer, CTLTYPE_UINT | CTLFLAG_RW, +SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, init_timer, +CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &sysctl_init_timer, 0, sysctl_chg_timer, "IU", "Timeout value (s) while waiting for (INIT-ACK|AddIP-ACK)"); -SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, up_timer, CTLTYPE_UINT | CTLFLAG_RW, +SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, up_timer, +CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &sysctl_up_timer, 0, sysctl_chg_timer, "IU", "Timeout value (s) to keep an association up with no traffic"); -SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, shutdown_timer, CTLTYPE_UINT | CTLFLAG_RW, +SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, shutdown_timer, +CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &sysctl_shutdown_timer, 0, sysctl_chg_timer, "IU", "Timeout value (s) while waiting for SHUTDOWN-COMPLETE"); -SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, holddown_timer, CTLTYPE_UINT | CTLFLAG_RW, +SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, holddown_timer, +CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &sysctl_holddown_timer, 0, sysctl_chg_timer, "IU", "Hold association in table for this many seconds after receiving a SHUTDOWN-COMPLETE"); -SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, hashtable_size, CTLTYPE_UINT | CTLFLAG_RW, +SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, hashtable_size, +CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &sysctl_hashtable_size, 0, sysctl_chg_hashtable_size, "IU", "Size of hash tables used for NAT lookups (100 < prime_number > 101)"); -SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, error_on_ootb, CTLTYPE_UINT | CTLFLAG_RW, +SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, error_on_ootb, +CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &sysctl_error_on_ootb, 0, sysctl_chg_error_on_ootb, "IU", -"ErrorM sent on receipt of ootb packet:\n\t0 - none,\n\t1 - to local only,\n\t2 - to local and global if a partial association match,\n\t3 - to local and global (DoS risk)"); -SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, accept_global_ootb_addip, CTLTYPE_UINT | CTLFLAG_RW, +"ErrorM sent on receipt of ootb packet:\n\t0 - none,\n" +"\t1 - to local only,\n" +"\t2 - to local and global if a partial association match,\n" +"\t3 - to local and global (DoS risk)"); +SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, accept_global_ootb_addip, +CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &sysctl_accept_global_ootb_addip, 0, sysctl_chg_accept_global_ootb_addip, "IU", -"NAT response to receipt of global OOTB AddIP:\n\t0 - No response,\n\t1 - NAT will accept OOTB global AddIP messages for processing (Security risk)"); -SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, initialising_chunk_proc_limit, CTLTYPE_UINT | CTLFLAG_RW, -&sysctl_initialising_chunk_proc_limit, 0, sysctl_chg_initialising_chunk_proc_limit, "IU", -"Number of chunks that should be processed if there is no current association found:\n\t > 0 (A high value is a DoS risk)"); -SYSCTL_PROC(_net_inet_ip_alias_sctp, OID_AUTO, chunk_proc_limit, CTLTYPE_UINT | CTLFLAG_RW, +"NAT resp
svn commit: r358284 - in head/sys: arm/allwinner arm64/rockchip
Author: kaktus Date: Mon Feb 24 10:45:22 2020 New Revision: 358284 URL: https://svnweb.freebsd.org/changeset/base/358284 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (13 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Approved by: kib (mentor, blanket) Differential Revision:https://reviews.freebsd.org/D23635 Modified: head/sys/arm/allwinner/aw_sid.c head/sys/arm/allwinner/aw_thermal.c head/sys/arm/allwinner/aw_ts.c head/sys/arm/allwinner/axp209.c head/sys/arm/allwinner/axp81x.c head/sys/arm/allwinner/if_emac.c head/sys/arm64/rockchip/rk_tsadc.c Modified: head/sys/arm/allwinner/aw_sid.c == --- head/sys/arm/allwinner/aw_sid.c Mon Feb 24 10:42:56 2020 (r358283) +++ head/sys/arm/allwinner/aw_sid.c Mon Feb 24 10:45:22 2020 (r358284) @@ -278,7 +278,7 @@ aw_sid_attach(device_t dev) SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, sc->sid_conf->efuses[i].name, - CTLTYPE_STRING | CTLFLAG_RD, + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, dev, sc->sid_conf->efuses[i].id, aw_sid_sysctl, "A", sc->sid_conf->efuses[i].desc); } Modified: head/sys/arm/allwinner/aw_thermal.c == --- head/sys/arm/allwinner/aw_thermal.c Mon Feb 24 10:42:56 2020 (r358283) +++ head/sys/arm/allwinner/aw_thermal.c Mon Feb 24 10:45:22 2020 (r358284) @@ -676,7 +676,7 @@ aw_thermal_attach(device_t dev) SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, sc->conf->sensors[i].name, - CTLTYPE_INT | CTLFLAG_RD, + CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, sc, i, aw_thermal_sysctl, "IK0", sc->conf->sensors[i].desc); Modified: head/sys/arm/allwinner/aw_ts.c == --- head/sys/arm/allwinner/aw_ts.c Mon Feb 24 10:42:56 2020 (r358283) +++ head/sys/arm/allwinner/aw_ts.c Mon Feb 24 10:45:22 2020 (r358284) @@ -204,7 +204,8 @@ aw_ts_attach(device_t dev) /* Add sysctl */ SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "temperature", CTLTYPE_INT | CTLFLAG_RD, + OID_AUTO, "temperature", + CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, &sc->temp_data, 0, sysctl_handle_int, "IK3", "CPU Temperature"); Modified: head/sys/arm/allwinner/axp209.c == --- head/sys/arm/allwinner/axp209.c Mon Feb 24 10:42:56 2020 (r358283) +++ head/sys/arm/allwinner/axp209.c Mon Feb 24 10:45:22 2020 (r358284) @@ -1268,7 +1268,7 @@ axp2xx_start(void *pdev) SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, sc->sensors[i].name, - CTLTYPE_INT | CTLFLAG_RD, + CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, dev, sc->sensors[i].id, axp2xx_sysctl, sc->sensors[i].format, sc->sensors[i].desc); Modified: head/sys/arm/allwinner/axp81x.c == --- head/sys/arm/allwinner/axp81x.c Mon Feb 24 10:42:56 2020 (r358283) +++ head/sys/arm/allwinner/axp81x.c Mon Feb 24 10:45:22 2020 (r358284) @@ -1538,7 +1538,7 @@ axp8xx_attach(device_t dev) SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, sc->sensors[i].name, - CTLTYPE_INT | CTLFLAG_RD, + CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, dev, sc->sensors[i].id, axp8xx_sysctl, sc->sensors[i].format, sc->sensors[i].desc); @@ -1546,7 +1546,7 @@ axp8xx_attach(device_t dev) SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "batchargecurrentstep", - CTLTYPE_INT | CTLFLAG_RW, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, dev, 0, ax
svn commit: r358283 - head/sys/geom/eli
Author: kaktus Date: Mon Feb 24 10:42:56 2020 New Revision: 358283 URL: https://svnweb.freebsd.org/changeset/base/358283 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (12 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Approved by: kib (mentor, blanket) Differential Revision:https://reviews.freebsd.org/D23637 Modified: head/sys/geom/eli/g_eli.c Modified: head/sys/geom/eli/g_eli.c == --- head/sys/geom/eli/g_eli.c Mon Feb 24 10:42:37 2020(r358282) +++ head/sys/geom/eli/g_eli.c Mon Feb 24 10:42:56 2020(r358283) @@ -63,7 +63,8 @@ FEATURE(geom_eli, "GEOM crypto module"); MALLOC_DEFINE(M_ELI, "eli data", "GEOM_ELI Data"); SYSCTL_DECL(_kern_geom); -SYSCTL_NODE(_kern_geom, OID_AUTO, eli, CTLFLAG_RW, 0, "GEOM_ELI stuff"); +SYSCTL_NODE(_kern_geom, OID_AUTO, eli, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, +"GEOM_ELI stuff"); static int g_eli_version = G_ELI_VERSION; SYSCTL_INT(_kern_geom_eli, OID_AUTO, version, CTLFLAG_RD, &g_eli_version, 0, "GELI version"); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r358280 - head/sys/dev/ofw
Author: kaktus Date: Mon Feb 24 10:41:22 2020 New Revision: 358280 URL: https://svnweb.freebsd.org/changeset/base/358280 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (11 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Approved by: kib (mentor, blanket) Differential Revision:https://reviews.freebsd.org/D23636 Modified: head/sys/dev/ofw/ofw_fdt.c Modified: head/sys/dev/ofw/ofw_fdt.c == --- head/sys/dev/ofw/ofw_fdt.c Mon Feb 24 10:40:35 2020(r358279) +++ head/sys/dev/ofw/ofw_fdt.c Mon Feb 24 10:41:22 2020(r358280) @@ -123,8 +123,8 @@ sysctl_register_fdt_oid(void *arg) return; SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_fdt), OID_AUTO, "dtb", - CTLTYPE_OPAQUE | CTLFLAG_RD, NULL, 0, sysctl_handle_dtb, "", - "Device Tree Blob"); + CTLTYPE_OPAQUE | CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, 0, + sysctl_handle_dtb, "", "Device Tree Blob"); } SYSINIT(dtb_oid, SI_SUB_KMEM, SI_ORDER_ANY, sysctl_register_fdt_oid, NULL); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r358277 - head/sys/fs/pseudofs
Author: kaktus Date: Mon Feb 24 10:37:56 2020 New Revision: 358277 URL: https://svnweb.freebsd.org/changeset/base/358277 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (10 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Approved by: kib (mentor, blanket) Differential Revision:https://reviews.freebsd.org/D23629 Modified: head/sys/fs/pseudofs/pseudofs.c head/sys/fs/pseudofs/pseudofs_vncache.c Modified: head/sys/fs/pseudofs/pseudofs.c == --- head/sys/fs/pseudofs/pseudofs.c Mon Feb 24 10:35:58 2020 (r358276) +++ head/sys/fs/pseudofs/pseudofs.c Mon Feb 24 10:37:56 2020 (r358277) @@ -51,7 +51,7 @@ __FBSDID("$FreeBSD$"); static MALLOC_DEFINE(M_PFSNODES, "pfs_nodes", "pseudofs nodes"); -SYSCTL_NODE(_vfs, OID_AUTO, pfs, CTLFLAG_RW, 0, +SYSCTL_NODE(_vfs, OID_AUTO, pfs, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, "pseudofs"); #ifdef PSEUDOFS_TRACE Modified: head/sys/fs/pseudofs/pseudofs_vncache.c == --- head/sys/fs/pseudofs/pseudofs_vncache.c Mon Feb 24 10:35:58 2020 (r358276) +++ head/sys/fs/pseudofs/pseudofs_vncache.c Mon Feb 24 10:37:56 2020 (r358277) @@ -54,7 +54,7 @@ static eventhandler_tag pfs_exit_tag; static void pfs_exit(void *arg, struct proc *p); static void pfs_purge_all(void); -static SYSCTL_NODE(_vfs_pfs, OID_AUTO, vncache, CTLFLAG_RW, 0, +static SYSCTL_NODE(_vfs_pfs, OID_AUTO, vncache, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, "pseudofs vnode cache"); static int pfs_vncache_entries; ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r358276 - head/sys/contrib/ipfilter/netinet
Author: kaktus Date: Mon Feb 24 10:35:58 2020 New Revision: 358276 URL: https://svnweb.freebsd.org/changeset/base/358276 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (8 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Approved by: kib (mentor, blanket) Differential Revision:https://reviews.freebsd.org/D23628 Modified: head/sys/contrib/ipfilter/netinet/mlfk_ipl.c Modified: head/sys/contrib/ipfilter/netinet/mlfk_ipl.c == --- head/sys/contrib/ipfilter/netinet/mlfk_ipl.cMon Feb 24 10:33:51 2020(r358275) +++ head/sys/contrib/ipfilter/netinet/mlfk_ipl.cMon Feb 24 10:35:58 2020(r358276) @@ -83,24 +83,30 @@ static int ipfwrite __P((dev_t, struct uio *, int)); SYSCTL_DECL(_net_inet); #define SYSCTL_IPF(parent, nbr, name, access, ptr, val, descr) \ - SYSCTL_OID(parent, nbr, name, CTLTYPE_INT|CTLFLAG_VNET|access, \ - ptr, val, sysctl_ipf_int, "I", descr) +SYSCTL_OID(parent, nbr, name, \ +CTLTYPE_INT | CTLFLAG_VNET | CTLFLAG_NEEDGIANT | access, \ +ptr, val, sysctl_ipf_int, "I", descr) #define SYSCTL_DYN_IPF_NAT(parent, nbr, name, access,ptr, val, descr) \ - SYSCTL_ADD_OID(&ipf_clist, SYSCTL_STATIC_CHILDREN(parent), nbr, name, \ - CTLFLAG_DYN|CTLTYPE_INT|CTLFLAG_VNET|access, ptr, val, sysctl_ipf_int_nat, "I", descr) +SYSCTL_ADD_OID(&ipf_clist, SYSCTL_STATIC_CHILDREN(parent), nbr, name, \ +CTLFLAG_DYN | CTLTYPE_INT | CTLFLAG_VNET | CTLFLAG_NEEDGIANT |access, \ +ptr, val, sysctl_ipf_int_nat, "I", descr) #define SYSCTL_DYN_IPF_STATE(parent, nbr, name, access,ptr, val, descr) \ - SYSCTL_ADD_OID(&ipf_clist, SYSCTL_STATIC_CHILDREN(parent), nbr, name, \ - CTLFLAG_DYN|CTLTYPE_INT|CTLFLAG_VNET|access, ptr, val, sysctl_ipf_int_state, "I", descr) +SYSCTL_ADD_OID(&ipf_clist, SYSCTL_STATIC_CHILDREN(parent), nbr, name, \ +CTLFLAG_DYN | CTLTYPE_INT | CTLFLAG_VNET | CTLFLAG_NEEDGIANT | access, \ +ptr, val, sysctl_ipf_int_state, "I", descr) #define SYSCTL_DYN_IPF_FRAG(parent, nbr, name, access,ptr, val, descr) \ - SYSCTL_ADD_OID(&ipf_clist, SYSCTL_STATIC_CHILDREN(parent), nbr, name, \ - CTLFLAG_DYN|CTLTYPE_INT|CTLFLAG_VNET|access, ptr, val, sysctl_ipf_int_frag, "I", descr) +SYSCTL_ADD_OID(&ipf_clist, SYSCTL_STATIC_CHILDREN(parent), nbr, name, \ +CTLFLAG_DYN | CTLTYPE_INT | CTLFLAG_VNET | CTLFLAG_NEEDGIANT | access, \ + ptr, val, sysctl_ipf_int_frag, "I", descr) #define SYSCTL_DYN_IPF_AUTH(parent, nbr, name, access,ptr, val, descr) \ - SYSCTL_ADD_OID(&ipf_clist, SYSCTL_STATIC_CHILDREN(parent), nbr, name, \ - CTLFLAG_DYN|CTLTYPE_INT|CTLFLAG_VNET|access, ptr, val, sysctl_ipf_int_auth, "I", descr) +SYSCTL_ADD_OID(&ipf_clist, SYSCTL_STATIC_CHILDREN(parent), nbr, name, \ +CTLFLAG_DYN | CTLTYPE_INT | CTLFLAG_VNET | CTLFLAG_NEEDGIANT | access, \ + ptr, val, sysctl_ipf_int_auth, "I", descr) static struct sysctl_ctx_list ipf_clist; #defineCTLFLAG_OFF 0x0080 /* IPFilter must be disabled */ #defineCTLFLAG_RWO (CTLFLAG_RW|CTLFLAG_OFF) -SYSCTL_NODE(_net_inet, OID_AUTO, ipf, CTLFLAG_RW, 0, "IPF"); +SYSCTL_NODE(_net_inet, OID_AUTO, ipf, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, +"IPF"); SYSCTL_IPF(_net_inet_ipf, OID_AUTO, fr_flags, CTLFLAG_RW, &VNET_NAME(ipfmain.ipf_flags), 0, "IPF flags"); SYSCTL_IPF(_net_inet_ipf, OID_AUTO, ipf_pass, CTLFLAG_RW, &VNET_NAME(ipfmain.ipf_pass), 0, "default pass/block"); SYSCTL_IPF(_net_inet_ipf, OID_AUTO, fr_active, CTLFLAG_RD, &VNET_NAME(ipfmain.ipf_active), 0, "IPF is active"); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r358275 - head/sys/fs/fuse
Author: kaktus Date: Mon Feb 24 10:33:51 2020 New Revision: 358275 URL: https://svnweb.freebsd.org/changeset/base/358275 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (8 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Approved by: kib (mentor, blanket) Differential Revision:https://reviews.freebsd.org/D23627 Modified: head/sys/fs/fuse/fuse_main.c Modified: head/sys/fs/fuse/fuse_main.c == --- head/sys/fs/fuse/fuse_main.cMon Feb 24 09:58:57 2020 (r358274) +++ head/sys/fs/fuse/fuse_main.cMon Feb 24 10:33:51 2020 (r358275) @@ -105,8 +105,10 @@ static struct vfsconf fuse_vfsconf = { .vfc_flags = VFCF_JAIL | VFCF_SYNTHETIC }; -SYSCTL_NODE(_vfs, OID_AUTO, fusefs, CTLFLAG_RW, 0, "FUSE tunables"); -SYSCTL_NODE(_vfs_fusefs, OID_AUTO, stats, CTLFLAG_RW, 0, "FUSE statistics"); +SYSCTL_NODE(_vfs, OID_AUTO, fusefs, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, +"FUSE tunables"); +SYSCTL_NODE(_vfs_fusefs, OID_AUTO, stats, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, +"FUSE statistics"); SYSCTL_INT(_vfs_fusefs, OID_AUTO, kernelabi_major, CTLFLAG_RD, SYSCTL_NULL_INT_PTR, FUSE_KERNEL_VERSION, "FUSE kernel abi major version"); SYSCTL_INT(_vfs_fusefs, OID_AUTO, kernelabi_minor, CTLFLAG_RD, ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r358224 - in head/sys: dev/ath dev/ath/ath_rate/sample dev/otus net80211
Author: kaktus Date: Fri Feb 21 16:32:17 2020 New Revision: 358224 URL: https://svnweb.freebsd.org/changeset/base/358224 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (7 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Mark all low hanging fruits as MPSAFE. Reviewed by: markj Approved by: kib (mentor, blanket) Differential Revision:https://reviews.freebsd.org/D23626 Modified: head/sys/dev/ath/ah_osdep.c head/sys/dev/ath/ath_rate/sample/sample.c head/sys/dev/ath/if_ath_sysctl.c head/sys/dev/otus/if_otus.c head/sys/net80211/ieee80211_alq.c head/sys/net80211/ieee80211_amrr.c head/sys/net80211/ieee80211_freebsd.c head/sys/net80211/ieee80211_ht.c head/sys/net80211/ieee80211_hwmp.c head/sys/net80211/ieee80211_mesh.c head/sys/net80211/ieee80211_rssadapt.c head/sys/net80211/ieee80211_superg.c Modified: head/sys/dev/ath/ah_osdep.c == --- head/sys/dev/ath/ah_osdep.c Fri Feb 21 16:23:00 2020(r358223) +++ head/sys/dev/ath/ah_osdep.c Fri Feb 21 16:32:17 2020(r358224) @@ -93,8 +93,9 @@ externvoid DO_HALDEBUG(struct ath_hal *ah, u_int mask #endif /* AH_DEBUG */ /* NB: put this here instead of the driver to avoid circular references */ -SYSCTL_NODE(_hw, OID_AUTO, ath, CTLFLAG_RD, 0, "Atheros driver parameters"); -static SYSCTL_NODE(_hw_ath, OID_AUTO, hal, CTLFLAG_RD, 0, +SYSCTL_NODE(_hw, OID_AUTO, ath, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, +"Atheros driver parameters"); +static SYSCTL_NODE(_hw_ath, OID_AUTO, hal, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "Atheros HAL parameters"); #ifdef AH_DEBUG @@ -236,8 +237,10 @@ sysctl_hw_ath_hal_log(SYSCTL_HANDLER_ARGS) else return (ath_hal_setlogging(enable)); } -SYSCTL_PROC(_hw_ath_hal, OID_AUTO, alq, CTLTYPE_INT|CTLFLAG_RW, - 0, 0, sysctl_hw_ath_hal_log, "I", "Enable HAL register logging"); +SYSCTL_PROC(_hw_ath_hal, OID_AUTO, alq, +CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, +0, 0, sysctl_hw_ath_hal_log, "I", +"Enable HAL register logging"); SYSCTL_INT(_hw_ath_hal, OID_AUTO, alq_size, CTLFLAG_RW, &ath_hal_alq_qsize, 0, "In-memory log size (#records)"); SYSCTL_INT(_hw_ath_hal, OID_AUTO, alq_lost, CTLFLAG_RW, Modified: head/sys/dev/ath/ath_rate/sample/sample.c == --- head/sys/dev/ath/ath_rate/sample/sample.c Fri Feb 21 16:23:00 2020 (r358223) +++ head/sys/dev/ath/ath_rate/sample/sample.c Fri Feb 21 16:32:17 2020 (r358224) @@ -1364,17 +1364,17 @@ ath_rate_sysctlattach(struct ath_softc *sc, struct sam struct sysctl_oid *tree = device_get_sysctl_tree(sc->sc_dev); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "smoothing_rate", CTLTYPE_INT | CTLFLAG_RW, ssc, 0, - ath_rate_sysctl_smoothing_rate, "I", + "smoothing_rate", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, + ssc, 0, ath_rate_sysctl_smoothing_rate, "I", "sample: smoothing rate for avg tx time (%%)"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "sample_rate", CTLTYPE_INT | CTLFLAG_RW, ssc, 0, - ath_rate_sysctl_sample_rate, "I", + "sample_rate", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, + ssc, 0, ath_rate_sysctl_sample_rate, "I", "sample: percent air time devoted to sampling new rates (%%)"); /* XXX max_successive_failures, stale_failure_timeout, min_switch */ SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "sample_stats", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_rate_sysctl_stats, "I", "sample: print statistics"); + "sample_stats", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, + sc, 0, ath_rate_sysctl_stats, "I", "sample: print statistics"); } struct ath_ratectrl * Modified: head/sys/dev/ath/if_ath_sysctl.c == --- head/sys/dev/ath/if_ath_sysctl.cFri Feb 21 16:23:00 2020 (r358223) +++ head/sys/dev/ath/if_ath_sysctl.cFri Feb 21 16:32:17 2020 (r358224) @@ -786,16 +786,17 @@ ath_sysctl_alq_attach(struct ath_softc *sc) struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(sc->sc_dev); struct sysctl_oid_list *child = SYSCTL_CHILDREN(tree); - tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "alq", CTLFLAG_RD, - NULL, "Atheros ALQ logging parameters"); + tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "alq", + CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, + "Atheros ALQ logging paramete
svn commit: r358223 - in head/sys: netinet netpfil/pf
Author: kaktus Date: Fri Feb 21 16:23:00 2020 New Revision: 358223 URL: https://svnweb.freebsd.org/changeset/base/358223 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (6 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. Mark all nodes in pf, pfsync and carp as MPSAFE. Reviewed by: kp Approved by: kib (mentor, blanket) Differential Revision:https://reviews.freebsd.org/D23634 Modified: head/sys/netinet/ip_carp.c head/sys/netpfil/pf/if_pfsync.c head/sys/netpfil/pf/pf.c Modified: head/sys/netinet/ip_carp.c == --- head/sys/netinet/ip_carp.c Fri Feb 21 14:45:48 2020(r358222) +++ head/sys/netinet/ip_carp.c Fri Feb 21 16:23:00 2020(r358223) @@ -218,19 +218,22 @@ static int carp_allow_sysctl(SYSCTL_HANDLER_ARGS); static int carp_dscp_sysctl(SYSCTL_HANDLER_ARGS); static int carp_demote_adj_sysctl(SYSCTL_HANDLER_ARGS); -SYSCTL_NODE(_net_inet, IPPROTO_CARP, carp, CTLFLAG_RW, 0, "CARP"); +SYSCTL_NODE(_net_inet, IPPROTO_CARP, carp, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, +"CARP"); SYSCTL_PROC(_net_inet_carp, OID_AUTO, allow, -CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW, 0, 0, carp_allow_sysctl, "I", +CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, +0, 0, carp_allow_sysctl, "I", "Accept incoming CARP packets"); SYSCTL_PROC(_net_inet_carp, OID_AUTO, dscp, -CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW, 0, 0, carp_dscp_sysctl, "I", +CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, +0, 0, carp_dscp_sysctl, "I", "DSCP value for carp packets"); SYSCTL_INT(_net_inet_carp, OID_AUTO, preempt, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(carp_preempt), 0, "High-priority backup preemption mode"); SYSCTL_INT(_net_inet_carp, OID_AUTO, log, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(carp_log), 0, "CARP log level"); SYSCTL_PROC(_net_inet_carp, OID_AUTO, demotion, -CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW, +CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, 0, 0, carp_demote_adj_sysctl, "I", "Adjust demotion factor (skew of advskew)"); SYSCTL_INT(_net_inet_carp, OID_AUTO, senderr_demotion_factor, Modified: head/sys/netpfil/pf/if_pfsync.c == --- head/sys/netpfil/pf/if_pfsync.c Fri Feb 21 14:45:48 2020 (r358222) +++ head/sys/netpfil/pf/if_pfsync.c Fri Feb 21 16:23:00 2020 (r358223) @@ -273,7 +273,8 @@ static void pfsync_uninit(void); static unsigned long pfsync_buckets; -SYSCTL_NODE(_net, OID_AUTO, pfsync, CTLFLAG_RW, 0, "PFSYNC"); +SYSCTL_NODE(_net, OID_AUTO, pfsync, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, +"PFSYNC"); SYSCTL_STRUCT(_net_pfsync, OID_AUTO, stats, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(pfsyncstats), pfsyncstats, "PFSYNC statistics (struct pfsyncstats, net/if_pfsync.h)"); Modified: head/sys/netpfil/pf/pf.c == --- head/sys/netpfil/pf/pf.cFri Feb 21 14:45:48 2020(r358222) +++ head/sys/netpfil/pf/pf.cFri Feb 21 16:23:00 2020(r358223) @@ -369,7 +369,8 @@ VNET_DEFINE(struct pf_keyhash *, pf_keyhash); VNET_DEFINE(struct pf_idhash *, pf_idhash); VNET_DEFINE(struct pf_srchash *, pf_srchash); -SYSCTL_NODE(_net, OID_AUTO, pf, CTLFLAG_RW, 0, "pf(4)"); +SYSCTL_NODE(_net, OID_AUTO, pf, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, +"pf(4)"); u_long pf_hashmask; u_long pf_srchashmask; ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r358004 - in head/sys/dev: drm2 pci
Author: kaktus Date: Sun Feb 16 17:11:54 2020 New Revision: 358004 URL: https://svnweb.freebsd.org/changeset/base/358004 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (5 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Reviewed by: imp, kib Approved by: kib (mentor) Differential Revision:https://reviews.freebsd.org/D23633 Modified: head/sys/dev/drm2/drm_pci.c head/sys/dev/drm2/drm_sysctl.c head/sys/dev/pci/pci.c Modified: head/sys/dev/drm2/drm_pci.c == --- head/sys/dev/drm2/drm_pci.c Sun Feb 16 16:49:29 2020(r358003) +++ head/sys/dev/drm2/drm_pci.c Sun Feb 16 17:11:54 2020(r358004) @@ -42,7 +42,8 @@ __FBSDID("$FreeBSD$"); #include static int drm_msi = 1;/* Enable by default. */ -SYSCTL_NODE(_hw, OID_AUTO, drm, CTLFLAG_RW, NULL, "DRM device"); +SYSCTL_NODE(_hw, OID_AUTO, drm, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, +"DRM device"); SYSCTL_INT(_hw_drm, OID_AUTO, msi, CTLFLAG_RDTUN, &drm_msi, 1, "Enable MSI interrupts for drm devices"); Modified: head/sys/dev/drm2/drm_sysctl.c == --- head/sys/dev/drm2/drm_sysctl.c Sun Feb 16 16:49:29 2020 (r358003) +++ head/sys/dev/drm2/drm_sysctl.c Sun Feb 16 17:11:54 2020 (r358004) @@ -69,7 +69,7 @@ int drm_sysctl_init(struct drm_device *dev) /* Add the sysctl node for DRI if it doesn't already exist */ drioid = SYSCTL_ADD_NODE(&info->ctx, SYSCTL_CHILDREN(&sysctl___hw), OID_AUTO, - "dri", CTLFLAG_RW, NULL, "DRI Graphics"); + "dri", CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, "DRI Graphics"); if (!drioid) { free(dev->sysctl, DRM_MEM_DRIVER); dev->sysctl = NULL; @@ -92,23 +92,17 @@ int drm_sysctl_init(struct drm_device *dev) info->name[0] = '0' + i; info->name[1] = 0; top = SYSCTL_ADD_NODE(&info->ctx, SYSCTL_CHILDREN(drioid), - OID_AUTO, info->name, CTLFLAG_RW, NULL, NULL); + OID_AUTO, info->name, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, NULL); if (!top) { drm_sysctl_cleanup(dev); return (-ENOMEM); } for (i = 0; i < DRM_SYSCTL_ENTRIES; i++) { - oid = SYSCTL_ADD_OID(&info->ctx, - SYSCTL_CHILDREN(top), - OID_AUTO, - drm_sysctl_list[i].name, - CTLTYPE_STRING | CTLFLAG_RD, - dev, - 0, - drm_sysctl_list[i].f, - "A", - NULL); + oid = SYSCTL_ADD_OID(&info->ctx, SYSCTL_CHILDREN(top), + OID_AUTO, drm_sysctl_list[i].name, + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, + dev, 0, drm_sysctl_list[i].f, "A", NULL); if (!oid) { drm_sysctl_cleanup(dev); return (-ENOMEM); Modified: head/sys/dev/pci/pci.c == --- head/sys/dev/pci/pci.c Sun Feb 16 16:49:29 2020(r358003) +++ head/sys/dev/pci/pci.c Sun Feb 16 17:11:54 2020(r358004) @@ -332,7 +332,8 @@ uint32_t pci_numdevs = 0; static int pcie_chipset, pcix_chipset; /* sysctl vars */ -SYSCTL_NODE(_hw, OID_AUTO, pci, CTLFLAG_RD, 0, "PCI bus tuning parameters"); +SYSCTL_NODE(_hw, OID_AUTO, pci, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, +"PCI bus tuning parameters"); static int pci_enable_io_modes = 1; SYSCTL_INT(_hw_pci, OID_AUTO, enable_io_modes, CTLFLAG_RWTUN, ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r357974 - in head/sys/amd64/vmm: . amd intel io
Author: kaktus Date: Sat Feb 15 18:57:49 2020 New Revision: 357974 URL: https://svnweb.freebsd.org/changeset/base/357974 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (4 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Reviewed by: kib Approved by: kib (mentor) Differential Revision:https://reviews.freebsd.org/D23625 X-Generally looks fine: jhb Modified: head/sys/amd64/vmm/amd/amdvi_hw.c head/sys/amd64/vmm/amd/npt.c head/sys/amd64/vmm/amd/svm.c head/sys/amd64/vmm/intel/ept.c head/sys/amd64/vmm/intel/vmx.c head/sys/amd64/vmm/io/iommu.c head/sys/amd64/vmm/io/ppt.c head/sys/amd64/vmm/io/vrtc.c head/sys/amd64/vmm/vmm.c head/sys/amd64/vmm/vmm_dev.c head/sys/amd64/vmm/x86.c Modified: head/sys/amd64/vmm/amd/amdvi_hw.c == --- head/sys/amd64/vmm/amd/amdvi_hw.c Sat Feb 15 18:54:59 2020 (r357973) +++ head/sys/amd64/vmm/amd/amdvi_hw.c Sat Feb 15 18:57:49 2020 (r357974) @@ -58,7 +58,8 @@ __FBSDID("$FreeBSD$"); #include "amdvi_priv.h" SYSCTL_DECL(_hw_vmm); -SYSCTL_NODE(_hw_vmm, OID_AUTO, amdvi, CTLFLAG_RW, NULL, NULL); +SYSCTL_NODE(_hw_vmm, OID_AUTO, amdvi, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, +NULL); #define MOD_INC(a, s, m) (((a) + (s)) % ((m) * (s))) #define MOD_DEC(a, s, m) (((a) - (s)) % ((m) * (s))) @@ -947,16 +948,16 @@ amdvi_add_sysctl(struct amdvi_softc *softc) SYSCTL_ADD_U16(ctx, child, OID_AUTO, "end_dev_rid", CTLFLAG_RD, &softc->end_dev_rid, 0, "End of device under this IOMMU"); SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "command_head", - CTLTYPE_UINT | CTLFLAG_RD, softc, 0, + CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_MPSAFE, softc, 0, amdvi_handle_sysctl, "IU", "Command head"); SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "command_tail", - CTLTYPE_UINT | CTLFLAG_RD, softc, 1, + CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_MPSAFE, softc, 1, amdvi_handle_sysctl, "IU", "Command tail"); SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "event_head", - CTLTYPE_UINT | CTLFLAG_RD, softc, 2, + CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_MPSAFE, softc, 2, amdvi_handle_sysctl, "IU", "Command head"); SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "event_tail", - CTLTYPE_UINT | CTLFLAG_RD, softc, 3, + CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_MPSAFE, softc, 3, amdvi_handle_sysctl, "IU", "Command tail"); } Modified: head/sys/amd64/vmm/amd/npt.c == --- head/sys/amd64/vmm/amd/npt.cSat Feb 15 18:54:59 2020 (r357973) +++ head/sys/amd64/vmm/amd/npt.cSat Feb 15 18:57:49 2020 (r357974) @@ -41,7 +41,8 @@ __FBSDID("$FreeBSD$"); #include "npt.h" SYSCTL_DECL(_hw_vmm); -SYSCTL_NODE(_hw_vmm, OID_AUTO, npt, CTLFLAG_RW, NULL, NULL); +SYSCTL_NODE(_hw_vmm, OID_AUTO, npt, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, +NULL); static int npt_flags; SYSCTL_INT(_hw_vmm_npt, OID_AUTO, pmap_flags, CTLFLAG_RD, Modified: head/sys/amd64/vmm/amd/svm.c == --- head/sys/amd64/vmm/amd/svm.cSat Feb 15 18:54:59 2020 (r357973) +++ head/sys/amd64/vmm/amd/svm.cSat Feb 15 18:57:49 2020 (r357974) @@ -67,7 +67,8 @@ __FBSDID("$FreeBSD$"); #include "npt.h" SYSCTL_DECL(_hw_vmm); -SYSCTL_NODE(_hw_vmm, OID_AUTO, svm, CTLFLAG_RW, NULL, NULL); +SYSCTL_NODE(_hw_vmm, OID_AUTO, svm, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, +NULL); /* * SVM CPUID function 0x8000_000A, edx bit decoding. Modified: head/sys/amd64/vmm/intel/ept.c == --- head/sys/amd64/vmm/intel/ept.c Sat Feb 15 18:54:59 2020 (r357973) +++ head/sys/amd64/vmm/intel/ept.c Sat Feb 15 18:57:49 2020 (r357974) @@ -68,7 +68,8 @@ __FBSDID("$FreeBSD$"); #defineEPT_ENABLE_AD_BITS (1 << 6) SYSCTL_DECL(_hw_vmm); -SYSCTL_NODE(_hw_vmm, OID_AUTO, ept, CTLFLAG_RW, NULL, NULL); +SYSCTL_NODE(_hw_vmm, OID_AUTO, ept, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, +NULL); static int ept_enable_ad_bits; Modified: head/sys/amd64/vmm/intel/vmx.c == --- head/sys/amd64/vmm/intel/vmx.c Sat Feb 15 18:54:59 2020 (r357973) +++ head/sys/amd64/vmm/intel/vmx.c Sat Feb 15 18:57:49 2020 (r357974) @@ -123,7 +123,8 @@ static MALLOC_DEFINE(M_VMX, "vmx", "vmx"); static MALLOC_DEFINE(M_VLAPIC, "vlapic", "vlapic"); SYSCTL_DEC
svn commit: r357973 - head/sys/compat/linuxkpi/common/src
Author: kaktus Date: Sat Feb 15 18:54:59 2020 New Revision: 357973 URL: https://svnweb.freebsd.org/changeset/base/357973 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (2 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Reviewed by: hselasky, kib, zeising Approved by: kib (mentor) Differential Revision:https://reviews.freebsd.org/D23631 Modified: head/sys/compat/linuxkpi/common/src/linux_compat.c Modified: head/sys/compat/linuxkpi/common/src/linux_compat.c == --- head/sys/compat/linuxkpi/common/src/linux_compat.c Sat Feb 15 18:52:12 2020(r357972) +++ head/sys/compat/linuxkpi/common/src/linux_compat.c Sat Feb 15 18:54:59 2020(r357973) @@ -91,7 +91,8 @@ __FBSDID("$FreeBSD$"); #include #endif -SYSCTL_NODE(_compat, OID_AUTO, linuxkpi, CTLFLAG_RW, 0, "LinuxKPI parameters"); +SYSCTL_NODE(_compat, OID_AUTO, linuxkpi, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, +"LinuxKPI parameters"); int linuxkpi_debug; SYSCTL_INT(_compat_linuxkpi, OID_AUTO, debug, CTLFLAG_RWTUN, @@ -2441,8 +2442,8 @@ linux_compat_init(void *arg) kobject_init(&linux_root_device.kobj, &linux_dev_ktype); kobject_set_name(&linux_root_device.kobj, "device"); linux_root_device.kobj.oidp = SYSCTL_ADD_NODE(NULL, - SYSCTL_CHILDREN(rootoid), OID_AUTO, "device", CTLFLAG_RD, NULL, - "device"); + SYSCTL_CHILDREN(rootoid), OID_AUTO, "device", + CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "device"); linux_root_device.bsddev = root_bus; linux_class_misc.name = "misc"; class_register(&linux_class_misc); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r357972 - in head/sys/dev: sound/usb usb usb/controller usb/gadget usb/input usb/misc usb/net usb/serial usb/storage usb/template usb/video usb/wlan
Author: kaktus Date: Sat Feb 15 18:52:12 2020 New Revision: 357972 URL: https://svnweb.freebsd.org/changeset/base/357972 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (2 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Reviewed by: hselasky, kib Approved by: kib (mentor) Differential Revision:https://reviews.freebsd.org/D23632 Modified: head/sys/dev/sound/usb/uaudio.c head/sys/dev/usb/controller/atmegadci.c head/sys/dev/usb/controller/avr32dci.c head/sys/dev/usb/controller/dwc_otg.c head/sys/dev/usb/controller/ehci.c head/sys/dev/usb/controller/musb_otg.c head/sys/dev/usb/controller/ohci.c head/sys/dev/usb/controller/saf1761_otg.c head/sys/dev/usb/controller/uhci.c head/sys/dev/usb/controller/usb_controller.c head/sys/dev/usb/controller/uss820dci.c head/sys/dev/usb/controller/xhci.c head/sys/dev/usb/gadget/g_audio.c head/sys/dev/usb/gadget/g_keyboard.c head/sys/dev/usb/gadget/g_modem.c head/sys/dev/usb/gadget/g_mouse.c head/sys/dev/usb/input/atp.c head/sys/dev/usb/input/uep.c head/sys/dev/usb/input/uhid.c head/sys/dev/usb/input/ukbd.c head/sys/dev/usb/input/ums.c head/sys/dev/usb/input/wmt.c head/sys/dev/usb/input/wsp.c head/sys/dev/usb/misc/udbp.c head/sys/dev/usb/misc/ugold.c head/sys/dev/usb/net/if_aue.c head/sys/dev/usb/net/if_axe.c head/sys/dev/usb/net/if_axge.c head/sys/dev/usb/net/if_cdce.c head/sys/dev/usb/net/if_cdceem.c head/sys/dev/usb/net/if_cue.c head/sys/dev/usb/net/if_ipheth.c head/sys/dev/usb/net/if_kue.c head/sys/dev/usb/net/if_mos.c head/sys/dev/usb/net/if_muge.c head/sys/dev/usb/net/if_rue.c head/sys/dev/usb/net/if_smsc.c head/sys/dev/usb/net/if_udav.c head/sys/dev/usb/net/if_ure.c head/sys/dev/usb/net/if_urndis.c head/sys/dev/usb/net/if_usie.c head/sys/dev/usb/net/uhso.c head/sys/dev/usb/net/usb_ethernet.c head/sys/dev/usb/serial/u3g.c head/sys/dev/usb/serial/ubsa.c head/sys/dev/usb/serial/ubser.c head/sys/dev/usb/serial/uchcom.c head/sys/dev/usb/serial/ufoma.c head/sys/dev/usb/serial/uftdi.c head/sys/dev/usb/serial/ulpt.c head/sys/dev/usb/serial/umcs.c head/sys/dev/usb/serial/umodem.c head/sys/dev/usb/serial/umoscom.c head/sys/dev/usb/serial/uplcom.c head/sys/dev/usb/serial/usb_serial.c head/sys/dev/usb/serial/uslcom.c head/sys/dev/usb/serial/uvisor.c head/sys/dev/usb/serial/uvscom.c head/sys/dev/usb/storage/cfumass.c head/sys/dev/usb/storage/umass.c head/sys/dev/usb/storage/urio.c head/sys/dev/usb/storage/ustorage_fs.c head/sys/dev/usb/template/usb_template.c head/sys/dev/usb/template/usb_template_audio.c head/sys/dev/usb/template/usb_template_cdce.c head/sys/dev/usb/template/usb_template_cdceem.c head/sys/dev/usb/template/usb_template_kbd.c head/sys/dev/usb/template/usb_template_midi.c head/sys/dev/usb/template/usb_template_modem.c head/sys/dev/usb/template/usb_template_mouse.c head/sys/dev/usb/template/usb_template_msc.c head/sys/dev/usb/template/usb_template_mtp.c head/sys/dev/usb/template/usb_template_multi.c head/sys/dev/usb/template/usb_template_phone.c head/sys/dev/usb/template/usb_template_serialnet.c head/sys/dev/usb/usb_debug.c head/sys/dev/usb/usb_dev.c head/sys/dev/usb/usb_generic.c head/sys/dev/usb/usb_hub.c head/sys/dev/usb/usb_hub_acpi.c head/sys/dev/usb/usb_process.c head/sys/dev/usb/video/udl.c head/sys/dev/usb/wlan/if_rsu.c head/sys/dev/usb/wlan/if_rum.c head/sys/dev/usb/wlan/if_run.c head/sys/dev/usb/wlan/if_uath.c head/sys/dev/usb/wlan/if_upgt.c head/sys/dev/usb/wlan/if_ural.c head/sys/dev/usb/wlan/if_urtw.c head/sys/dev/usb/wlan/if_zyd.c Modified: head/sys/dev/sound/usb/uaudio.c == --- head/sys/dev/sound/usb/uaudio.c Sat Feb 15 18:48:38 2020 (r357971) +++ head/sys/dev/sound/usb/uaudio.c Sat Feb 15 18:52:12 2020 (r357972) @@ -102,7 +102,8 @@ static int uaudio_buffer_ms = 8; #ifdef USB_DEBUG static int uaudio_debug; -static SYSCTL_NODE(_hw_usb, OID_AUTO, uaudio, CTLFLAG_RW, 0, "USB uaudio"); +static SYSCTL_NODE(_hw_usb, OID_AUTO, uaudio, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, +"USB uaudio"); SYSCTL_INT(_hw_usb_uaudio, OID_AUTO, debug, CTLFLAG_RWTUN, &uaudio_debug, 0, "uaudio debug level"); @@ -133,8 +134,9 @@ uaudio_buffer_ms_sysctl(SYSCTL_HANDLER_ARGS) return (0); } -SYSCTL_PROC(_hw_usb_uaudio, OID_AUTO, buffer_ms, CTLTYPE_INT | CTLFLAG_RWTUN, -0, sizeof(int), uaudio_buffer_ms_sysctl, "I", +SYSCTL_PROC(_hw_usb_uaudio, OID_AUTO, buffer_ms, +CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, 0, sizeof(int), +uaudio_buffer_ms_sysctl, "I"
svn commit: r357971 - in head/sys: dev/iscsi fs/autofs kern
Author: kaktus Date: Sat Feb 15 18:48:38 2020 New Revision: 357971 URL: https://svnweb.freebsd.org/changeset/base/357971 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (1 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Reviewed by: kib, trasz Approved by: kib (mentor) Differential Revision:https://reviews.freebsd.org/D23640 Modified: head/sys/dev/iscsi/icl.c head/sys/dev/iscsi/iscsi.c head/sys/fs/autofs/autofs.c head/sys/kern/kern_rctl.c Modified: head/sys/dev/iscsi/icl.c == --- head/sys/dev/iscsi/icl.cSat Feb 15 18:37:26 2020(r357970) +++ head/sys/dev/iscsi/icl.cSat Feb 15 18:48:38 2020(r357971) @@ -75,7 +75,8 @@ static int sysctl_kern_icl_offloads(SYSCTL_HANDLER_ARG static MALLOC_DEFINE(M_ICL, "icl", "iSCSI Common Layer"); static struct icl_softc*sc; -SYSCTL_NODE(_kern, OID_AUTO, icl, CTLFLAG_RD, 0, "iSCSI Common Layer"); +SYSCTL_NODE(_kern, OID_AUTO, icl, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, +"iSCSI Common Layer"); int icl_debug = 1; SYSCTL_INT(_kern_icl, OID_AUTO, debug, CTLFLAG_RWTUN, &icl_debug, 0, "Enable debug messages"); Modified: head/sys/dev/iscsi/iscsi.c == --- head/sys/dev/iscsi/iscsi.c Sat Feb 15 18:37:26 2020(r357970) +++ head/sys/dev/iscsi/iscsi.c Sat Feb 15 18:48:38 2020(r357971) @@ -82,7 +82,8 @@ FEATURE(iscsi_kernel_proxy, "iSCSI initiator built wit */ static struct iscsi_softc *sc; -SYSCTL_NODE(_kern, OID_AUTO, iscsi, CTLFLAG_RD, 0, "iSCSI initiator"); +SYSCTL_NODE(_kern, OID_AUTO, iscsi, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, +"iSCSI initiator"); static int debug = 1; SYSCTL_INT(_kern_iscsi, OID_AUTO, debug, CTLFLAG_RWTUN, &debug, 0, "Enable debug messages"); Modified: head/sys/fs/autofs/autofs.c == --- head/sys/fs/autofs/autofs.c Sat Feb 15 18:37:26 2020(r357970) +++ head/sys/fs/autofs/autofs.c Sat Feb 15 18:48:38 2020(r357971) @@ -119,7 +119,8 @@ int autofs_sig_set[] = { struct autofs_softc*autofs_softc; -SYSCTL_NODE(_vfs, OID_AUTO, autofs, CTLFLAG_RD, 0, "Automounter filesystem"); +SYSCTL_NODE(_vfs, OID_AUTO, autofs, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, +"Automounter filesystem"); int autofs_debug = 1; TUNABLE_INT("vfs.autofs.debug", &autofs_debug); SYSCTL_INT(_vfs_autofs, OID_AUTO, debug, CTLFLAG_RWTUN, Modified: head/sys/kern/kern_rctl.c == --- head/sys/kern/kern_rctl.c Sat Feb 15 18:37:26 2020(r357970) +++ head/sys/kern/kern_rctl.c Sat Feb 15 18:48:38 2020(r357971) @@ -96,7 +96,8 @@ static int rctl_throttle_max_sysctl(SYSCTL_HANDLER_ARG static int rctl_throttle_pct_sysctl(SYSCTL_HANDLER_ARGS); static int rctl_throttle_pct2_sysctl(SYSCTL_HANDLER_ARGS); -SYSCTL_NODE(_kern_racct, OID_AUTO, rctl, CTLFLAG_RW, 0, "Resource Limits"); +SYSCTL_NODE(_kern_racct, OID_AUTO, rctl, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, +"Resource Limits"); SYSCTL_UINT(_kern_racct_rctl, OID_AUTO, maxbufsize, CTLFLAG_RWTUN, &rctl_maxbufsize, 0, "Maximum output buffer size"); SYSCTL_UINT(_kern_racct_rctl, OID_AUTO, log_rate_limit, CTLFLAG_RW, @@ -104,19 +105,23 @@ SYSCTL_UINT(_kern_racct_rctl, OID_AUTO, log_rate_limit SYSCTL_UINT(_kern_racct_rctl, OID_AUTO, devctl_rate_limit, CTLFLAG_RWTUN, &rctl_devctl_rate_limit, 0, "Maximum number of devctl messages per second"); SYSCTL_PROC(_kern_racct_rctl, OID_AUTO, throttle_min, -CTLTYPE_UINT | CTLFLAG_RWTUN, 0, 0, &rctl_throttle_min_sysctl, "IU", +CTLTYPE_UINT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, 0, 0, +&rctl_throttle_min_sysctl, "IU", "Shortest throttling duration, in hz"); TUNABLE_INT("kern.racct.rctl.throttle_min", &rctl_throttle_min); SYSCTL_PROC(_kern_racct_rctl, OID_AUTO, throttle_max, -CTLTYPE_UINT | CTLFLAG_RWTUN, 0, 0, &rctl_throttle_max_sysctl, "IU", +CTLTYPE_UINT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, 0, 0, +&rctl_throttle_max_sysctl, "IU", "Longest throttling duration, in hz"); TUNABLE_INT("kern.racct.rctl.throttle_max", &rctl_throttle_max); SYSCTL_PROC(_kern_racct_rctl, OID_AUTO, throttle_pct, -CTLTYPE_UINT | CTLFLAG_RWTUN, 0, 0, &rctl_throttle_pct_sysctl, "IU", +CTLTYPE_UINT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, 0, 0, +&rctl_throttle_pct_sysctl, "IU", "Throttling penalty for process consumption, in percent"); TUNABLE_INT("kern.racct.rctl.throttle_pct", &rctl_throttle_pct); SYSCTL_PROC(_kern_racct_rctl, OID_AUTO, throttle_pct2, -CTLTYPE_
svn commit: r357921 - head/sys/sys
Author: kaktus Date: Fri Feb 14 16:56:59 2020 New Revision: 357921 URL: https://svnweb.freebsd.org/changeset/base/357921 Log: sysctl(9): properly use xor in ENFORCE_FLAGS macro Assert on not specifying any of the (soon to be) required flags as well as specifying both of them. Pointed out by: cem, hselasky Reviewed by: hselasky, kib Approved by: kib (mentor) Differential Revision:https://reviews.freebsd.org/D23678 Modified: head/sys/sys/sysctl.h Modified: head/sys/sys/sysctl.h == --- head/sys/sys/sysctl.h Fri Feb 14 15:04:56 2020(r357920) +++ head/sys/sys/sysctl.h Fri Feb 14 16:56:59 2020(r357921) @@ -270,9 +270,9 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry); #define__DESCR(d) "" #endif -#ifdef notyet +#ifdef notyet #defineSYSCTL_ENFORCE_FLAGS(x) \ -_Static_assert(((CTLFLAG_MPSAFE ^ CTLFLAG_NEEDGIANT) & (x)), \ +_Static_assertx) & CTLFLAG_MPSAFE) != 0) ^ (((x) & CTLFLAG_NEEDGIANT) != 0), \ "Has to be either CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT") #else #defineSYSCTL_ENFORCE_FLAGS(x) ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r357614 - in head/sys: kern sys
Author: kaktus Date: Thu Feb 6 12:45:58 2020 New Revision: 357614 URL: https://svnweb.freebsd.org/changeset/base/357614 Log: sysctl(9): add CTLFLAG_NEEDGIANT flag Add CTLFLAG_NEEDGIANT flag (modelled after D_NEEDGIANT) that will be used to mark sysctls that still require locking Giant. Rewrite sysctl_handle_string() to use internal locking instead of locking Giant. Mark SYSCTL_STRING, SYSCTL_OPAQUE and their variants as MPSAFE. Add infrastructure support for enforcing proper use of CTLFLAG_NEEDGIANT and CTLFLAG_MPSAFE flags with SYSCTL_PROC and SYSCTL_NODE, not enabled yet. Reviewed by: kib (mentor) Approved by: kib (mentor) Differential Revision:https://reviews.freebsd.org/D23378 Modified: head/sys/kern/kern_sysctl.c head/sys/sys/sysctl.h Modified: head/sys/kern/kern_sysctl.c == --- head/sys/kern/kern_sysctl.c Thu Feb 6 10:11:41 2020(r357613) +++ head/sys/kern/kern_sysctl.c Thu Feb 6 12:45:58 2020(r357614) @@ -96,9 +96,13 @@ static MALLOC_DEFINE(M_SYSCTLTMP, "sysctltmp", "sysctl * The sysctlmemlock is used to limit the amount of user memory wired for * sysctl requests. This is implemented by serializing any userland * sysctl requests larger than a single page via an exclusive lock. + * + * The sysctlstringlock is used to protect concurrent access to writable + * string nodes in sysctl_handle_string(). */ static struct rmlock sysctllock; static struct sx __exclusive_cache_line sysctlmemlock; +static struct sx sysctlstringlock; #defineSYSCTL_WLOCK() rm_wlock(&sysctllock) #defineSYSCTL_WUNLOCK()rm_wunlock(&sysctllock) @@ -170,10 +174,16 @@ sysctl_root_handler_locked(struct sysctl_oid *oid, voi else SYSCTL_WUNLOCK(); - if (!(oid->oid_kind & CTLFLAG_MPSAFE)) + /* +* Treat set CTLFLAG_NEEDGIANT and unset CTLFLAG_MPSAFE flags the same, +* untill we're ready to remove all traces of Giant from sysctl(9). +*/ + if ((oid->oid_kind & CTLFLAG_NEEDGIANT) || + (!(oid->oid_kind & CTLFLAG_MPSAFE))) mtx_lock(&Giant); error = oid->oid_handler(oid, arg1, arg2, req); - if (!(oid->oid_kind & CTLFLAG_MPSAFE)) + if ((oid->oid_kind & CTLFLAG_NEEDGIANT) || + (!(oid->oid_kind & CTLFLAG_MPSAFE))) mtx_unlock(&Giant); KFAIL_POINT_ERROR(_debug_fail_point, sysctl_running, error); @@ -917,6 +927,7 @@ sysctl_register_all(void *arg) struct sysctl_oid **oidp; sx_init(&sysctlmemlock, "sysctl mem"); + sx_init(&sysctlstringlock, "sysctl string handler"); SYSCTL_INIT(); SYSCTL_WLOCK(); SET_FOREACH(oidp, sysctl_set) @@ -1632,48 +1643,69 @@ sysctl_handle_64(SYSCTL_HANDLER_ARGS) int sysctl_handle_string(SYSCTL_HANDLER_ARGS) { + char *tmparg; size_t outlen; int error = 0, ro_string = 0; /* +* If the sysctl isn't writable, microoptimise and treat it as a +* const string. * A zero-length buffer indicates a fixed size read-only * string. In ddb, don't worry about trying to make a malloced * snapshot. */ - if (arg2 == 0 || kdb_active) { + if (!(oidp->oid_kind & CTLFLAG_WR) || arg2 == 0 || kdb_active) { arg2 = strlen((char *)arg1) + 1; ro_string = 1; } if (req->oldptr != NULL) { - char *tmparg; - if (ro_string) { tmparg = arg1; + outlen = strlen(tmparg) + 1; } else { - /* try to make a coherent snapshot of the string */ tmparg = malloc(arg2, M_SYSCTLTMP, M_WAITOK); + sx_slock(&sysctlstringlock); memcpy(tmparg, arg1, arg2); + sx_sunlock(&sysctlstringlock); + outlen = strlen(tmparg) + 1; } - outlen = strnlen(tmparg, arg2 - 1) + 1; error = SYSCTL_OUT(req, tmparg, outlen); if (!ro_string) free(tmparg, M_SYSCTLTMP); } else { - outlen = strnlen((char *)arg1, arg2 - 1) + 1; + if (!ro_string) + sx_slock(&sysctlstringlock); + outlen = strlen((char *)arg1) + 1; + if (!ro_string) + sx_sunlock(&sysctlstringlock); error = SYSCTL_OUT(req, NULL, outlen); } if (error || !req->newptr) return (error); - if ((req->newlen - req->newidx) >= arg2) { + if (req->newlen - req->newidx >= arg2 || + req->newlen - req->newidx <= 0) { error = EINVAL; } else { - arg2 = (req->newlen - req->newidx); - error = SY
svn commit: r356425 - head/sys/kern
Author: kaktus Date: Mon Jan 6 19:47:59 2020 New Revision: 356425 URL: https://svnweb.freebsd.org/changeset/base/356425 Log: kern_sysctl: make sysctl.debug work as intended r136999 introduced SYSTCL_DEBUG but apparently "opt_sysctl.h" was never included making the option ignored. r322954 introduced sysctl.reuse_test with OID number equal to 0, effectively shadowing the very special sysctl.debug one. Use OID_AUTO as it doesn't need any special treatment. Reviewed by: kib (mentor) Approved by: kib (mentor) Differential Revision:https://reviews.freebsd.org/D23056 Modified: head/sys/kern/kern_sysctl.c Modified: head/sys/kern/kern_sysctl.c == --- head/sys/kern/kern_sysctl.c Mon Jan 6 19:35:22 2020(r356424) +++ head/sys/kern/kern_sysctl.c Mon Jan 6 19:47:59 2020(r356425) @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include "opt_capsicum.h" #include "opt_ddb.h" #include "opt_ktrace.h" +#include "opt_sysctl.h" #include #include @@ -404,8 +405,9 @@ sysctl_reuse_test(SYSCTL_HANDLER_ARGS) SYSCTL_RUNLOCK(&tracker); return (0); } -SYSCTL_PROC(_sysctl, 0, reuse_test, CTLTYPE_STRING|CTLFLAG_RD|CTLFLAG_MPSAFE, - 0, 0, sysctl_reuse_test, "-", ""); +SYSCTL_PROC(_sysctl, OID_AUTO, reuse_test, +CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, 0, 0, sysctl_reuse_test, "-", +""); #endif void ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r356413 - in head/sys: amd64/amd64 arm64/arm64
Author: kaktus Date: Mon Jan 6 10:52:13 2020 New Revision: 356413 URL: https://svnweb.freebsd.org/changeset/base/356413 Log: sysctl: mark more nodes as MPSAFE vm.kvm_size and vm.kvm_free are read only and marked as MPSAFE on i386 already. Mark them as that on amd64 and arm64 too to avoid locking Giant. Reviewed by: kib (mentor) Approved by: kib (mentor) Differential Revision:https://reviews.freebsd.org/D23039 Modified: head/sys/amd64/amd64/pmap.c head/sys/arm64/arm64/pmap.c Modified: head/sys/amd64/amd64/pmap.c == --- head/sys/amd64/amd64/pmap.c Mon Jan 6 09:51:54 2020(r356412) +++ head/sys/amd64/amd64/pmap.c Mon Jan 6 10:52:13 2020(r356413) @@ -4072,8 +4072,9 @@ kvm_size(SYSCTL_HANDLER_ARGS) return sysctl_handle_long(oidp, &ksize, 0, req); } -SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG|CTLFLAG_RD, -0, 0, kvm_size, "LU", "Size of KVM"); +SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG | CTLFLAG_RD | CTLFLAG_MPSAFE, +0, 0, kvm_size, "LU", +"Size of KVM"); static int kvm_free(SYSCTL_HANDLER_ARGS) @@ -4082,8 +4083,9 @@ kvm_free(SYSCTL_HANDLER_ARGS) return sysctl_handle_long(oidp, &kfree, 0, req); } -SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLFLAG_RD, -0, 0, kvm_free, "LU", "Amount of KVM free"); +SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG | CTLFLAG_RD | CTLFLAG_MPSAFE, +0, 0, kvm_free, "LU", +"Amount of KVM free"); /* * Allocate physical memory for the vm_page array and map it into KVA, Modified: head/sys/arm64/arm64/pmap.c == --- head/sys/arm64/arm64/pmap.c Mon Jan 6 09:51:54 2020(r356412) +++ head/sys/arm64/arm64/pmap.c Mon Jan 6 10:52:13 2020(r356413) @@ -1845,8 +1845,9 @@ kvm_size(SYSCTL_HANDLER_ARGS) return sysctl_handle_long(oidp, &ksize, 0, req); } -SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG|CTLFLAG_RD, -0, 0, kvm_size, "LU", "Size of KVM"); +SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG | CTLFLAG_RD | CTLFLAG_MPSAFE, +0, 0, kvm_size, "LU", +"Size of KVM"); static int kvm_free(SYSCTL_HANDLER_ARGS) @@ -1855,8 +1856,9 @@ kvm_free(SYSCTL_HANDLER_ARGS) return sysctl_handle_long(oidp, &kfree, 0, req); } -SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLFLAG_RD, -0, 0, kvm_free, "LU", "Amount of KVM free"); +SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG | CTLFLAG_RD | CTLFLAG_MPSAFE, +0, 0, kvm_free, "LU", +"Amount of KVM free"); /* * grow the number of kernel page table entries, if needed ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r356262 - head/sys/kern
Author: kaktus Date: Thu Jan 2 01:23:43 2020 New Revision: 356262 URL: https://svnweb.freebsd.org/changeset/base/356262 Log: sysctl: hide 2.x era compat node r23081 introduced kern.dummy oid as a semi ABI compat for kern.maxsockbuf that was moved to a new namespace. It never functioned as an alias of any kind and was just returning 0 unconditionally, hence it was probably provided to keep some 3rd party programmes happy about sysctl(3) not reporting an error because of non-existing oid. After nearly 23 years it seems reasonable to just hide it from sysctl(8) list not to cause unnecessary confusion as for its purpose. Reported by: Antranig Vartanian Reviewed by: kib (mentor) Approved by: kib (mentor) Differential Revision:https://reviews.freebsd.org/D22982 Modified: head/sys/kern/uipc_sockbuf.c Modified: head/sys/kern/uipc_sockbuf.c == --- head/sys/kern/uipc_sockbuf.cWed Jan 1 22:51:17 2020 (r356261) +++ head/sys/kern/uipc_sockbuf.cThu Jan 2 01:23:43 2020 (r356262) @@ -1522,7 +1522,7 @@ sbtoxsockbuf(struct sockbuf *sb, struct xsockbuf *xsb) /* This takes the place of kern.maxsockbuf, which moved to kern.ipc. */ static int dummy; -SYSCTL_INT(_kern, KERN_DUMMY, dummy, CTLFLAG_RW, &dummy, 0, ""); +SYSCTL_INT(_kern, KERN_DUMMY, dummy, CTLFLAG_RW | CTLFLAG_SKIP, &dummy, 0, ""); SYSCTL_OID(_kern_ipc, KIPC_MAXSOCKBUF, maxsockbuf, CTLTYPE_ULONG|CTLFLAG_RW, &sb_max, 0, sysctl_handle_sb_max, "LU", "Maximum socket buffer size"); SYSCTL_ULONG(_kern_ipc, KIPC_SOCKBUF_WASTE, sockbuf_waste_factor, CTLFLAG_RW, ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r356206 - in head/sys: amd64/linux amd64/linux32 arm64/linux compat/linux i386/linux
Author: kaktus Date: Mon Dec 30 18:11:06 2019 New Revision: 356206 URL: https://svnweb.freebsd.org/changeset/base/356206 Log: linux(4): implement copy_file_range(2) copy_file_range(2) is implemented natively since r350315, make it available for Linux binaries too. Reviewed by: kib (mentor), trasz (previous version) Approved by: kib (mentor) Differential Revision:https://reviews.freebsd.org/D22959 Modified: head/sys/amd64/linux/linux_dummy.c head/sys/amd64/linux32/linux32_dummy.c head/sys/arm64/linux/linux_dummy.c head/sys/compat/linux/linux_file.c head/sys/i386/linux/linux_dummy.c Modified: head/sys/amd64/linux/linux_dummy.c == --- head/sys/amd64/linux/linux_dummy.c Mon Dec 30 17:18:50 2019 (r356205) +++ head/sys/amd64/linux/linux_dummy.c Mon Dec 30 18:11:06 2019 (r356206) @@ -144,8 +144,6 @@ DUMMY(userfaultfd); DUMMY(membarrier); /* Linux 4.4: */ DUMMY(mlock2); -/* Linux 4.5: */ -DUMMY(copy_file_range); /* Linux 4.6: */ DUMMY(preadv2); DUMMY(pwritev2); Modified: head/sys/amd64/linux32/linux32_dummy.c == --- head/sys/amd64/linux32/linux32_dummy.c Mon Dec 30 17:18:50 2019 (r356205) +++ head/sys/amd64/linux32/linux32_dummy.c Mon Dec 30 18:11:06 2019 (r356206) @@ -148,8 +148,6 @@ DUMMY(userfaultfd); DUMMY(membarrier); /* Linux 4.4: */ DUMMY(mlock2); -/* Linux 4.5: */ -DUMMY(copy_file_range); /* Linux 4.6: */ DUMMY(preadv2); DUMMY(pwritev2); Modified: head/sys/arm64/linux/linux_dummy.c == --- head/sys/arm64/linux/linux_dummy.c Mon Dec 30 17:18:50 2019 (r356205) +++ head/sys/arm64/linux/linux_dummy.c Mon Dec 30 18:11:06 2019 (r356206) @@ -142,8 +142,6 @@ DUMMY(userfaultfd); DUMMY(membarrier); /* Linux 4.4: */ DUMMY(mlock2); -/* Linux 4.5: */ -DUMMY(copy_file_range); /* Linux 4.6: */ DUMMY(preadv2); DUMMY(pwritev2); Modified: head/sys/compat/linux/linux_file.c == --- head/sys/compat/linux/linux_file.c Mon Dec 30 17:18:50 2019 (r356205) +++ head/sys/compat/linux/linux_file.c Mon Dec 30 18:11:06 2019 (r356206) @@ -1565,3 +1565,44 @@ linux_fallocate(struct thread *td, struct linux_falloc return (kern_posix_fallocate(td, args->fd, args->offset, args->len)); } + +int +linux_copy_file_range(struct thread *td, struct linux_copy_file_range_args +*args) +{ + l_loff_t inoff, outoff, *inoffp, *outoffp; + int error, flags; + + /* +* copy_file_range(2) on Linux doesn't define any flags (yet), so is +* the native implementation. Enforce it. +*/ + if (args->flags != 0) { + linux_msg(td, "copy_file_range unsupported flags 0x%x", + args->flags); + return (EINVAL); + } + flags = 0; + inoffp = outoffp = NULL; + if (args->off_in != NULL) { + error = copyin(args->off_in, &inoff, sizeof(l_loff_t)); + if (error != 0) + return (error); + inoffp = &inoff; + } + if (args->off_out != NULL) { + error = copyin(args->off_out, &outoff, sizeof(l_loff_t)); + if (error != 0) + return (error); + outoffp = &outoff; + } + + error = kern_copy_file_range(td, args->fd_in, inoffp, args->fd_out, + outoffp, args->len, flags); + if (error == 0 && args->off_in != NULL) + error = copyout(inoffp, args->off_in, sizeof(l_loff_t)); + if (error == 0 && args->off_out != NULL) + error = copyout(outoffp, args->off_out, sizeof(l_loff_t)); + return (error); +} + Modified: head/sys/i386/linux/linux_dummy.c == --- head/sys/i386/linux/linux_dummy.c Mon Dec 30 17:18:50 2019 (r356205) +++ head/sys/i386/linux/linux_dummy.c Mon Dec 30 18:11:06 2019 (r356206) @@ -144,8 +144,6 @@ DUMMY(userfaultfd); DUMMY(membarrier); /* Linux 4.4: */ DUMMY(mlock2); -/* Linux 4.5: */ -DUMMY(copy_file_range); /* Linux 4.6: */ DUMMY(preadv2); DUMMY(pwritev2); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r356179 - head/lib/libc/gen
Author: kaktus Date: Sun Dec 29 17:19:57 2019 New Revision: 356179 URL: https://svnweb.freebsd.org/changeset/base/356179 Log: sysctlbyname(2): Remove temporary compatibility layer Remove temporary compatibility layer introduced in r351729. More that 3 months should be enough for everybody who runs HEAD to upgrade to the new kernel already. Reviewed by: imp, mjg (mentor) Approved by: mjg (mentor) Differential Revision:https://reviews.freebsd.org/D22958 Modified: head/lib/libc/gen/sysctlbyname.c Modified: head/lib/libc/gen/sysctlbyname.c == --- head/lib/libc/gen/sysctlbyname.cSun Dec 29 17:10:21 2019 (r356178) +++ head/lib/libc/gen/sysctlbyname.cSun Dec 29 17:19:57 2019 (r356179) @@ -33,10 +33,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include "libc_private.h" - -#defineSYSCTLBYNAME_OSREL 1300045 - extern int __sysctlbyname(const char *name, size_t namelen, void *oldp, size_t *oldlenp, const void *newp, size_t newlen); @@ -44,16 +40,9 @@ int sysctlbyname(const char *name, void *oldp, size_t *oldlenp, const void *newp, size_t newlen) { - int oid[CTL_MAXNAME]; size_t len; - if (__getosreldate() >= SYSCTLBYNAME_OSREL) { - len = strlen(name); - return (__sysctlbyname(name, len, oldp, oldlenp, newp, - newlen)); - } - len = nitems(oid); - if (sysctlnametomib(name, oid, &len) == -1) - return (-1); - return (sysctl(oid, len, oldp, oldlenp, newp, newlen)); + len = strlen(name); + return (__sysctlbyname(name, len, oldp, oldlenp, newp, + newlen)); } ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r352914 - head/sys/compat/linux
Author: kaktus Date: Mon Sep 30 19:05:14 2019 New Revision: 352914 URL: https://svnweb.freebsd.org/changeset/base/352914 Log: linux_renameat2: don't add extra \n on error. linux_msg() already adds \n at the end of all messages. Reported by: emaste, kib (mentor), mjg (mentor) Reviewed by: kib (mentor), mjg (mentor) Differential Revision:https://reviews.freebsd.org/D21852 Modified: head/sys/compat/linux/linux_file.c Modified: head/sys/compat/linux/linux_file.c == --- head/sys/compat/linux/linux_file.c Mon Sep 30 19:03:43 2019 (r352913) +++ head/sys/compat/linux/linux_file.c Mon Sep 30 19:05:14 2019 (r352914) @@ -704,7 +704,7 @@ linux_renameat2(struct thread *td, struct linux_rename int error, olddfd, newdfd; if (args->flags != 0) { - linux_msg(td, "renameat2 unsupported flags 0x%x\n", + linux_msg(td, "renameat2 unsupported flags 0x%x", args->flags); return (EINVAL); } ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r352913 - head/lib/libsysdecode
Author: kaktus Date: Mon Sep 30 19:03:43 2019 New Revision: 352913 URL: https://svnweb.freebsd.org/changeset/base/352913 Log: libsysdecode: decode PROT_MAX flags Extend libsysdecode to pretty-print PROT_MAX flags and fix decoding of regular protection flags broken since r349240. before: truss: mmap(0x0,40960,0x3,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34366234624 (0x800632000) kdump: 11439 protmax CALL mmap(0,0xa000,0x3<>196608,0x21002,0x,0) after: truss: mmap(0x0,40960,PROT_MAX(PROT_READ|PROT_WRITE)|PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34366234624 (0x800632000) kdump: 11439 protmax CALL mmap(0,0xa000,0x3,0x21002,0x,0) Reviewed by: kib (mentor) Approved by: kib (mentor) Differential Revision:https://reviews.freebsd.org/D21706 Modified: head/lib/libsysdecode/flags.c Modified: head/lib/libsysdecode/flags.c == --- head/lib/libsysdecode/flags.c Mon Sep 30 18:22:33 2019 (r352912) +++ head/lib/libsysdecode/flags.c Mon Sep 30 19:03:43 2019 (r352913) @@ -657,8 +657,18 @@ sysdecode_mlockall_flags(FILE *fp, int flags, int *rem bool sysdecode_mmap_prot(FILE *fp, int prot, int *rem) { + int protm; + bool printed; - return (print_mask_int(fp, mmapprot, prot, rem)); + printed = false; + protm = PROT_MAX_EXTRACT(prot); + if (protm != 0) { + fputs("PROT_MAX(", fp); + printed = print_mask_int(fp, mmapprot, protm, rem); + fputs(")|", fp); + prot = protm; + } + return (print_mask_int(fp, mmapprot, prot, rem) || printed); } bool ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r352791 - head/share/misc
Author: kaktus Date: Fri Sep 27 10:19:28 2019 New Revision: 352791 URL: https://svnweb.freebsd.org/changeset/base/352791 Log: Add myself (kaktus) as a src commiter. Reviewed by: kib (mentor) Approved by: kib (mentor), mjg (mentor) Differential Revision:https://reviews.freebsd.org/D21811 Modified: head/share/misc/committers-src.dot Modified: head/share/misc/committers-src.dot == --- head/share/misc/committers-src.dot Fri Sep 27 10:04:58 2019 (r352790) +++ head/share/misc/committers-src.dot Fri Sep 27 10:19:28 2019 (r352791) @@ -227,6 +227,7 @@ jtl [label="Jonathan T. Looney\n...@freebsd.org\n2015/ julian [label="Julian Elischer\njul...@freebsd.org\n1993/04/19"] jwd [label="John De Boskey\n...@freebsd.org\n2000/05/19"] kaiw [label="Kai Wang\nk...@freebsd.org\n2007/09/26"] +kaktus [label="Pawel Biernacki\nkak...@freebsd.org\n2019/09/26"] kan [label="Alexander Kabaev\n...@freebsd.org\n2002/07/21"] karels [label="Mike Karels\nkar...@freebsd.org\n2016/06/09"] ken [label="Ken Merry\n...@freebsd.org\n1998/09/08"] @@ -675,6 +676,7 @@ kib -> gjb kib -> jah kib -> jlh kib -> jpaetzel +kib -> kaktus kib -> lulf kib -> melifaro kib -> mmel @@ -719,6 +721,8 @@ mdf -> gleb mdodd -> jake mike -> das + +mjg -> kaktus mlaier -> benjsc mlaier -> dhartmei ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"