svn commit: r355647 - head/usr.bin/showmount
Author: eadler Date: Thu Dec 12 05:11:53 2019 New Revision: 355647 URL: https://svnweb.freebsd.org/changeset/base/355647 Log: [showmount] implement long options add long options support to showmount. Where mappings exist use the GNU names for said options. Differential Revision:https://reviews.freebsd.org/D22543 Reviewed by: kevans (earlier version) Modified: head/usr.bin/showmount/showmount.8 head/usr.bin/showmount/showmount.c Modified: head/usr.bin/showmount/showmount.8 == --- head/usr.bin/showmount/showmount.8 Thu Dec 12 04:47:02 2019 (r355646) +++ head/usr.bin/showmount/showmount.8 Thu Dec 12 05:11:53 2019 (r355647) @@ -67,20 +67,20 @@ for a detailed description of the protocol. .Pp The following options are available: .Bl -tag -width indent -.It Fl a +.It Fl a , Fl -all List all mount points in the form: .Bd -ragged -offset indent -compact .Ar host : Ns Ar dirpath . .Ed -.It Fl d +.It Fl d , Fl -directories List directory paths of mount points instead of hosts. -.It Fl E +.It Fl E , Fl -exports-script Show the .Ar host Ns 's exports list in a script-friendly format. Client addresses and the header are not shown, and special characters are escaped. -.It Fl e +.It Fl e , Fl -exports Show the .Ar host Ns 's exports list. Modified: head/usr.bin/showmount/showmount.c == --- head/usr.bin/showmount/showmount.c Thu Dec 12 04:47:02 2019 (r355646) +++ head/usr.bin/showmount/showmount.c Thu Dec 12 05:11:53 2019 (r355647) @@ -53,6 +53,7 @@ static const char rcsid[] = #include #include +#include #include #include #include @@ -102,6 +103,14 @@ int xdr_exportslist(XDR *, struct exportslist **); int tcp_callrpc(const char *host, int prognum, int versnum, int procnum, xdrproc_t inproc, char *in, xdrproc_t outproc, char *out); +static const struct option long_opts[] = { + { "all",no_argument,NULL, 'a' }, + { "directories",no_argument,NULL, 'd' }, + { "exports-script", no_argument,NULL, 'E' }, + { "exports",no_argument,NULL, 'e' }, + { NULL, 0, NULL, 0 }, +}; + /* * This command queries the NFS mount daemon for it's mount list and/or * it's exports list and prints them out. @@ -119,7 +128,7 @@ main(int argc, char **argv) const char *host; int ch, estat, nbytes; - while ((ch = getopt(argc, argv, "adEe13")) != -1) + while ((ch = getopt_long(argc, argv, "+adEe13", long_opts, NULL)) != -1) switch (ch) { case 'a': if (type == 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: r355646 - head/share/mk
Author: cem Date: Thu Dec 12 04:47:02 2019 New Revision: 355646 URL: https://svnweb.freebsd.org/changeset/base/355646 Log: Revert r354348 Switch ARM32 default libunwind back to old GPL2 libgcc version. Reportedly, the llvm-libunwind code is nonfunctional. Requested by: mmel Modified: head/share/mk/src.opts.mk Modified: head/share/mk/src.opts.mk == --- head/share/mk/src.opts.mk Thu Dec 12 04:44:09 2019(r355645) +++ head/share/mk/src.opts.mk Thu Dec 12 04:47:02 2019(r355646) @@ -327,9 +327,8 @@ BROKEN_OPTIONS+=BINUTILS BINUTILS_BOOTSTRAP GCC GCC_BO .if ${__T:Mriscv*} != "" BROKEN_OPTIONS+=OFED .endif -.if ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "armv6" || \ -${__T} == "armv7" || ${__T} == "i386" || ${__T:Mriscv*} != "" || \ -${__TT} == "mips" +.if ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "i386" || \ +${__T:Mriscv*} != "" || ${__TT} == "mips" __DEFAULT_YES_OPTIONS+=LLVM_LIBUNWIND .else __DEFAULT_NO_OPTIONS+=LLVM_LIBUNWIND ___ 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: r355645 - head/contrib/libunwind/src
Author: cem Date: Thu Dec 12 04:44:09 2019 New Revision: 355645 URL: https://svnweb.freebsd.org/changeset/base/355645 Log: arm: libgcc_s: Fix ABI breakage introduced in r354347 Provide the symbol version for llvm-libunwind's _Unwind_Backtrace that libgcc has historically provided on arm, in addition to the (default) standard version used on all other arch. Reported by: mmel Modified: head/contrib/libunwind/src/UnwindLevel1-gcc-ext.c Modified: head/contrib/libunwind/src/UnwindLevel1-gcc-ext.c == --- head/contrib/libunwind/src/UnwindLevel1-gcc-ext.c Thu Dec 12 02:43:24 2019(r355644) +++ head/contrib/libunwind/src/UnwindLevel1-gcc-ext.c Thu Dec 12 04:44:09 2019(r355645) @@ -181,6 +181,10 @@ _Unwind_Backtrace(_Unwind_Trace_Fn callback, void *ref } } } +#ifdef __arm__ +/* Preserve legacy libgcc ARM ABI mistake. */ +__sym_compat(_Unwind_Backtrace, _Unwind_Backtrace, GCC_4.3.0); +#endif /// Find DWARF unwind info for an address 'pc' in some function. ___ 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: r355644 - head/sys/kern
Author: markj Date: Thu Dec 12 02:43:24 2019 New Revision: 355644 URL: https://svnweb.freebsd.org/changeset/base/355644 Log: Rename tdq_ipipending and clear it in sched_switch(). This fixes a regression after r355311. Specifically, sched_preempt() may trigger a context switch by calling thread_lock(), since thread_lock() calls critical_exit() in its slow path and the interrupted thread may have already been marked for preemption. This would happen before tdq_ipipending is cleared, blocking further preemption IPIs. The CPU can be left in this state indefinitely if the interrupted thread migrates. Rename tdq_ipipending to tdq_owepreempt. Any switch satisfies a remote preemption request, so clear tdq_owepreempt in sched_switch() instead of sched_preempt() to avoid subtle problems of the sort described above. Reviewed by: jeff, kib Sponsored by: The FreeBSD Foundation Differential Revision:https://reviews.freebsd.org/D22758 Modified: head/sys/kern/sched_ule.c Modified: head/sys/kern/sched_ule.c == --- head/sys/kern/sched_ule.c Thu Dec 12 02:42:27 2019(r355643) +++ head/sys/kern/sched_ule.c Thu Dec 12 02:43:24 2019(r355644) @@ -244,7 +244,7 @@ struct tdq { volatile short tdq_switchcnt; /* Switches this tick. */ volatile short tdq_oldswitchcnt; /* Switches last tick. */ u_char tdq_lowpri; /* Lowest priority thread. */ - u_char tdq_ipipending; /* IPI pending. */ + u_char tdq_owepreempt; /* Remote preemption pending. */ u_char tdq_idx;/* Current insert index. */ u_char tdq_ridx; /* Current removal index. */ int tdq_id; /* cpuid. */ @@ -1073,7 +1073,7 @@ tdq_notify(struct tdq *tdq, struct thread *td) int pri; int cpu; - if (tdq->tdq_ipipending) + if (tdq->tdq_owepreempt) return; cpu = td_get_sched(td)->ts_cpu; pri = td->td_priority; @@ -1096,7 +1096,12 @@ tdq_notify(struct tdq *tdq, struct thread *td) if (!tdq->tdq_cpu_idle || cpu_idle_wakeup(cpu)) return; } - tdq->tdq_ipipending = 1; + + /* +* The run queues have been updated, so any switch on the remote CPU +* will satisfy the preemption request. +*/ + tdq->tdq_owepreempt = 1; ipi_cpu(cpu, IPI_PREEMPT); } @@ -2079,8 +2084,10 @@ sched_switch(struct thread *td, struct thread *newtd, (flags & SW_PREEMPT) != 0; td->td_flags &= ~(TDF_NEEDRESCHED | TDF_SLICEEND); td->td_owepreempt = 0; + tdq->tdq_owepreempt = 0; if (!TD_IS_IDLETHREAD(td)) tdq->tdq_switchcnt++; + /* * The lock pointer in an idle thread should never change. Reset it * to CAN_RUN as well. @@ -2386,7 +2393,6 @@ sched_preempt(struct thread *td) thread_lock(td); tdq = TDQ_SELF(); TDQ_LOCK_ASSERT(tdq, MA_OWNED); - tdq->tdq_ipipending = 0; if (td->td_priority > tdq->tdq_lowpri) { int flags; @@ -2397,6 +2403,8 @@ sched_preempt(struct thread *td) mi_switch(flags | SWT_REMOTEWAKEIDLE, NULL); else mi_switch(flags | SWT_REMOTEPREEMPT, NULL); + } else { + tdq->tdq_owepreempt = 0; } thread_unlock(td); } ___ 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: r355643 - head/sys/sys
Author: kevans Date: Thu Dec 12 02:42:27 2019 New Revision: 355643 URL: https://svnweb.freebsd.org/changeset/base/355643 Log: Bump __FreeBSD_version for r355641, new sig set ops This will be needed to unbreak qemu-user-static. Modified: head/sys/sys/param.h Modified: head/sys/sys/param.h == --- head/sys/sys/param.hThu Dec 12 02:18:18 2019(r355642) +++ head/sys/sys/param.hThu Dec 12 02:42:27 2019(r355643) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300064 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300065 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, ___ 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: r355642 - head
Author: emaste Date: Thu Dec 12 02:18:18 2019 New Revision: 355642 URL: https://svnweb.freebsd.org/changeset/base/355642 Log: ObsoleteFiles.inc: remove stale comment A comment at the top of the file claimed that the file was grouped into OLD_FILES, OLD_LIBS, then OLD_DIRS, but that hasn't been the case since the mid-2000s. Delete the stale comment, add a new comment for the historical split entries, and move the one more recent entry (from 2013) to group it into a single logical change. Modified: head/ObsoleteFiles.inc Modified: head/ObsoleteFiles.inc == --- head/ObsoleteFiles.inc Thu Dec 12 01:41:55 2019(r355641) +++ head/ObsoleteFiles.inc Thu Dec 12 02:18:18 2019(r355642) @@ -11,8 +11,6 @@ # In case of a complete directory hierarchy the sorting is in depth first # order. # -# The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. -# # Before you commit changes to this file please check if any entries in # tools/build/mk/OptionalObsoleteFiles.inc can be removed. The following # command tells which files are listed more than once regardless of some @@ -5195,6 +5193,12 @@ OLD_FILES+=usr/share/man/man1/atf-version.1.gz OLD_FILES+=usr/share/man/man5/atf-formats.5.gz OLD_FILES+=usr/share/xml/atf/tests-results.dtd OLD_FILES+=usr/share/xsl/atf/tests-results.xsl +OLD_DIRS+=etc/atf +OLD_DIRS+=usr/share/examples/atf +OLD_DIRS+=usr/share/xml/atf +OLD_DIRS+=usr/share/xml +OLD_DIRS+=usr/share/xsl/atf +OLD_DIRS+=usr/share/xsl # 20131009: freebsd-version moved from /libexec to /bin OLD_FILES+=libexec/freebsd-version # 20131001: ar and ranlib from binutils not used @@ -11133,6 +11137,9 @@ OLD_FILES+=usr/libdata/msdosfs/koi8u2dos # - usr/share/tmac/mm/se_locale # - var/yp/Makefile +# Early entries split OLD_FILES, OLD_LIBS, and OLD_DIRS into separate sections +# in this file, but this practice was abandoned in the mid-2000s. +# # 20071120: shared library version bump OLD_LIBS+=usr/lib/libasn1.so.8 OLD_LIBS+=usr/lib/libgssapi.so.8 @@ -11413,13 +11420,6 @@ OLD_LIBS+=usr/lib/libkse.so.1 OLD_LIBS+=usr/lib/liblwres.so.3 OLD_LIBS+=usr/lib/pam_ftp.so.2 -# 20131013: Removal of the ATF tools -OLD_DIRS+=etc/atf -OLD_DIRS+=usr/share/examples/atf -OLD_DIRS+=usr/share/xml/atf -OLD_DIRS+=usr/share/xml -OLD_DIRS+=usr/share/xsl/atf -OLD_DIRS+=usr/share/xsl # 20040925: bind9 import OLD_DIRS+=usr/share/doc/bind/html OLD_DIRS+=usr/share/doc/bind/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: r355641 - in head: include lib/libc/gen lib/libc/tests/gen
Author: kevans Date: Thu Dec 12 01:41:55 2019 New Revision: 355641 URL: https://svnweb.freebsd.org/changeset/base/355641 Log: Add sigsetop extensions commonly found in musl libc and glibc These functions (sigandset, sigisemptyset, sigorset) are commonly available in at least musl libc and glibc; sigorset, at least, has proven quite useful in qemu-bsd-user work for tracking the current process signal mask in a more self-documenting/aesthetically pleasing manner. Reviewed by: bapt, jilles, pfg MFC after:1 week Differential Revision:https://reviews.freebsd.org/D22187 Added: head/lib/libc/tests/gen/sigsetops_test.c (contents, props changed) Modified: head/include/signal.h head/lib/libc/gen/Makefile.inc head/lib/libc/gen/Symbol.map head/lib/libc/gen/sigsetops.3 head/lib/libc/gen/sigsetops.c head/lib/libc/tests/gen/Makefile Modified: head/include/signal.h == --- head/include/signal.h Thu Dec 12 01:35:56 2019(r355640) +++ head/include/signal.h Thu Dec 12 01:41:55 2019(r355641) @@ -122,7 +122,10 @@ void psignal(int, const char *); #endif #if __BSD_VISIBLE +intsigandset(sigset_t *dest, const sigset_t *left, const sigset_t *right); intsigblock(int); +intsigisemptyset(const sigset_t *set); +intsigorset(sigset_t *dest, const sigset_t *left, const sigset_t *right); intsigreturn(const struct __ucontext *); intsigsetmask(int); intsigstack(const struct sigstack *, struct sigstack *); Modified: head/lib/libc/gen/Makefile.inc == --- head/lib/libc/gen/Makefile.inc Thu Dec 12 01:35:56 2019 (r355640) +++ head/lib/libc/gen/Makefile.inc Thu Dec 12 01:41:55 2019 (r355641) @@ -497,10 +497,13 @@ MLINKS+=setjmp.3 _longjmp.3 \ MLINKS+=setmode.3 getmode.3 MLINKS+=setproctitle.3 setproctitle_fast.3 MLINKS+=sigsetops.3 sigaddset.3 \ + sigsetops.3 sigandset.3 \ sigsetops.3 sigdelset.3 \ sigsetops.3 sigemptyset.3 \ sigsetops.3 sigfillset.3 \ - sigsetops.3 sigismember.3 + sigsetops.3 sigisemptyset.3 \ + sigsetops.3 sigismember.3 \ + sigsetops.3 sigorset.3 MLINKS+=statvfs.3 fstatvfs.3 MLINKS+=stringlist.3 sl_add.3 \ stringlist.3 sl_find.3 \ Modified: head/lib/libc/gen/Symbol.map == --- head/lib/libc/gen/Symbol.mapThu Dec 12 01:35:56 2019 (r355640) +++ head/lib/libc/gen/Symbol.mapThu Dec 12 01:41:55 2019 (r355641) @@ -422,6 +422,12 @@ FBSD_1.5 { timespec_get; }; +FBSD_1.6 { + sigandset; + sigisemptyset; + sigorset; +}; + FBSDprivate_1.0 { /* needed by thread libraries */ __thr_jtable; Modified: head/lib/libc/gen/sigsetops.3 == --- head/lib/libc/gen/sigsetops.3 Thu Dec 12 01:35:56 2019 (r355640) +++ head/lib/libc/gen/sigsetops.3 Thu Dec 12 01:41:55 2019 (r355641) @@ -28,15 +28,18 @@ .\" @(#)sigsetops.38.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd December 16, 2004 +.Dd October 29, 2019 .Dt SIGSETOPS 3 .Os .Sh NAME .Nm sigemptyset , .Nm sigfillset , .Nm sigaddset , +.Nm sigandset , .Nm sigdelset , -.Nm sigismember +.Nm sigisemptyset , +.Nm sigismember , +.Nm sigorset .Nd manipulate signal sets .Sh LIBRARY .Lb libc @@ -49,9 +52,15 @@ .Ft int .Fn sigaddset "sigset_t *set" "int signo" .Ft int +.Fn sigandset "sigset_t *set" "const sigset_t *left" "const sigset_t *right" +.Ft int .Fn sigdelset "sigset_t *set" "int signo" .Ft int +.Fn sigisemptyset "const sigset_t *set" +.Ft int .Fn sigismember "const sigset_t *set" "int signo" +.Ft int +.Fn sigorset "sigset_t *set" "const sigset_t *left" "const sigset_t *right" .Sh DESCRIPTION These functions manipulate signal sets stored in a .Fa sigset_t . @@ -78,22 +87,54 @@ function adds the specified signal to the signal set. .Pp The +.Fn sigandset +function sets the specified +.Fa set +to the logical AND of all signals from the +.Fa left +and +.Fa right +signal sets. +.Pp +The .Fn sigdelset function deletes the specified signal .Fa signo from the signal set. .Pp The +.Fn sigisemptyset +function returns whether the specified +.Fa set +is empty or not. +.Pp +The .Fn sigismember function returns whether a specified signal .Fa signo is contained in the signal set. +.Pp +The +.Fn sigorset +function sets the specified +.Fa set +to the logical OR of all signals from the +.Fa left +and +.Fa right +signal sets. .Sh RETURN VALUES The +.Fn sigisemptyset +function returns 1 +if the set is empty, 0 otherwise. +.Pp +The .Fn sigismember function returns 1 if the signal is a member of the set, 0 otherwise. +.Pp The other functions return 0 upon success.
svn commit: r355640 - head/stand/liblua
Author: kevans Date: Thu Dec 12 01:35:56 2019 New Revision: 355640 URL: https://svnweb.freebsd.org/changeset/base/355640 Log: stand: liblua: drop default buffer size to 128 Lua allocates LUAL_BUFFERSIZE buffers on the stack for various string functions (string.format, string.gsub) -- this works out to be somewhat significant and not necessary, based on how we use string operations. Dropping it risks having to allocate per call to format/gsub, but this is not the case for our usage. This simply stops allocating 8K buffers on the stack when luaL_Buffer is used. Reviewed by: imp MFC after:1 week Differential Revision:https://reviews.freebsd.org/D22500 Modified: head/stand/liblua/luaconf.h Modified: head/stand/liblua/luaconf.h == --- head/stand/liblua/luaconf.h Thu Dec 12 01:33:45 2019(r355639) +++ head/stand/liblua/luaconf.h Thu Dec 12 01:35:56 2019(r355640) @@ -783,11 +783,7 @@ ** smaller buffer would force a memory allocation for each call to ** 'string.format'.) */ -#if LUA_FLOAT_TYPE == LUA_FLOAT_LONGDOUBLE -#define LUAL_BUFFERSIZE8192 -#else -#define LUAL_BUFFERSIZE ((int)(0x80 * sizeof(void*) * sizeof(lua_Integer))) -#endif +#define LUAL_BUFFERSIZE128 /* }== */ ___ 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: r355639 - in head/usr.sbin/ntp: . scripts
Author: kevans Date: Thu Dec 12 01:33:45 2019 New Revision: 355639 URL: https://svnweb.freebsd.org/changeset/base/355639 Log: usr.sbin/ntp: don't emit versions w/ make -s defines ECHO=echo when not using make -s, and ECHO=true when using make -s. export ECHO for ntp products and use it in the mkver script to echo the version. This suppresses the output as appropriate. ECHO is given a default value to make sure things still work as expected for anyone that isn't redefining ECHO. Reviewed by: cy MFC after:1 week Differential Revision:https://reviews.freebsd.org/D22101 Modified: head/usr.sbin/ntp/Makefile.inc head/usr.sbin/ntp/scripts/mkver Modified: head/usr.sbin/ntp/Makefile.inc == --- head/usr.sbin/ntp/Makefile.inc Thu Dec 12 00:51:08 2019 (r355638) +++ head/usr.sbin/ntp/Makefile.inc Thu Dec 12 01:33:45 2019 (r355639) @@ -16,4 +16,6 @@ CFLAGS+= -DOPENSSL -DUSE_OPENSSL_CRYPTO_RAND -DAUTOKEY WARNS?=0 +.export ECHO + .include "../Makefile.inc" Modified: head/usr.sbin/ntp/scripts/mkver == --- head/usr.sbin/ntp/scripts/mkver Thu Dec 12 00:51:08 2019 (r355638) +++ head/usr.sbin/ntp/scripts/mkver Thu Dec 12 01:33:45 2019 (r355639) @@ -4,6 +4,8 @@ # PROG=${1-UNKNOWN} +: ${ECHO:=echo} + ConfStr="$PROG" ConfStr="$ConfStr 4.2.8p12" @@ -32,7 +34,7 @@ echo $RUN > .version ConfStr="$ConfStr (${RUN})" -echo "Version <${ConfStr}>"; +${ECHO} "Version <${ConfStr}>"; rm -f version.c cat > version.c << -EoF- ___ 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: r355638 - head
Author: emaste Date: Thu Dec 12 00:51:08 2019 New Revision: 355638 URL: https://svnweb.freebsd.org/changeset/base/355638 Log: ObsoleteFiles.inc: chase libpcap update in r334277 libpcap 1.9.0 (pre-release) update removed the export-defs.h header. PR: 242559 Submitted by: John Hein MFC after:3 days Modified: head/ObsoleteFiles.inc Modified: head/ObsoleteFiles.inc == --- head/ObsoleteFiles.inc Thu Dec 12 00:30:20 2019(r355637) +++ head/ObsoleteFiles.inc Thu Dec 12 00:51:08 2019(r355638) @@ -1284,6 +1284,8 @@ OLD_FILES+=usr/share/nls/es_ES.ISO8859-1/grep.cat OLD_FILES+=usr/share/nls/ru_RU.KOI8-R/grep.cat OLD_FILES+=usr/share/nls/uk_UA.UTF-8/grep.cat OLD_FILES+=usr/share/nls/ja_JP.UTF-8/grep.cat +# 20180528: libpcap update removed header file +OLD_FILES+=usr/include/pcap/export-defs.h # 20180517: retire vxge OLD_FILES+=usr/share/man/man4/if_vxge.4.gz OLD_FILES+=usr/share/man/man4/vxge.4.gz ___ 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: r355637 - stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Author: mav Date: Thu Dec 12 00:30:20 2019 New Revision: 355637 URL: https://svnweb.freebsd.org/changeset/base/355637 Log: MFC r355182: Fix use-after-free in case of L2ARC prefetch failure. In case L2ARC read failed, l2arc_read_done() creates _different_ ZIO to read data from the original storage device. Unfortunately pointer to the failed ZIO remains in hdr->b_l1hdr.b_acb->acb_zio_head, and if some other read try to bump the ZIO priority, it will crash. The problem is reproducible by corrupting L2ARC content and reading some data with prefetch if l2arc_noprefetch tunable is changed to 0. With the default setting the issue is probably not reproducible now. Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c == --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Thu Dec 12 00:29:48 2019(r355636) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Thu Dec 12 00:30:20 2019(r355637) @@ -7476,7 +7476,6 @@ l2arc_read_done(zio_t *zio) zio->io_private = hdr; arc_read_done(zio); } else { - mutex_exit(hash_lock); /* * Buffer didn't survive caching. Increment stats and * reissue to the original storage device. @@ -7499,11 +7498,17 @@ l2arc_read_done(zio_t *zio) ASSERT(!pio || pio->io_child_type == ZIO_CHILD_LOGICAL); - zio_nowait(zio_read(pio, zio->io_spa, zio->io_bp, + zio = zio_read(pio, zio->io_spa, zio->io_bp, hdr->b_l1hdr.b_pabd, zio->io_size, arc_read_done, hdr, zio->io_priority, cb->l2rcb_flags, - &cb->l2rcb_zb)); - } + &cb->l2rcb_zb); + for (struct arc_callback *acb = hdr->b_l1hdr.b_acb; + acb != NULL; acb = acb->acb_next) + acb->acb_zio_head = zio; + mutex_exit(hash_lock); + zio_nowait(zio); + } else + mutex_exit(hash_lock); } kmem_free(cb, sizeof (l2arc_read_callback_t)); ___ 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: r355636 - stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Author: mav Date: Thu Dec 12 00:29:48 2019 New Revision: 355636 URL: https://svnweb.freebsd.org/changeset/base/355636 Log: MFC r355182: Fix use-after-free in case of L2ARC prefetch failure. In case L2ARC read failed, l2arc_read_done() creates _different_ ZIO to read data from the original storage device. Unfortunately pointer to the failed ZIO remains in hdr->b_l1hdr.b_acb->acb_zio_head, and if some other read try to bump the ZIO priority, it will crash. The problem is reproducible by corrupting L2ARC content and reading some data with prefetch if l2arc_noprefetch tunable is changed to 0. With the default setting the issue is probably not reproducible now. Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c == --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Thu Dec 12 00:14:01 2019(r355635) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Thu Dec 12 00:29:48 2019(r355636) @@ -7886,7 +7886,6 @@ l2arc_read_done(zio_t *zio) zio->io_private = hdr; arc_read_done(zio); } else { - mutex_exit(hash_lock); /* * Buffer didn't survive caching. Increment stats and * reissue to the original storage device. @@ -7909,11 +7908,17 @@ l2arc_read_done(zio_t *zio) ASSERT(!pio || pio->io_child_type == ZIO_CHILD_LOGICAL); - zio_nowait(zio_read(pio, zio->io_spa, zio->io_bp, + zio = zio_read(pio, zio->io_spa, zio->io_bp, hdr->b_l1hdr.b_pabd, zio->io_size, arc_read_done, hdr, zio->io_priority, cb->l2rcb_flags, - &cb->l2rcb_zb)); - } + &cb->l2rcb_zb); + for (struct arc_callback *acb = hdr->b_l1hdr.b_acb; + acb != NULL; acb = acb->acb_next) + acb->acb_zio_head = zio; + mutex_exit(hash_lock); + zio_nowait(zio); + } else + mutex_exit(hash_lock); } kmem_free(cb, sizeof (l2arc_read_callback_t)); ___ 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: r355635 - in head: . lib/libpmc
Author: emaste Date: Thu Dec 12 00:14:01 2019 New Revision: 355635 URL: https://svnweb.freebsd.org/changeset/base/355635 Log: libpmc: build json event support also on arm64 Modified: head/Makefile.inc1 head/lib/libpmc/Makefile Modified: head/Makefile.inc1 == --- head/Makefile.inc1 Wed Dec 11 23:41:39 2019(r355634) +++ head/Makefile.inc1 Thu Dec 12 00:14:01 2019(r355635) @@ -2446,7 +2446,8 @@ _libmagic=lib/libmagic .endif .if ${MK_PMC} != "no" && \ -(${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386") +(${TARGET_ARCH} == "aarch64" || ${TARGET_ARCH} == "amd64" || \ +${TARGET_ARCH} == "i386") _jevents=lib/libpmc/pmu-events .endif Modified: head/lib/libpmc/Makefile == --- head/lib/libpmc/MakefileWed Dec 11 23:41:39 2019(r355634) +++ head/lib/libpmc/MakefileThu Dec 12 00:14:01 2019(r355635) @@ -7,7 +7,8 @@ INCS= pmc.h pmclog.h pmcformat.h ALLOW_MIPS_SHARED_TEXTREL= -.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" +.if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "amd64" || \ +${MACHINE_ARCH} == "i386" .if ${MACHINE_ARCH} == "aarch64" EVENT_ARCH="arm64" ___ 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: r355634 - head/usr.sbin/bhyve
Author: jhb Date: Wed Dec 11 23:41:39 2019 New Revision: 355634 URL: https://svnweb.freebsd.org/changeset/base/355634 Log: Emulate reads of the PCI command register for passthrough devices. VFs return zero for the memory enable bit even if it has been set by a prior write. After r348779 this caused the annoying behavior that a guest OS would unintentionally disable memory decoding on a future read-modify-write operation on the command register. Instead, return the shadow value of the command register for reads. This ensures that the guest will only toggle the state of the memory enable bit when it specifically intends to do so. MFC after:2 weeks Sponsored by: Chelsio Communications Modified: head/usr.sbin/bhyve/pci_passthru.c Modified: head/usr.sbin/bhyve/pci_passthru.c == --- head/usr.sbin/bhyve/pci_passthru.c Wed Dec 11 23:11:21 2019 (r355633) +++ head/usr.sbin/bhyve/pci_passthru.c Wed Dec 11 23:41:39 2019 (r355634) @@ -803,6 +803,19 @@ passthru_cfgread(struct vmctx *ctx, int vcpu, struct p } #endif + /* +* Emulate the command register. If a single read reads both the +* command and status registers, read the status register from the +* device's config space. +*/ + if (coff == PCIR_COMMAND) { + if (bytes <= 2) + return (-1); + *rv = pci_get_cfgdata16(pi, PCIR_COMMAND) << 16 | + read_config(&sc->psc_sel, PCIR_STATUS, 2); + return (0); + } + /* Everything else just read from the device's config space */ *rv = read_config(&sc->psc_sel, coff, bytes); ___ 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: r355633 - in head/sys: cddl/contrib/opensolaris/uts/common/fs/zfs fs/tmpfs kern sys
Author: mjg Date: Wed Dec 11 23:11:21 2019 New Revision: 355633 URL: https://svnweb.freebsd.org/changeset/base/355633 Log: vfs: locking primitives which elide ->v_vnlock and shared locking disablement Both of these features are not needed by many consumers and result in avoidable reads which in turn puts them on profiles due to cache-line ping ponging. On top of that the current lockgmr entry point is slower than necessary single-threaded. As an attempted clean up preparing for other changes, provide new routines which don't support any of the aforementioned features. With these patches in place vop_stdlock and vop_stdunlock disappear from flamegraphs during -j 104 buildkernel. Reviewed by: jeff (previous version) Tested by:pho Differential Revision:https://reviews.freebsd.org/D22665 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c head/sys/fs/tmpfs/tmpfs_subr.c head/sys/fs/tmpfs/tmpfs_vnops.c head/sys/kern/kern_lock.c head/sys/kern/vfs_default.c head/sys/sys/lockmgr.h head/sys/sys/vnode.h Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c == --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Wed Dec 11 23:09:12 2019(r355632) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Wed Dec 11 23:11:21 2019(r355633) @@ -5932,7 +5932,7 @@ zfs_lock(ap) znode_t *zp; int err; - err = vop_stdlock(ap); + err = vop_lock(ap); if (err == 0 && (ap->a_flags & LK_NOWAIT) == 0) { vp = ap->a_vp; zp = vp->v_data; @@ -5989,7 +5989,11 @@ struct vop_vector zfs_vnodeops = { .vop_vptocnp = zfs_vptocnp, #ifdef DIAGNOSTIC .vop_lock1 =zfs_lock, +#else + .vop_lock1 =vop_lock, #endif + .vop_unlock = vop_unlock, + .vop_islocked = vop_islocked, }; struct vop_vector zfs_fifoops = { Modified: head/sys/fs/tmpfs/tmpfs_subr.c == --- head/sys/fs/tmpfs/tmpfs_subr.c Wed Dec 11 23:09:12 2019 (r355632) +++ head/sys/fs/tmpfs/tmpfs_subr.c Wed Dec 11 23:11:21 2019 (r355633) @@ -671,7 +671,7 @@ loop: MPASS(vp != NULL); /* lkflag is ignored, the lock is exclusive */ - (void) vn_lock(vp, lkflag | LK_RETRY); + (void) vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); vp->v_data = node; vp->v_type = node->tn_type; Modified: head/sys/fs/tmpfs/tmpfs_vnops.c == --- head/sys/fs/tmpfs/tmpfs_vnops.c Wed Dec 11 23:09:12 2019 (r355632) +++ head/sys/fs/tmpfs/tmpfs_vnops.c Wed Dec 11 23:11:21 2019 (r355633) @@ -1632,6 +1632,9 @@ struct vop_vector tmpfs_vnodeop_entries = { .vop_whiteout = tmpfs_whiteout, .vop_bmap = VOP_EOPNOTSUPP, .vop_vptocnp = tmpfs_vptocnp, + .vop_lock1 =vop_lock, + .vop_unlock = vop_unlock, + .vop_islocked = vop_islocked, }; /* Modified: head/sys/kern/kern_lock.c == --- head/sys/kern/kern_lock.c Wed Dec 11 23:09:12 2019(r355632) +++ head/sys/kern/kern_lock.c Wed Dec 11 23:11:21 2019(r355633) @@ -1156,6 +1156,88 @@ lockmgr_unlock_fast_path(struct lock *lk, u_int flags, return (0); } +/* + * Lightweight entry points for common operations. + * + * Functionality is similar to sx locks, in that none of the additional lockmgr + * features are supported. To be clear, these are NOT supported: + * 1. shared locking disablement + * 2. returning with an error after sleep + * 3. unlocking the interlock + * + * If in doubt, use lockmgr_*_fast_path. + */ +int +lockmgr_slock(struct lock *lk, u_int flags, const char *file, int line) +{ + uintptr_t x; + + MPASS((flags & LK_TYPE_MASK) == LK_SHARED); + MPASS((flags & LK_INTERLOCK) == 0); + MPASS((lk->lock_object.lo_flags & LK_NOSHARE) == 0); + + if (LK_CAN_WITNESS(flags)) + WITNESS_CHECKORDER(&lk->lock_object, LOP_NEWORDER, + file, line, NULL); + if (__predict_true(lockmgr_slock_try(lk, &x, flags, true))) { + lockmgr_note_shared_acquire(lk, 0, 0, file, line, flags); + return (0); + } + + return (lockmgr_slock_hard(lk, flags, NULL, file, line, NULL)); +} + +int +lockmgr_xlock(struct lock *lk, u_int flags, const char *file, int line) +{ + uintptr_t tid; + + MPASS((flags & LK_TYPE_MASK) == LK_EXCLUSIVE); + MPASS((flags & LK_INTERLOCK) == 0); + + if (LK_CAN_WITNESS(flags)) + WITNESS_
svn commit: r355632 - in head/sys: kern sys
Author: mjg Date: Wed Dec 11 23:09:12 2019 New Revision: 355632 URL: https://svnweb.freebsd.org/changeset/base/355632 Log: fd: static-ize and devolatile openfiles Almost all access is using atomics. The only read is sysctl which should use a whole-int-at-a-time friendly read internally. Modified: head/sys/kern/kern_descrip.c head/sys/sys/file.h Modified: head/sys/kern/kern_descrip.c == --- head/sys/kern/kern_descrip.cWed Dec 11 22:51:02 2019 (r355631) +++ head/sys/kern/kern_descrip.cWed Dec 11 23:09:12 2019 (r355632) @@ -174,7 +174,7 @@ struct filedesc0 { /* * Descriptor management. */ -volatile int __exclusive_cache_line openfiles; /* actual number of open files */ +static int __exclusive_cache_line openfiles; /* actual number of open files */ struct mtx sigio_lock; /* mtx to protect pointers to sigio */ void __read_mostly (*mq_fdclose)(struct thread *td, int fd, struct file *fp); @@ -4048,7 +4048,7 @@ SYSCTL_INT(_kern, KERN_MAXFILES, maxfiles, CTLFLAG_RW, &maxfiles, 0, "Maximum number of files"); SYSCTL_INT(_kern, OID_AUTO, openfiles, CTLFLAG_RD, -__DEVOLATILE(int *, &openfiles), 0, "System-wide number of open files"); +&openfiles, 0, "System-wide number of open files"); /* ARGSUSED*/ static void Modified: head/sys/sys/file.h == --- head/sys/sys/file.h Wed Dec 11 22:51:02 2019(r355631) +++ head/sys/sys/file.h Wed Dec 11 23:09:12 2019(r355632) @@ -241,7 +241,6 @@ extern struct fileops badfileops; extern struct fileops socketops; extern int maxfiles; /* kernel limit on number of open files */ extern int maxfilesperproc;/* per process limit on number of open files */ -extern volatile int openfiles; /* actual number of open files */ int fget(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp); int fget_mmap(struct thread *td, int fd, cap_rights_t *rightsp, ___ 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: r355631 - head/sys/dev/nvme
Author: imp Date: Wed Dec 11 22:51:02 2019 New Revision: 355631 URL: https://svnweb.freebsd.org/changeset/base/355631 Log: Move reset to the interrutp processing stage This trims the boot time a bit more for AWS and other platforms that have nvme drives. There's no reason too do this inline. This has been in my tree a while, but IIRC I talked to Jim Harris about this at one of our face to face meetings. MFC After: 2 weeks Modified: head/sys/dev/nvme/nvme.c head/sys/dev/nvme/nvme_ctrlr.c Modified: head/sys/dev/nvme/nvme.c == --- head/sys/dev/nvme/nvme.cWed Dec 11 22:09:22 2019(r355630) +++ head/sys/dev/nvme/nvme.cWed Dec 11 22:51:02 2019(r355631) @@ -130,25 +130,6 @@ nvme_attach(device_t dev) int status; status = nvme_ctrlr_construct(ctrlr, dev); - - if (status != 0) { - nvme_ctrlr_destruct(ctrlr, dev); - return (status); - } - - /* -* Reset controller twice to ensure we do a transition from cc.en==1 to -* cc.en==0. This is because we don't really know what status the -* controller was left in when boot handed off to OS. Linux doesn't do -* this, however. If we adopt that policy, see also nvme_ctrlr_resume(). -*/ - status = nvme_ctrlr_hw_reset(ctrlr); - if (status != 0) { - nvme_ctrlr_destruct(ctrlr, dev); - return (status); - } - - status = nvme_ctrlr_hw_reset(ctrlr); if (status != 0) { nvme_ctrlr_destruct(ctrlr, dev); return (status); Modified: head/sys/dev/nvme/nvme_ctrlr.c == --- head/sys/dev/nvme/nvme_ctrlr.c Wed Dec 11 22:09:22 2019 (r355630) +++ head/sys/dev/nvme/nvme_ctrlr.c Wed Dec 11 22:51:02 2019 (r355631) @@ -909,6 +909,25 @@ void nvme_ctrlr_start_config_hook(void *arg) { struct nvme_controller *ctrlr = arg; + int status; + + /* +* Reset controller twice to ensure we do a transition from cc.en==1 to +* cc.en==0. This is because we don't really know what status the +* controller was left in when boot handed off to OS. Linux doesn't do +* this, however. If we adopt that policy, see also nvme_ctrlr_resume(). +*/ + status = nvme_ctrlr_hw_reset(ctrlr); + if (status != 0) { + nvme_ctrlr_fail(ctrlr); + return; + } + + status = nvme_ctrlr_hw_reset(ctrlr); + if (status != 0) { + nvme_ctrlr_fail(ctrlr); + return; + } nvme_qpair_reset(&ctrlr->adminq); nvme_admin_qpair_enable(&ctrlr->adminq); ___ 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: r355630 - in head/lib/libpmc/pmu-events/arch/arm64: . arm/cortex-a53 cavium/thunderx2 hisilicon/hip08
Author: emaste Date: Wed Dec 11 22:09:22 2019 New Revision: 355630 URL: https://svnweb.freebsd.org/changeset/base/355630 Log: libpmc: convert arm64 data files to proper json jevents includes a very permissive json parser that accepts invalid json, of which there are many examples in libpmc (typically extra or missing commas). Convert the arm64 files to proper json so other tools can parse them. Sponsored by: The FreeBSD Foundation Modified: head/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/branch.json head/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/bus.json head/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/other.json head/lib/libpmc/pmu-events/arch/arm64/armv8-recommended.json head/lib/libpmc/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json head/lib/libpmc/pmu-events/arch/arm64/hisilicon/hip08/core-imp-def.json Modified: head/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/branch.json == --- head/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/branch.jsonWed Dec 11 19:40:30 2019(r355629) +++ head/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/branch.jsonWed Dec 11 22:09:22 2019(r355630) @@ -1,6 +1,6 @@ [ { -"ArchStdEvent": "BR_INDIRECT_SPEC", +"ArchStdEvent": "BR_INDIRECT_SPEC" }, { "EventCode": "0xC9", Modified: head/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/bus.json == --- head/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/bus.json Wed Dec 11 19:40:30 2019(r355629) +++ head/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/bus.json Wed Dec 11 22:09:22 2019(r355630) @@ -1,8 +1,8 @@ [ { -"ArchStdEvent": "BUS_ACCESS_RD", +"ArchStdEvent": "BUS_ACCESS_RD" }, { -"ArchStdEvent": "BUS_ACCESS_WR", +"ArchStdEvent": "BUS_ACCESS_WR" } ] Modified: head/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/other.json == --- head/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/other.json Wed Dec 11 19:40:30 2019(r355629) +++ head/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/other.json Wed Dec 11 22:09:22 2019(r355630) @@ -1,9 +1,9 @@ [ { -"ArchStdEvent": "EXC_IRQ", +"ArchStdEvent": "EXC_IRQ" }, { -"ArchStdEvent": "EXC_FIQ", +"ArchStdEvent": "EXC_FIQ" }, { "EventCode": "0xC6", Modified: head/lib/libpmc/pmu-events/arch/arm64/armv8-recommended.json == --- head/lib/libpmc/pmu-events/arch/arm64/armv8-recommended.jsonWed Dec 11 19:40:30 2019(r355629) +++ head/lib/libpmc/pmu-events/arch/arm64/armv8-recommended.jsonWed Dec 11 22:09:22 2019(r355630) @@ -154,297 +154,297 @@ "EventCode": "0x61", "EventName": "BUS_ACCESS_WR", "BriefDescription": "Bus access write" - } + }, { "PublicDescription": "Bus access, Normal, Cacheable, Shareable", "EventCode": "0x62", "EventName": "BUS_ACCESS_SHARED", "BriefDescription": "Bus access, Normal, Cacheable, Shareable" - } + }, { "PublicDescription": "Bus access, not Normal, Cacheable, Shareable", "EventCode": "0x63", "EventName": "BUS_ACCESS_NOT_SHARED", "BriefDescription": "Bus access, not Normal, Cacheable, Shareable" - } + }, { "PublicDescription": "Bus access, Normal", "EventCode": "0x64", "EventName": "BUS_ACCESS_NORMAL", "BriefDescription": "Bus access, Normal" - } + }, { "PublicDescription": "Bus access, peripheral", "EventCode": "0x65", "EventName": "BUS_ACCESS_PERIPH", "BriefDescription": "Bus access, peripheral" - } + }, { "PublicDescription": "Data memory access, read", "EventCode": "0x66", "EventName": "MEM_ACCESS_RD", "BriefDescription": "Data memory access, read" - } + }, { "PublicDescription": "Data memory access, write", "EventCode": "0x67", "EventName": "MEM_ACCESS_WR", "BriefDescription": "Data memory access, write" - } + }, { "PublicDescription": "Unaligned access, read", "EventCode": "0x68", "EventName": "UNALIGNED_LD_SPEC", "BriefDescription": "Unaligned access, read" - } + }, { "PublicDescription": "Unaligned access, write", "EventCode": "0x69", "EventName": "UNALIGNED_ST_SPEC", "BriefDescription": "Unaligned access, write" - } + }, { "PublicDescription": "Unaligned access", "EventCode": "0x6a", "EventName": "UNALIGNED_LDST_SPEC", "BriefDescription": "Unaligned
Re: svn commit: r355611 - head/sys/kern
On Wed, Dec 11, 2019 at 03:52:30PM +, Andriy Gapon wrote: > Author: avg > Date: Wed Dec 11 15:52:29 2019 > New Revision: 355611 > URL: https://svnweb.freebsd.org/changeset/base/355611 > > Log: > add a sanity check to the system call registration code > > A system call number should be at least reserved. > We do not expect an attempt to register a fixed number system call > when nothing at all is known about it. > > MFC after: 3 weeks > Sponsored by: Panzura > > Modified: > head/sys/kern/kern_syscalls.c > > Modified: head/sys/kern/kern_syscalls.c > == > --- head/sys/kern/kern_syscalls.c Wed Dec 11 15:15:21 2019 > (r355610) > +++ head/sys/kern/kern_syscalls.c Wed Dec 11 15:52:29 2019 > (r355611) > @@ -120,11 +120,14 @@ kern_syscall_register(struct sysent *sysents, int *off > if (i == SYS_MAXSYSCALL) > return (ENFILE); > *offset = i; > - } else if (*offset < 0 || *offset >= SYS_MAXSYSCALL) > + } else if (*offset < 0 || *offset >= SYS_MAXSYSCALL) { > return (EINVAL); > - else if (sysents[*offset].sy_call != (sy_call_t *)lkmnosys && > - sysents[*offset].sy_call != (sy_call_t *)lkmressys) > + } else if (sysents[*offset].sy_call != (sy_call_t *)lkmnosys && > + sysents[*offset].sy_call != (sy_call_t *)lkmressys) { > + KASSERT(sysents[*offset].sy_call != NULL, > + ("undefined syscall %d", *offset)); I do not think that the assert is very useful. On debug kernels, where the development would most likely take place, its only function is to annoy developer by requiring him to reboot the host if he did not guessed a free syscall number right. I suggest to convert this into printf, might be also under bootverbose. Also, why do you say that the syscall is undefined ? I would state that it is not reusable for dynamically loaded syscall, instead. > return (EEXIST); > + } > > KASSERT(sysents[*offset].sy_thrcnt == SY_THR_ABSENT, > ("dynamic syscall is not protected")); ___ 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: r355629 - head/sys/dev/mmc/host
Author: manu Date: Wed Dec 11 19:40:30 2019 New Revision: 355629 URL: https://svnweb.freebsd.org/changeset/base/355629 Log: dwmmc: Use device_delete_children Instead of first detaching the children(s) and then delete them, use the device_delete_children function that does all of that. MFC after:1 month Suggested by: ian Modified: head/sys/dev/mmc/host/dwmmc.c Modified: head/sys/dev/mmc/host/dwmmc.c == --- head/sys/dev/mmc/host/dwmmc.c Wed Dec 11 19:32:52 2019 (r355628) +++ head/sys/dev/mmc/host/dwmmc.c Wed Dec 11 19:40:30 2019 (r355629) @@ -752,7 +752,7 @@ dwmmc_detach(device_t dev) sc = device_get_softc(dev); - ret = bus_generic_detach(dev); + ret = device_delete_children(dev); if (ret != 0) return (ret); @@ -765,12 +765,6 @@ dwmmc_detach(device_t dev) return (ret); } bus_release_resources(dev, dwmmc_spec, sc->res); - - if (sc->child) { - ret = device_delete_child(dev, sc->child); - if (ret != 0) - return (ret); - } DWMMC_LOCK_DESTROY(sc); ___ 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: r355628 - head/sys/tools
Author: kevans Date: Wed Dec 11 19:32:52 2019 New Revision: 355628 URL: https://svnweb.freebsd.org/changeset/base/355628 Log: makesyscalls.lua: trim trailing spaces/commas from args These are insignificant as far as declarations go, and we've historically allowed it. fhlinkat in ^/sys/kern/syscalls.master, for example, currently has a trailing comma after its final argument that this version of makesyscalls is ignoring (not by conscious decision). Fix it for now by actively stripping off trailing whitespace/commas until we decide to actively prohibit it. Modified: head/sys/tools/makesyscalls.lua Modified: head/sys/tools/makesyscalls.lua == --- head/sys/tools/makesyscalls.lua Wed Dec 11 18:50:23 2019 (r355627) +++ head/sys/tools/makesyscalls.lua Wed Dec 11 19:32:52 2019 (r355628) @@ -1010,6 +1010,7 @@ process_syscall_def = function(line) abort(1, "Not a signature? " .. line) end args = line:match("^[^(]+%((.+)%)[^)]*$") + args = trim(args, '[,%s]') end ::skipalt:: ___ 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: r355627 - head/sys/dev/mmc/host
Author: manu Date: Wed Dec 11 18:50:23 2019 New Revision: 355627 URL: https://svnweb.freebsd.org/changeset/base/355627 Log: dwmmc: Handle the card detect interrupt The driver used to always add the mmc device as it's child even it no card was detected. Add a function that will detect if the card is present or not and that will attach/detach the mmc device. The function is either call on attach (as we won't have the interrupt fired) or from two taskqueues. The first taskqueue will directly call the function when the sdcard was present and is now removed and the other one will delay a bit the attach when we didn't had a card and now have one. This is mostly based on comments from the sdhci driver where it describe a situation when the CD pin is detected before the others pins are connected. MFC after:1 month Modified: head/sys/dev/mmc/host/dwmmc.c head/sys/dev/mmc/host/dwmmc_altera.c head/sys/dev/mmc/host/dwmmc_hisi.c head/sys/dev/mmc/host/dwmmc_rockchip.c head/sys/dev/mmc/host/dwmmc_samsung.c head/sys/dev/mmc/host/dwmmc_var.h Modified: head/sys/dev/mmc/host/dwmmc.c == --- head/sys/dev/mmc/host/dwmmc.c Wed Dec 11 18:43:39 2019 (r355626) +++ head/sys/dev/mmc/host/dwmmc.c Wed Dec 11 18:50:23 2019 (r355627) @@ -45,6 +45,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include @@ -127,6 +129,7 @@ static int dma_done(struct dwmmc_softc *, struct mmc_c static int dma_stop(struct dwmmc_softc *); static void pio_read(struct dwmmc_softc *, struct mmc_command *); static void pio_write(struct dwmmc_softc *, struct mmc_command *); +static void dwmmc_handle_card_present(struct dwmmc_softc *sc, bool is_present); static struct resource_spec dwmmc_spec[] = { { SYS_RES_MEMORY, 0, RF_ACTIVE }, @@ -374,7 +377,8 @@ dwmmc_intr(void *arg) sc->dto_rcvd = 1; if (reg & SDMMC_INTMASK_CD) { - /* XXX: Handle card detect */ + dwmmc_handle_card_present(sc, + READ4(sc, SDMMC_CDETECT) == 0 ? true : false); } } @@ -407,6 +411,56 @@ dwmmc_intr(void *arg) DWMMC_UNLOCK(sc); } +static void +dwmmc_handle_card_present(struct dwmmc_softc *sc, bool is_present) +{ + bool was_present; + + was_present = sc->child != NULL; + + if (!was_present && is_present) { + taskqueue_enqueue_timeout(taskqueue_swi_giant, + &sc->card_delayed_task, -(hz / 2)); + } else if (was_present && !is_present) { + taskqueue_enqueue(taskqueue_swi_giant, &sc->card_task); + } +} + +static void +dwmmc_card_task(void *arg, int pending __unused) +{ + struct dwmmc_softc *sc = arg; + + DWMMC_LOCK(sc); + + if (READ4(sc, SDMMC_CDETECT) == 0) { + if (sc->child == NULL) { + if (bootverbose) + device_printf(sc->dev, "Card inserted\n"); + + sc->child = device_add_child(sc->dev, "mmc", -1); + DWMMC_UNLOCK(sc); + if (sc->child) { + device_set_ivars(sc->child, sc); + (void)device_probe_and_attach(sc->child); + } + } else + DWMMC_UNLOCK(sc); + + } else { + /* Card isn't present, detach if necessary */ + if (sc->child != NULL) { + if (bootverbose) + device_printf(sc->dev, "Card removed\n"); + + DWMMC_UNLOCK(sc); + device_delete_child(sc->dev, sc->child); + sc->child = NULL; + } else + DWMMC_UNLOCK(sc); + } +} + static int parse_fdt(struct dwmmc_softc *sc) { @@ -677,8 +731,17 @@ dwmmc_attach(device_t dev) sc->host.caps |= MMC_CAP_HSPEED; sc->host.caps |= MMC_CAP_SIGNALING_330; - sc->child = device_add_child(dev, "mmc", -1); - return (bus_generic_attach(dev)); + TASK_INIT(&sc->card_task, 0, dwmmc_card_task, sc); + TIMEOUT_TASK_INIT(taskqueue_swi_giant, &sc->card_delayed_task, 0, + dwmmc_card_task, sc); + + /* +* Schedule a card detection as we won't get an interrupt +* if the card is inserted when we attach +*/ + dwmmc_card_task(sc, 0); + + return (0); } int @@ -693,7 +756,9 @@ dwmmc_detach(device_t dev) if (ret != 0) return (ret); - DWMMC_LOCK_DESTROY(sc); + taskqueue_drain(taskqueue_swi_giant, &sc->card_task); + taskqueue_drain_timeout(taskqueue_swi_giant, &sc->card_delayed_task); + if (sc->intr_cookie != NULL) { ret
svn commit: r355626 - in head/sys/modules/rockchip: . rk_dwmmc
Author: manu Date: Wed Dec 11 18:43:39 2019 New Revision: 355626 URL: https://svnweb.freebsd.org/changeset/base/355626 Log: arm64: rockchip: Add a module for rk_dwmmc This is mostly needed for dev/debug as most users will have their root on the sdcard or emmc. MFC after:1 month Added: head/sys/modules/rockchip/rk_dwmmc/ head/sys/modules/rockchip/rk_dwmmc/Makefile (contents, props changed) Modified: head/sys/modules/rockchip/Makefile Modified: head/sys/modules/rockchip/Makefile == --- head/sys/modules/rockchip/Makefile Wed Dec 11 18:41:13 2019 (r355625) +++ head/sys/modules/rockchip/Makefile Wed Dec 11 18:43:39 2019 (r355626) @@ -3,6 +3,7 @@ SUBDIR = \ rk_i2c \ - rk805 + rk805 \ + rk_dwmmc .include Added: head/sys/modules/rockchip/rk_dwmmc/Makefile == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/modules/rockchip/rk_dwmmc/Makefile Wed Dec 11 18:43:39 2019 (r355626) @@ -0,0 +1,14 @@ +# $FreeBSD$ + +.PATH: ${SRCTOP}/sys/dev/mmc/host/ + +KMOD= rk_dwmmc +SRCS= dwmmc.c dwmmc_rockchip.c + +SRCS+= \ + bus_if.h \ + clknode_if.h \ + device_if.h \ + ofw_bus_if.h + +.include ___ 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: r355625 - head/sys/dev/mmc/host
Author: manu Date: Wed Dec 11 18:41:13 2019 New Revision: 355625 URL: https://svnweb.freebsd.org/changeset/base/355625 Log: dwmmc: Add a detach method This method will disable the regulators, clocks and assert the reset of the module. It will also detach it's children (the mmc device) and release it's resources. While here enable the regulators on attach as we need them to power up the sdcard or emmc. MFC after:1 month Modified: head/sys/dev/mmc/host/dwmmc.c head/sys/dev/mmc/host/dwmmc_rockchip.c head/sys/dev/mmc/host/dwmmc_var.h Modified: head/sys/dev/mmc/host/dwmmc.c == --- head/sys/dev/mmc/host/dwmmc.c Wed Dec 11 18:39:05 2019 (r355624) +++ head/sys/dev/mmc/host/dwmmc.c Wed Dec 11 18:41:13 2019 (r355625) @@ -537,6 +537,22 @@ parse_fdt(struct dwmmc_softc *sc) clk_get_freq(sc->ciu, &sc->bus_hz); } + /* Enable regulators */ + if (sc->vmmc != NULL) { + error = regulator_enable(sc->vmmc); + if (error != 0) { + device_printf(sc->dev, "Cannot enable vmmc regulator\n"); + goto fail; + } + } + if (sc->vqmmc != NULL) { + error = regulator_enable(sc->vqmmc); + if (error != 0) { + device_printf(sc->dev, "Cannot enable vqmmc regulator\n"); + goto fail; + } + } + /* Take dwmmc out of reset */ if (sc->hwreset != NULL) { error = hwreset_deassert(sc->hwreset); @@ -661,8 +677,51 @@ dwmmc_attach(device_t dev) sc->host.caps |= MMC_CAP_HSPEED; sc->host.caps |= MMC_CAP_SIGNALING_330; - device_add_child(dev, "mmc", -1); + sc->child = device_add_child(dev, "mmc", -1); return (bus_generic_attach(dev)); +} + +int +dwmmc_detach(device_t dev) +{ + struct dwmmc_softc *sc; + int ret; + + sc = device_get_softc(dev); + + ret = bus_generic_detach(dev); + if (ret != 0) + return (ret); + + DWMMC_LOCK_DESTROY(sc); + if (sc->intr_cookie != NULL) { + ret = bus_teardown_intr(dev, sc->res[1], sc->intr_cookie); + if (ret != 0) + return (ret); + } + bus_release_resources(dev, dwmmc_spec, sc->res); + + if (sc->child) { + ret = device_delete_child(dev, sc->child); + if (ret != 0) + return (ret); + } + +#ifdef EXT_RESOURCES + if (sc->hwreset != NULL && hwreset_deassert(sc->hwreset) != 0) + device_printf(sc->dev, "cannot deassert reset\n"); + if (sc->biu != NULL && clk_disable(sc->biu) != 0) + device_printf(sc->dev, "cannot disable biu clock\n"); + if (sc->ciu != NULL && clk_disable(sc->ciu) != 0) + device_printf(sc->dev, "cannot disable ciu clock\n"); + + if (sc->vmmc && regulator_disable(sc->vmmc) != 0) + device_printf(sc->dev, "Cannot disable vmmc regulator\n"); + if (sc->vqmmc && regulator_disable(sc->vqmmc) != 0) + device_printf(sc->dev, "Cannot disable vqmmc regulator\n"); +#endif + + return (0); } static int Modified: head/sys/dev/mmc/host/dwmmc_rockchip.c == --- head/sys/dev/mmc/host/dwmmc_rockchip.c Wed Dec 11 18:39:05 2019 (r355624) +++ head/sys/dev/mmc/host/dwmmc_rockchip.c Wed Dec 11 18:41:13 2019 (r355625) @@ -133,6 +133,7 @@ static device_method_t rockchip_dwmmc_methods[] = { /* bus interface */ DEVMETHOD(device_probe, rockchip_dwmmc_probe), DEVMETHOD(device_attach, rockchip_dwmmc_attach), + DEVMETHOD(device_detach, dwmmc_detach), DEVMETHOD_END }; Modified: head/sys/dev/mmc/host/dwmmc_var.h == --- head/sys/dev/mmc/host/dwmmc_var.h Wed Dec 11 18:39:05 2019 (r355624) +++ head/sys/dev/mmc/host/dwmmc_var.h Wed Dec 11 18:41:13 2019 (r355625) @@ -61,6 +61,7 @@ struct dwmmc_softc { uint32_tuse_pio; uint32_tpwren_inverted; u_int desc_count; + device_tchild; int (*update_ios)(struct dwmmc_softc *sc, struct mmc_ios *ios); @@ -94,5 +95,6 @@ struct dwmmc_softc { DECLARE_CLASS(dwmmc_driver); int dwmmc_attach(device_t); +int dwmmc_detach(device_t); #endif ___ 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: r355624 - head/sys/arm64/rockchip/clk
Author: manu Date: Wed Dec 11 18:39:05 2019 New Revision: 355624 URL: https://svnweb.freebsd.org/changeset/base/355624 Log: arm64: rk3328: Add the *clk_peri_niu clocks Those clocks are always enable by default and are not really explained in the TRM but the reason we had them is that they have the periph clock as a parent and those parent should never be disable which can happen if we disable all the childs. The current childs are the sd/emmc/sdio clocks so the board will hang if we disable them. MFC after:1 month Modified: head/sys/arm64/rockchip/clk/rk3328_cru.c Modified: head/sys/arm64/rockchip/clk/rk3328_cru.c == --- head/sys/arm64/rockchip/clk/rk3328_cru.cWed Dec 11 18:36:07 2019 (r355623) +++ head/sys/arm64/rockchip/clk/rk3328_cru.cWed Dec 11 18:39:05 2019 (r355624) @@ -102,6 +102,8 @@ static struct rk_cru_gate rk3328_gates[] = { CRU_GATE(HCLK_SDMMC, "hclk_sdmmc", "hclk_peri", 0x24C, 0) CRU_GATE(HCLK_SDIO, "hclk_sdio", "hclk_peri", 0x24C, 1) CRU_GATE(HCLK_EMMC, "hclk_emmc", "hclk_peri", 0x24C, 2) + CRU_GATE(0, "hclk_peri_niu", "hclk_peri", 0x24C, 12) + CRU_GATE(0, "pclk_peri_niu", "hclk_peri", 0x24C, 13) CRU_GATE(HCLK_SDMMC_EXT, "hclk_sdmmc_ext", "hclk_peri", 0x24C, 15) }; ___ 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: r355623 - in head/sys: arm64/conf conf
Author: manu Date: Wed Dec 11 18:36:07 2019 New Revision: 355623 URL: https://svnweb.freebsd.org/changeset/base/355623 Log: arm64: Add explicit devices for dwmmc variant We used to include the hisi version if soc_hisi_hi6220 was present, include the altera version if dwmmc_altera was present and include the rockchip version if soc_rockchip_rk3328 was present. Now every version have it's own device directive. The rockchip version isn't named dwmmc_rockchip because all other rockchip driver are named rk_XXX. MFC after:1 month Modified: head/sys/arm64/conf/GENERIC head/sys/conf/files.arm64 Modified: head/sys/arm64/conf/GENERIC == --- head/sys/arm64/conf/GENERIC Wed Dec 11 18:24:43 2019(r355622) +++ head/sys/arm64/conf/GENERIC Wed Dec 11 18:36:07 2019(r355623) @@ -196,6 +196,8 @@ device mmc # mmc/sd bus device mmcsd # mmc/sd flash cards device dwmmc device dwmmc_altera +device dwmmc_hisi +device rk_dwmmc device rk_emmcphy # Serial (COM) ports Modified: head/sys/conf/files.arm64 == --- head/sys/conf/files.arm64 Wed Dec 11 18:24:43 2019(r355622) +++ head/sys/conf/files.arm64 Wed Dec 11 18:36:07 2019(r355623) @@ -241,9 +241,9 @@ dev/hwpmc/hwpmc_arm64.c optionalhwpmc dev/hwpmc/hwpmc_arm64_md.c optionalhwpmc dev/mbox/mbox_if.m optionalsoc_brcm_bcm2837 dev/mmc/host/dwmmc.c optionaldwmmc fdt -dev/mmc/host/dwmmc_altera.coptionaldwmmc fdt dwmmc_altera -dev/mmc/host/dwmmc_hisi.c optionaldwmmc fdt soc_hisi_hi6220 -dev/mmc/host/dwmmc_rockchip.c optionaldwmmc fdt soc_rockchip_rk3328 +dev/mmc/host/dwmmc_altera.coptionaldwmmc dwmmc_altera fdt +dev/mmc/host/dwmmc_hisi.c optionaldwmmc dwmmc_hisi fdt +dev/mmc/host/dwmmc_rockchip.c optionaldwmmc rk_dwmmc fdt dev/neta/if_mvneta_fdt.c optionalneta fdt dev/neta/if_mvneta.c optionalneta mdio mii dev/ofw/ofw_cpu.c optionalfdt ___ 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: r355622 - head/sys/arm/linux
Author: emaste Date: Wed Dec 11 18:24:43 2019 New Revision: 355622 URL: https://svnweb.freebsd.org/changeset/base/355622 Log: arm linuxulator: regen sysent after r355621 Modified: head/sys/arm/linux/linux_proto.h head/sys/arm/linux/linux_systrace_args.c Modified: head/sys/arm/linux/linux_proto.h == --- head/sys/arm/linux/linux_proto.hWed Dec 11 18:21:35 2019 (r355621) +++ head/sys/arm/linux/linux_proto.hWed Dec 11 18:24:43 2019 (r355622) @@ -761,14 +761,14 @@ struct linux_mq_timedsend_args { char msg_ptr_l_[PADL_(const char *)]; const char * msg_ptr; char msg_ptr_r_[PADR_(const char *)]; char msg_len_l_[PADL_(size_t)]; size_t msg_len; char msg_len_r_[PADR_(size_t)]; char msg_prio_l_[PADL_(unsigned int)]; unsigned int msg_prio; char msg_prio_r_[PADR_(unsigned int)]; - char abs_timeout_l_[PADL_(const structl_timespec *)]; const structl_timespec * abs_timeout; char abs_timeout_r_[PADR_(const structl_timespec *)]; + char abs_timeout_l_[PADL_(const struct l_timespec *)]; const struct l_timespec * abs_timeout; char abs_timeout_r_[PADR_(const struct l_timespec *)]; }; struct linux_mq_timedreceive_args { char mqd_l_[PADL_(l_mqd_t)]; l_mqd_t mqd; char mqd_r_[PADR_(l_mqd_t)]; char msg_ptr_l_[PADL_(char *)]; char * msg_ptr; char msg_ptr_r_[PADR_(char *)]; char msg_len_l_[PADL_(size_t)]; size_t msg_len; char msg_len_r_[PADR_(size_t)]; char msg_prio_l_[PADL_(unsigned int)]; unsigned int msg_prio; char msg_prio_r_[PADR_(unsigned int)]; - char abs_timeout_l_[PADL_(const structl_timespec *)]; const structl_timespec * abs_timeout; char abs_timeout_r_[PADR_(const structl_timespec *)]; + char abs_timeout_l_[PADL_(const struct l_timespec *)]; const struct l_timespec * abs_timeout; char abs_timeout_r_[PADR_(const struct l_timespec *)]; }; struct linux_mq_notify_args { char mqd_l_[PADL_(l_mqd_t)]; l_mqd_t mqd; char mqd_r_[PADR_(l_mqd_t)]; Modified: head/sys/arm/linux/linux_systrace_args.c == --- head/sys/arm/linux/linux_systrace_args.cWed Dec 11 18:21:35 2019 (r355621) +++ head/sys/arm/linux/linux_systrace_args.cWed Dec 11 18:24:43 2019 (r355622) @@ -1684,7 +1684,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg uarg[1] = (intptr_t) p->msg_ptr; /* const char * */ uarg[2] = p->msg_len; /* size_t */ uarg[3] = p->msg_prio; /* unsigned int */ - uarg[4] = (intptr_t) p->abs_timeout; /* const structl_timespec * */ + uarg[4] = (intptr_t) p->abs_timeout; /* const struct l_timespec * */ *n_args = 5; break; } @@ -1695,7 +1695,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg uarg[1] = (intptr_t) p->msg_ptr; /* char * */ uarg[2] = p->msg_len; /* size_t */ uarg[3] = p->msg_prio; /* unsigned int */ - uarg[4] = (intptr_t) p->abs_timeout; /* const structl_timespec * */ + uarg[4] = (intptr_t) p->abs_timeout; /* const struct l_timespec * */ *n_args = 5; break; } @@ -5060,7 +5060,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *d p = "unsigned int"; break; case 4: - p = "userland const structl_timespec *"; + p = "userland const struct l_timespec *"; break; default: break; @@ -5082,7 +5082,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *d p = "unsigned int"; break; case 4: - p = "userland const structl_timespec *"; + p = "userland const struct l_timespec *"; break; default: break; ___ 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: r355621 - head/sys/arm/linux
Author: emaste Date: Wed Dec 11 18:21:35 2019 New Revision: 355621 URL: https://svnweb.freebsd.org/changeset/base/355621 Log: arm linuxulator: put syscall type and argument on one line Modified: head/sys/arm/linux/syscalls.master Modified: head/sys/arm/linux/syscalls.master == --- head/sys/arm/linux/syscalls.master Wed Dec 11 17:52:06 2019 (r355620) +++ head/sys/arm/linux/syscalls.master Wed Dec 11 18:21:35 2019 (r355621) @@ -1270,8 +1270,7 @@ const char *msg_ptr, size_t msg_len, unsigned int msg_prio, - const struct - l_timespec *abs_timeout + const struct l_timespec *abs_timeout ); } 277AUE_NULLSTD { @@ -1280,8 +1279,7 @@ char *msg_ptr, size_t msg_len, unsigned int msg_prio, - const struct - l_timespec *abs_timeout + const struct l_timespec *abs_timeout ); } 278AUE_NULLSTD { ___ 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: r355620 - head/sys/arm/linux
Author: emaste Date: Wed Dec 11 17:52:06 2019 New Revision: 355620 URL: https://svnweb.freebsd.org/changeset/base/355620 Log: arm linuxulator: add "make sysent" generated files Sponsored by: The FreeBSD Foundation Added: head/sys/arm/linux/linux_proto.h (contents, props changed) head/sys/arm/linux/linux_syscall.h (contents, props changed) head/sys/arm/linux/linux_syscalls.c (contents, props changed) head/sys/arm/linux/linux_sysent.c (contents, props changed) head/sys/arm/linux/linux_systrace_args.c (contents, props changed) Added: head/sys/arm/linux/linux_proto.h == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/linux/linux_proto.hWed Dec 11 17:52:06 2019 (r355620) @@ -0,0 +1,1826 @@ +/* + * System call prototypes. + * + * DO NOT EDIT-- this file is automatically @generated. + * $FreeBSD$ + */ + +#ifndef _LINUX_SYSPROTO_H_ +#define_LINUX_SYSPROTO_H_ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +struct proc; + +struct thread; + +#definePAD_(t) (sizeof(register_t) <= sizeof(t) ? \ + 0 : sizeof(register_t) - sizeof(t)) + +#if BYTE_ORDER == LITTLE_ENDIAN +#definePADL_(t)0 +#definePADR_(t)PAD_(t) +#else +#definePADL_(t)PAD_(t) +#definePADR_(t)0 +#endif + +#definenosys linux_nosys +struct linux_exit_args { + char rval_l_[PADL_(int)]; int rval; char rval_r_[PADR_(int)]; +}; +struct linux_fork_args { + register_t dummy; +}; +struct linux_open_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; + char mode_l_[PADL_(l_int)]; l_int mode; char mode_r_[PADR_(l_int)]; +}; +struct linux_creat_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char mode_l_[PADL_(l_int)]; l_int mode; char mode_r_[PADR_(l_int)]; +}; +struct linux_link_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char to_l_[PADL_(char *)]; char * to; char to_r_[PADR_(char *)]; +}; +struct linux_unlink_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; +}; +struct linux_execve_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char argp_l_[PADL_(char **)]; char ** argp; char argp_r_[PADR_(char **)]; + char envp_l_[PADL_(char **)]; char ** envp; char envp_r_[PADR_(char **)]; +}; +struct linux_chdir_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; +}; +struct linux_mknod_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char mode_l_[PADL_(l_int)]; l_int mode; char mode_r_[PADR_(l_int)]; + char dev_l_[PADL_(l_dev_t)]; l_dev_t dev; char dev_r_[PADR_(l_dev_t)]; +}; +struct linux_chmod_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char mode_l_[PADL_(l_mode_t)]; l_mode_t mode; char mode_r_[PADR_(l_mode_t)]; +}; +struct linux_lchown16_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char uid_l_[PADL_(l_uid16_t)]; l_uid16_t uid; char uid_r_[PADR_(l_uid16_t)]; + char gid_l_[PADL_(l_gid16_t)]; l_gid16_t gid; char gid_r_[PADR_(l_gid16_t)]; +}; +struct linux_lseek_args { + char fdes_l_[PADL_(l_uint)]; l_uint fdes; char fdes_r_[PADR_(l_uint)]; + char off_l_[PADL_(l_off_t)]; l_off_t off; char off_r_[PADR_(l_off_t)]; + char whence_l_[PADL_(l_int)]; l_int whence; char whence_r_[PADR_(l_int)]; +}; +struct linux_getpid_args { + register_t dummy; +}; +struct linux_mount_args { + char specialfile_l_[PADL_(char *)]; char * specialfile; char specialfile_r_[PADR_(char *)]; + char dir_l_[PADL_(char *)]; char * dir; char dir_r_[PADR_(char *)]; + char filesystemtype_l_[PADL_(char *)]; char * filesystemtype; char filesystemtype_r_[PADR_(char *)]; + char rwflag_l_[PADL_(l_ulong)]; l_ulong rwflag; char rwflag_r_[PADR_(l_ulong)]; + char data_l_[PADL_(void *)]; void * data; char data_r_[PADR_(void *)]; +}; +struct linux_setuid16_args { + char uid_l_[PADL_(l_uid16_t)]; l_uid16_t uid; char uid_r_[PADR_(l_uid16_t)]; +}; +struct linux_getuid16_args { + register_t dummy; +}; +struct linux_pause_args { + register_t dummy; +}; +struct linux_access_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char amode_l_[PADL_(l_int)]; l_int amode; char amode_r_[PADR_(l_int)]; +}; +struct linux_nice_args { + char inc_l_[PADL_(l_int)]; l_int inc; char inc_r_[PADR_(l_int)]; +}; +struct linux_kill_args { + char pid_l_[PADL_(l_int)]; l_int pid; char pid_r_[PADR_(l_int)]; +
svn commit: r355619 - head
Author: emaste Date: Wed Dec 11 17:48:34 2019 New Revision: 355619 URL: https://svnweb.freebsd.org/changeset/base/355619 Log: connect arm linuxulator to top-level make sysent Reported by: kevans Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 == --- head/Makefile.inc1 Wed Dec 11 17:38:15 2019(r355618) +++ head/Makefile.inc1 Wed Dec 11 17:48:34 2019(r355619) @@ -1509,6 +1509,7 @@ _sysent_dirs+=sys/compat/cloudabi32 \ sys/compat/cloudabi64 _sysent_dirs+= sys/amd64/linux \ sys/amd64/linux32 \ + sys/arm/linux \ sys/arm64/linux \ sys/i386/linux sysent: .PHONY ___ 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"
Re: svn commit: r355430 - head/sys/cam/scsi
At some point, we used to replace bad chars with spaces, but that may have been two ata stacks ago.. Warner On Wed, Dec 11, 2019, 9:35 AM Alan Somers wrote: > No, and there's no possibility of connecting a Windows host to this > particular device. We have some Oracle Solaris servers hooked up to these > expanders, but it looks like Solaris completely ignores the offending > element type. > -Alan > > On Wed, Dec 11, 2019 at 10:19 AM Scott Long wrote: > >> U+FFFD doesn’t make sense for an ASCII string, but 0x3F might. Any idea >> what Windows shows for this device? >> >> Scott >> >> > On Dec 11, 2019, at 8:42 AM, Alan Somers wrote: >> > >> > In this case the offending descriptor is solid 0xFF, so replacing >> individual characters wouldn't accomplish anything. I can imagine a >> different buggy expander that has just one or two bad characters. In that >> case, it would make sense to replace them. But replace them with what? >> The UTF replacement character 0xFFFD isn't an option, because the result is >> supposed to be ASCII. There's no other obvious choice, which is why I >> chose to replace the whole thing. >> > -Alan >> > >> > On Fri, Dec 6, 2019 at 2:40 AM Steven Hartland < >> steven.hartl...@multiplay.co.uk> wrote: >> > If the illegal chars where removed or replaced would the result be >> useful, if so might that be a better approach? >> > >> > On Fri, 6 Dec 2019 at 00:06, Alan Somers wrote: >> > Author: asomers >> > Date: Fri Dec 6 00:06:05 2019 >> > New Revision: 355430 >> > URL: https://svnweb.freebsd.org/changeset/base/355430 >> > >> > Log: >> > ses: sanitize illegal strings in SES element descriptors >> > >> > The SES4r3 standard requires that element descriptors may only >> contain ASCII >> > characters in the range 0x20 to 0x7e. Some SuperMicro expanders >> violate >> > that rule. This patch adds a sanity check to ses(4). Descriptors in >> > violation will be replaced by "". >> > >> > This patch fixes "sesutil --libxo xml" on such systems. Previously >> it would >> > generate non-well-formed XML output. >> > >> > PR: 241929 >> > Reviewed by: allanjude >> > MFC after:2 weeks >> > Sponsored by: Axcient >> > >> > Modified: >> > head/sys/cam/scsi/scsi_enc_ses.c >> > >> > Modified: head/sys/cam/scsi/scsi_enc_ses.c >> > >> == >> > --- head/sys/cam/scsi/scsi_enc_ses.cThu Dec 5 19:39:51 2019 >> (r355429) >> > +++ head/sys/cam/scsi/scsi_enc_ses.cFri Dec 6 00:06:05 2019 >> (r355430) >> > @@ -110,7 +110,7 @@ typedef struct ses_addl_status { >> > typedef struct ses_element { >> > uint8_t eip;/* eip bit is set */ >> > uint16_t descr_len; /* length of the descriptor */ >> > - char *descr;/* descriptor for this object */ >> > + const char *descr; /* descriptor for this object */ >> > struct ses_addl_status addl;/* additional status info */ >> > } ses_element_t; >> > >> > @@ -1977,6 +1977,35 @@ ses_publish_cache(enc_softc_t *enc, struct >> enc_fsm_sta >> > return (0); >> > } >> > >> > +/* >> > + * \brief Sanitize an element descriptor >> > + * >> > + * The SES4r3 standard, sections 3.1.2 and 6.1.10, specifies that >> element >> > + * descriptors may only contain ASCII characters in the range 0x20 to >> 0x7e. >> > + * But some vendors violate that rule. Ensure that we only expose >> compliant >> > + * descriptors to userland. >> > + * >> > + * \param desc SES element descriptor as reported by the >> hardware >> > + * \param len Length of desc in bytes, not necessarily >> including >> > + * trailing NUL. It will be modified if desc is >> invalid. >> > + */ >> > +static const char* >> > +ses_sanitize_elm_desc(const char *desc, uint16_t *len) >> > +{ >> > + const char *invalid = ""; >> > + int i; >> > + >> > + for (i = 0; i < *len; i++) { >> > + if (desc[i] < 0x20 || desc[i] > 0x7e) { >> > + *len = strlen(invalid); >> > + return (invalid); >> > + } else if (desc[i] == 0) { >> > + break; >> > + } >> > + } >> > + return (desc); >> > +} >> > + >> > /** >> > * \brief Parse the descriptors for each object. >> > * >> > @@ -2061,7 +2090,8 @@ ses_process_elm_descs(enc_softc_t *enc, struct >> enc_fsm >> > if (length > 0) { >> > elmpriv = element->elm_private; >> > elmpriv->descr_len = length; >> > - elmpriv->descr = &buf[offset]; >> > + elmpriv->descr = >> ses_sanitize_elm_desc(&buf[offset], >> > + &elmpriv->descr_len); >> > } >> > >> > /* skip over the descriptor itself */ >> >> ___ sv
svn commit: r355616 - in head: bin/ls lib/libarchive lib/libbsnmp/libbsnmp lib/libc lib/libfetch lib/libpam/modules/pam_unix lib/libpcap lib/libproc lib/libradius libexec/fingerd libexec/ftpd libex...
Author: sjg Date: Wed Dec 11 17:37:37 2019 New Revision: 355616 URL: https://svnweb.freebsd.org/changeset/base/355616 Log: Add Makefile.depend.options Leaf directories that have dependencies impacted by options need a Makefile.depend.options file to avoid churn in Makefile.depend DIRDEPS for cases such as OPENSSL, TCP_WRAPPERS etc can be set in local.dirdeps-options.mk which can add to those set in Makefile.depend.options See share/mk/dirdeps-options.mk Reviewed by: bdrewery MFC after:1 week Sponsored by: Juniper Networks Differential Revision: https://reviews.freebsd.org/D22469 Added: head/bin/ls/Makefile.depend.options (contents, props changed) head/lib/libarchive/Makefile.depend.options (contents, props changed) head/lib/libbsnmp/libbsnmp/Makefile.depend.options (contents, props changed) head/lib/libc/Makefile.depend.options (contents, props changed) head/lib/libfetch/Makefile.depend.options (contents, props changed) head/lib/libpam/modules/pam_unix/Makefile.depend.options (contents, props changed) head/lib/libpcap/Makefile.depend.options (contents, props changed) head/lib/libproc/Makefile.depend.options (contents, props changed) head/lib/libradius/Makefile.depend.options (contents, props changed) head/libexec/fingerd/Makefile.depend.options (contents, props changed) head/libexec/ftpd/Makefile.depend.options (contents, props changed) head/libexec/telnetd/Makefile.depend.options (contents, props changed) head/libexec/tftpd/Makefile.depend.options (contents, props changed) head/sbin/dhclient/Makefile.depend.options (contents, props changed) head/sbin/dumpon/Makefile.depend.options (contents, props changed) head/sbin/ifconfig/Makefile.depend.options (contents, props changed) head/sbin/ping/Makefile.depend.options (contents, props changed) head/sbin/ping6/Makefile.depend.options (contents, props changed) head/sbin/rtsol/Makefile.depend.options (contents, props changed) head/sbin/savecore/Makefile.depend.options (contents, props changed) head/secure/usr.bin/ssh/Makefile.depend.options (contents, props changed) head/secure/usr.sbin/sshd/Makefile.depend.options (contents, props changed) head/usr.bin/brandelf/Makefile.depend.options (contents, props changed) head/usr.bin/chkey/Makefile.depend.options (contents, props changed) head/usr.bin/chpass/Makefile.depend.options (contents, props changed) head/usr.bin/factor/Makefile.depend.options (contents, props changed) head/usr.bin/grep/Makefile.depend.options (contents, props changed) head/usr.bin/gzip/Makefile.depend.options (contents, props changed) head/usr.bin/head/Makefile.depend.options (contents, props changed) head/usr.bin/kdump/Makefile.depend.options (contents, props changed) head/usr.bin/login/Makefile.depend.options (contents, props changed) head/usr.bin/netstat/Makefile.depend.options (contents, props changed) head/usr.bin/nm/Makefile.depend.options (contents, props changed) head/usr.bin/readelf/Makefile.depend.options (contents, props changed) head/usr.bin/size/Makefile.depend.options (contents, props changed) head/usr.bin/sort/Makefile.depend.options (contents, props changed) head/usr.bin/strings/Makefile.depend.options (contents, props changed) head/usr.bin/su/Makefile.depend.options (contents, props changed) head/usr.bin/tail/Makefile.depend.options (contents, props changed) head/usr.bin/telnet/Makefile.depend.options (contents, props changed) head/usr.bin/wc/Makefile.depend.options (contents, props changed) head/usr.sbin/amd/amd/Makefile.depend.options (contents, props changed) head/usr.sbin/bhyve/Makefile.depend.options (contents, props changed) head/usr.sbin/bsnmpd/bsnmpd/Makefile.depend.options (contents, props changed) head/usr.sbin/fstyp/Makefile.depend.options (contents, props changed) head/usr.sbin/gssd/Makefile.depend.options (contents, props changed) head/usr.sbin/inetd/Makefile.depend.options (contents, props changed) head/usr.sbin/ngctl/Makefile.depend.options (contents, props changed) head/usr.sbin/ntp/ntp-keygen/Makefile.depend.options (contents, props changed) head/usr.sbin/ntp/ntpd/Makefile.depend.options (contents, props changed) head/usr.sbin/ntp/ntpdate/Makefile.depend.options (contents, props changed) head/usr.sbin/ntp/ntpdc/Makefile.depend.options (contents, props changed) head/usr.sbin/ntp/ntpq/Makefile.depend.options (contents, props changed) head/usr.sbin/ntp/sntp/Makefile.depend.options (contents, props changed) head/usr.sbin/rpcbind/Makefile.depend.options (contents, props changed) head/usr.sbin/rtsold/Makefile.depend.options (contents, props changed) head/usr.sbin/sendmail/Makefile.depend.options (contents, props changed) head/usr.sbin/tcpdump/tcpdump/Makefile.depend.options (contents, props changed) head/usr.sbin/traceroute/Makefile.depend.op
svn commit: r355618 - in head: lib/libbsnmp/libbsnmp lib/libgcc_eh lib/libmagic lib/libpmc share/mk targets
Author: sjg Date: Wed Dec 11 17:38:15 2019 New Revision: 355618 URL: https://svnweb.freebsd.org/changeset/base/355618 Log: Update dirdeps.mk and gendirdeps.mk The env space consumed by exporting all libc's .meta files left little room for command line, so unexport when done. Update dirdeps.mk to latest and add dirdeps-targets.mk to simplify/update targets/Makefile Makefile changes to go with Makefile.depend changes in D22494 Reviewed by: bdrewery MFC after:1 week Sponsored by: Juniper Networks Differential Revision: https://reviews.freebsd.org/D22495 Added: head/share/mk/dirdeps-targets.mk (contents, props changed) head/share/mk/local.dirdeps-options.mk (contents, props changed) Modified: head/lib/libbsnmp/libbsnmp/Makefile head/lib/libgcc_eh/Makefile head/lib/libmagic/Makefile head/lib/libpmc/Makefile head/share/mk/dirdeps.mk head/share/mk/gendirdeps.mk head/share/mk/local.dirdeps.mk head/share/mk/local.gendirdeps.mk head/share/mk/local.meta.sys.mk head/share/mk/meta.sys.mk head/targets/Makefile head/targets/Makefile.inc Modified: head/lib/libbsnmp/libbsnmp/Makefile == --- head/lib/libbsnmp/libbsnmp/Makefile Wed Dec 11 17:37:53 2019 (r355617) +++ head/lib/libbsnmp/libbsnmp/Makefile Wed Dec 11 17:38:15 2019 (r355618) @@ -24,12 +24,17 @@ SRCS+= snmptc.h INCS= asn1.h snmp.h snmpagent.h snmpclient.h MAN= asn1.3 bsnmpagent.3 bsnmpclient.3 bsnmplib.3 +.if ${MK_DIRDEPS_BUILD} == "yes" +GENSNMPTREE?= ${HOST_OBJTOP}/usr.sbin/bsnmpd/gensnmptree/gensnmptree +.endif +GENSNMPTREE?= gensnmptree + snmptc.h : tc.def (\ echo "/* autogenerated from tc.def */";\ echo "#ifndef snmptc_h_1529923773";\ echo "#define snmptc_h_1529923773";\ - gensnmptree -E -f <${.ALLSRC};\ + ${GENSNMPTREE} -E -f <${.ALLSRC};\ echo "#endif" ; \ ) >${.TARGET} Modified: head/lib/libgcc_eh/Makefile == --- head/lib/libgcc_eh/Makefile Wed Dec 11 17:37:53 2019(r355617) +++ head/lib/libgcc_eh/Makefile Wed Dec 11 17:38:15 2019(r355618) @@ -10,4 +10,10 @@ WARNS?= 2 .include "Makefile.inc" +.if ${.MAKE.LEVEL} > 0 +# avoid circular dependencies +GENDIRDEPS_FILTER+= Nlib/msun +CFLAGS+= -I${SRCTOP}/lib/msun/src +.endif + .include Modified: head/lib/libmagic/Makefile == --- head/lib/libmagic/Makefile Wed Dec 11 17:37:53 2019(r355617) +++ head/lib/libmagic/Makefile Wed Dec 11 17:38:15 2019(r355618) @@ -40,12 +40,18 @@ magic: ${MAGFILES} magic.mgc: mkmagic magic ${BTOOLSPATH:U.}/mkmagic magic +.if ${MACHINE} == "host" || ${MK_DIRDEPS_BUILD} == "no" CLEANFILES+= mkmagic DEPENDOBJS+= mkmagic build-tools: mkmagic mkmagic: apprentice.c cdf_time.c encoding.c funcs.c magic.c print.c ${INCS} ${BUILD_TOOLS_META} ${CC:N${CCACHE_BIN}} ${CFLAGS} -DCOMPILE_ONLY ${LDFLAGS} -o ${.TARGET} \ ${.ALLSRC:N*.h:O:u} ${LDADD} + +.endif +.if ${MK_DIRDEPS_BUILD} == "yes" +BTOOLSPATH= ${HOST_OBJTOP}/${RELDIR} +.endif FILEVER!= awk '$$1 == "\#define" && $$2 == "VERSION" { print $$3; exit }' \ ${.CURDIR}/config.h Modified: head/lib/libpmc/Makefile == --- head/lib/libpmc/MakefileWed Dec 11 17:37:53 2019(r355617) +++ head/lib/libpmc/MakefileWed Dec 11 17:38:15 2019(r355618) @@ -17,11 +17,19 @@ EVENT_ARCH="x86" EVENT_ARCH="powerpc" .endif +.if ${MK_DIRDEPS_BUILD} == "yes" +# avoid circular dependency +CFLAGS+= -I${RELDIR:H}/libpmcstat +GENDIRDEPS_FILTER+= N${RELDIR:H}/libpmcstat +JEVENTS?= ${HOST_OBJTOP}/${RELDIR}/pmu-events/jevents +.else JEVENTS= ${BTOOLSPATH:U.}/pmu-events/jevents + # This file is built in a subdirectory so never try to rebuild it here. ${JEVENTS}: .PHONY .if make(*clean*) SUBDIR+= pmu-events +.endif .endif libpmc_events.c: ${JEVENTS} Added: head/share/mk/dirdeps-targets.mk == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/mk/dirdeps-targets.mkWed Dec 11 17:38:15 2019 (r355618) @@ -0,0 +1,134 @@ +# $FreeBSD$ +# RCSid: +# $Id: dirdeps-targets.mk,v 1.9 2019/10/06 20:07:50 sjg Exp $ +# +# @(#) Copyright (c) 2019 Simon J. Gerraty +# +# This file is provided in the hope that it will +# be of use. There is absolutely NO WARRANTY. +# Permission to copy, redistribute or otherwise +# use this file is hereby granted provided that +# the above copyright notice and this notice are +# left intact. +# +# Please send copies of changes and bug-fixes to: +# s...@crufty.net +# + +## +
svn commit: r355617 - in head: bin/ls cddl/lib/libavl cddl/lib/libctf cddl/lib/libnvpair cddl/lib/libumem cddl/lib/libuutil cddl/lib/libzfs cddl/lib/libzfs_core gnu/lib/libdialog gnu/lib/libgomp gn...
Author: sjg Date: Wed Dec 11 17:37:53 2019 New Revision: 355617 URL: https://svnweb.freebsd.org/changeset/base/355617 Log: Update Makefile.depend files Update a bunch of Makefile.depend files as a result of adding Makefile.depend.options files Reviewed by: bdrewery MFC after:1 week Sponsored by: Juniper Networks Differential Revision: https://reviews.freebsd.org/D22494 Added: head/lib/libbe/Makefile.depend (contents, props changed) head/lib/libcasper/services/cap_fileargs/Makefile.depend (contents, props changed) head/lib/libcasper/services/cap_syslog/Makefile.depend (contents, props changed) head/lib/libedit/Makefile.depend (contents, props changed) head/lib/libedit/readline/Makefile.depend (contents, props changed) head/lib/libmagic/Makefile.depend.inc (contents, props changed) head/lib/libomp/Makefile.depend (contents, props changed) head/lib/libopencsd/Makefile.depend (contents, props changed) head/lib/libsecureboot/Makefile.depend.amd64 (contents, props changed) head/lib/libveriexec/Makefile.depend (contents, props changed) head/lib/ofed/complib/Makefile.depend (contents, props changed) head/lib/ofed/include/Makefile.depend (contents, props changed) head/lib/ofed/libcxgb4/Makefile.depend (contents, props changed) head/lib/ofed/libibcm/Makefile.depend (contents, props changed) head/lib/ofed/libibmad/Makefile.depend (contents, props changed) head/lib/ofed/libibnetdisc/Makefile.depend (contents, props changed) head/lib/ofed/libibverbs/Makefile.depend (contents, props changed) head/lib/ofed/libmlx4/Makefile.depend (contents, props changed) head/lib/ofed/libmlx5/Makefile.depend (contents, props changed) head/lib/ofed/libopensm/Makefile.depend (contents, props changed) head/lib/ofed/librdmacm/Makefile.depend (contents, props changed) head/lib/ofed/libvendor/Makefile.depend (contents, props changed) head/sbin/bectl/Makefile.depend (contents, props changed) head/sbin/devmatch/Makefile.depend (contents, props changed) head/sbin/geom/Makefile.depend (contents, props changed) head/stand/i386/loader_4th/Makefile.depend (contents, props changed) Modified: head/bin/ls/Makefile.depend head/cddl/lib/libavl/Makefile.depend head/cddl/lib/libctf/Makefile.depend head/cddl/lib/libnvpair/Makefile.depend head/cddl/lib/libumem/Makefile.depend head/cddl/lib/libuutil/Makefile.depend head/cddl/lib/libzfs/Makefile.depend head/cddl/lib/libzfs_core/Makefile.depend head/gnu/lib/libdialog/Makefile.depend head/gnu/lib/libgomp/Makefile.depend head/gnu/lib/libregex/Makefile.depend head/gnu/lib/libssp/Makefile.depend head/gnu/lib/libstdc++/Makefile.depend head/gnu/lib/libsupc++/Makefile.depend head/kerberos5/lib/libasn1/Makefile.depend head/kerberos5/lib/libgssapi_krb5/Makefile.depend head/kerberos5/lib/libhdb/Makefile.depend head/kerberos5/lib/libheimbase/Makefile.depend head/kerberos5/lib/libheimipcc/Makefile.depend head/kerberos5/lib/libheimntlm/Makefile.depend head/kerberos5/lib/libhx509/Makefile.depend head/kerberos5/lib/libkadm5clnt/Makefile.depend head/kerberos5/lib/libkafs5/Makefile.depend head/kerberos5/lib/libkdc/Makefile.depend head/kerberos5/lib/libkrb5/Makefile.depend head/kerberos5/lib/libroken/Makefile.depend head/kerberos5/lib/libwind/Makefile.depend head/lib/atf/libatf-c/Makefile.depend head/lib/lib80211/Makefile.depend head/lib/libalias/libalias/Makefile.depend head/lib/libarchive/Makefile.depend head/lib/libbegemot/Makefile.depend head/lib/libblacklist/Makefile.depend head/lib/libblocksruntime/Makefile.depend head/lib/libbluetooth/Makefile.depend head/lib/libbsdstat/Makefile.depend head/lib/libbsm/Makefile.depend head/lib/libbsnmp/libbsnmp/Makefile.depend head/lib/libbz2/Makefile.depend head/lib/libc++/Makefile.depend head/lib/libc/Makefile.depend head/lib/libc/tests/tls_dso/Makefile.depend head/lib/libcalendar/Makefile.depend head/lib/libcam/Makefile.depend head/lib/libcasper/libcasper/Makefile.depend head/lib/libcasper/services/cap_dns/Makefile.depend head/lib/libcasper/services/cap_grp/Makefile.depend head/lib/libcasper/services/cap_pwd/Makefile.depend head/lib/libcasper/services/cap_sysctl/Makefile.depend head/lib/libcom_err/Makefile.depend head/lib/libcrypt/Makefile.depend head/lib/libcuse/Makefile.depend head/lib/libcxxrt/Makefile.depend head/lib/libdevctl/Makefile.depend head/lib/libdevdctl/Makefile.depend head/lib/libdevinfo/Makefile.depend head/lib/libdevstat/Makefile.depend head/lib/libdpv/Makefile.depend head/lib/libdwarf/Makefile.depend head/lib/libefivar/Makefile.depend head/lib/libelf/Makefile.depend head/lib/libevent/Makefile.depend head/lib/libexecinfo/Makefile.depend head/lib/libexpat/Makefile.depend head/lib/libfetch/Makefile.depend head/lib/libfigpar/Makefile.depend head/lib/libgcc_s/Makefile.depend head/lib/libgeom/Makefile.depend
Re: svn commit: r355430 - head/sys/cam/scsi
No, and there's no possibility of connecting a Windows host to this particular device. We have some Oracle Solaris servers hooked up to these expanders, but it looks like Solaris completely ignores the offending element type. -Alan On Wed, Dec 11, 2019 at 10:19 AM Scott Long wrote: > U+FFFD doesn’t make sense for an ASCII string, but 0x3F might. Any idea > what Windows shows for this device? > > Scott > > > On Dec 11, 2019, at 8:42 AM, Alan Somers wrote: > > > > In this case the offending descriptor is solid 0xFF, so replacing > individual characters wouldn't accomplish anything. I can imagine a > different buggy expander that has just one or two bad characters. In that > case, it would make sense to replace them. But replace them with what? > The UTF replacement character 0xFFFD isn't an option, because the result is > supposed to be ASCII. There's no other obvious choice, which is why I > chose to replace the whole thing. > > -Alan > > > > On Fri, Dec 6, 2019 at 2:40 AM Steven Hartland < > steven.hartl...@multiplay.co.uk> wrote: > > If the illegal chars where removed or replaced would the result be > useful, if so might that be a better approach? > > > > On Fri, 6 Dec 2019 at 00:06, Alan Somers wrote: > > Author: asomers > > Date: Fri Dec 6 00:06:05 2019 > > New Revision: 355430 > > URL: https://svnweb.freebsd.org/changeset/base/355430 > > > > Log: > > ses: sanitize illegal strings in SES element descriptors > > > > The SES4r3 standard requires that element descriptors may only contain > ASCII > > characters in the range 0x20 to 0x7e. Some SuperMicro expanders > violate > > that rule. This patch adds a sanity check to ses(4). Descriptors in > > violation will be replaced by "". > > > > This patch fixes "sesutil --libxo xml" on such systems. Previously it > would > > generate non-well-formed XML output. > > > > PR: 241929 > > Reviewed by: allanjude > > MFC after:2 weeks > > Sponsored by: Axcient > > > > Modified: > > head/sys/cam/scsi/scsi_enc_ses.c > > > > Modified: head/sys/cam/scsi/scsi_enc_ses.c > > > == > > --- head/sys/cam/scsi/scsi_enc_ses.cThu Dec 5 19:39:51 2019 > (r355429) > > +++ head/sys/cam/scsi/scsi_enc_ses.cFri Dec 6 00:06:05 2019 > (r355430) > > @@ -110,7 +110,7 @@ typedef struct ses_addl_status { > > typedef struct ses_element { > > uint8_t eip;/* eip bit is set */ > > uint16_t descr_len; /* length of the descriptor */ > > - char *descr;/* descriptor for this object */ > > + const char *descr; /* descriptor for this object */ > > struct ses_addl_status addl;/* additional status info */ > > } ses_element_t; > > > > @@ -1977,6 +1977,35 @@ ses_publish_cache(enc_softc_t *enc, struct > enc_fsm_sta > > return (0); > > } > > > > +/* > > + * \brief Sanitize an element descriptor > > + * > > + * The SES4r3 standard, sections 3.1.2 and 6.1.10, specifies that > element > > + * descriptors may only contain ASCII characters in the range 0x20 to > 0x7e. > > + * But some vendors violate that rule. Ensure that we only expose > compliant > > + * descriptors to userland. > > + * > > + * \param desc SES element descriptor as reported by the > hardware > > + * \param len Length of desc in bytes, not necessarily > including > > + * trailing NUL. It will be modified if desc is > invalid. > > + */ > > +static const char* > > +ses_sanitize_elm_desc(const char *desc, uint16_t *len) > > +{ > > + const char *invalid = ""; > > + int i; > > + > > + for (i = 0; i < *len; i++) { > > + if (desc[i] < 0x20 || desc[i] > 0x7e) { > > + *len = strlen(invalid); > > + return (invalid); > > + } else if (desc[i] == 0) { > > + break; > > + } > > + } > > + return (desc); > > +} > > + > > /** > > * \brief Parse the descriptors for each object. > > * > > @@ -2061,7 +2090,8 @@ ses_process_elm_descs(enc_softc_t *enc, struct > enc_fsm > > if (length > 0) { > > elmpriv = element->elm_private; > > elmpriv->descr_len = length; > > - elmpriv->descr = &buf[offset]; > > + elmpriv->descr = > ses_sanitize_elm_desc(&buf[offset], > > + &elmpriv->descr_len); > > } > > > > /* skip over the descriptor itself */ > > ___ 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"
Re: svn commit: r355615 - head/sys/arm/linux
On Wed, Dec 11, 2019 at 11:28 AM Ed Maste wrote: > > Author: emaste > Date: Wed Dec 11 17:28:49 2019 > New Revision: 355615 > URL: https://svnweb.freebsd.org/changeset/base/355615 > > Log: > arm linuxulator: add syscalls.conf and Makefile for "make sysent" > > Differential Revision:https://reviews.freebsd.org/D7973 > This should also feature an addition in ^/Makefile.inc1 if that's not already on your radar. =) Thanks, Kyle Evans ___ 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: r355615 - head/sys/arm/linux
Author: emaste Date: Wed Dec 11 17:28:49 2019 New Revision: 355615 URL: https://svnweb.freebsd.org/changeset/base/355615 Log: arm linuxulator: add syscalls.conf and Makefile for "make sysent" Differential Revision:https://reviews.freebsd.org/D7973 Added: head/sys/arm/linux/Makefile (contents, props changed) head/sys/arm/linux/syscalls.conf (contents, props changed) Added: head/sys/arm/linux/Makefile == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/linux/Makefile Wed Dec 11 17:28:49 2019(r355615) @@ -0,0 +1,25 @@ +# Makefile for syscall tables +# +# $FreeBSD$ + +# Don't use an OBJDIR +.OBJDIR: ${.CURDIR} + +.include + +MAKESYSCALLS= ../../tools/makesyscalls.lua +SRCS= syscalls.conf \ + syscalls.master +GENERATED= linux_proto.h \ + linux_syscall.h \ + linux_syscalls.c\ + linux_sysent.c \ + linux_systrace_args.c + +all: + @echo "make sysent only" + +sysent: ${GENERATED} + +${GENERATED}: ${MAKESYSCALLS} ${SRCS} + ${LUA} ${MAKESYSCALLS} syscalls.master syscalls.conf Added: head/sys/arm/linux/syscalls.conf == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/linux/syscalls.confWed Dec 11 17:28:49 2019 (r355615) @@ -0,0 +1,11 @@ +# $FreeBSD$ +sysnames="linux_syscalls.c" +sysproto="linux_proto.h" +sysproto_h=_LINUX_SYSPROTO_H_ +syshdr="linux_syscall.h" +syssw="linux_sysent.c" +sysmk="/dev/null" +syscallprefix="LINUX_SYS_" +switchname="linux_sysent" +namesname="linux_syscallnames" +systrace="linux_systrace_args.c" ___ 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: r355614 - head/usr.sbin/kbdmap
Author: emaste Date: Wed Dec 11 17:19:36 2019 New Revision: 355614 URL: https://svnweb.freebsd.org/changeset/base/355614 Log: kbdmap: allow INDEX.keymaps to provide the dialog title Previously kbdmap had a localized menu heading ("Choose your keyboard layout") but not the dialog title ("Keyboard Menu"). MFC after:2 weeks Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/kbdmap/kbdmap.c Modified: head/usr.sbin/kbdmap/kbdmap.c == --- head/usr.sbin/kbdmap/kbdmap.c Wed Dec 11 16:43:54 2019 (r355613) +++ head/usr.sbin/kbdmap/kbdmap.c Wed Dec 11 17:19:36 2019 (r355614) @@ -57,6 +57,7 @@ static const char *sysconfig = DEFAULT_SYSCONFIG; static const char *font_current; static const char *dir; static const char *menu = ""; +static const char *title = "Keyboard Menu"; static int x11; static int using_vt; @@ -360,8 +361,8 @@ show_dialog(struct keymap **km_sorted, int num_keymaps tmp_name); exit(1); } - asprintf(&dialog, "/usr/bin/dialog --clear --title \"Keyboard Menu\" " - "--menu \"%s\" 0 0 0", menu); + asprintf(&dialog, "/usr/bin/dialog --clear --title \"%s\" " + "--menu \"%s\" 0 0 0", title, menu); /* start right font, assume that current font is equal * to default font in /etc/rc.conf @@ -627,8 +628,9 @@ menu_read(void) matches = sscanf(p, "%64[^:]:%64[^:]:%256[^:\n]", keym, lng, desc); if (matches == 3) { - if (strcmp(keym, "FONT") - && strcmp(keym, "MENU")) { + if (strcmp(keym, "FONT") != 0 && + strcmp(keym, "MENU") != 0 && + strcmp(keym, "TITLE") != 0) { /* Check file exists & is readable */ if (check_file(keym) == -1) continue; @@ -705,6 +707,10 @@ menu_read(void) exit(0); } + km = get_keymap("TITLE"); + if (km) + /* Take note of dialog title */ + title = strdup(km->desc); km = get_keymap("MENU"); if (km) /* Take note of menu title */ @@ -715,8 +721,9 @@ menu_read(void) font = strdup(km->desc); /* Remove unwanted items from list */ - remove_keymap("MENU"); remove_keymap("FONT"); + remove_keymap("MENU"); + remove_keymap("TITLE"); /* Look for keymaps not in database */ dirp = opendir(dir); ___ 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"
Re: svn commit: r355430 - head/sys/cam/scsi
U+FFFD doesn’t make sense for an ASCII string, but 0x3F might. Any idea what Windows shows for this device? Scott > On Dec 11, 2019, at 8:42 AM, Alan Somers wrote: > > In this case the offending descriptor is solid 0xFF, so replacing individual > characters wouldn't accomplish anything. I can imagine a different buggy > expander that has just one or two bad characters. In that case, it would > make sense to replace them. But replace them with what? The UTF replacement > character 0xFFFD isn't an option, because the result is supposed to be ASCII. > There's no other obvious choice, which is why I chose to replace the whole > thing. > -Alan > > On Fri, Dec 6, 2019 at 2:40 AM Steven Hartland > wrote: > If the illegal chars where removed or replaced would the result be useful, if > so might that be a better approach? > > On Fri, 6 Dec 2019 at 00:06, Alan Somers wrote: > Author: asomers > Date: Fri Dec 6 00:06:05 2019 > New Revision: 355430 > URL: https://svnweb.freebsd.org/changeset/base/355430 > > Log: > ses: sanitize illegal strings in SES element descriptors > > The SES4r3 standard requires that element descriptors may only contain ASCII > characters in the range 0x20 to 0x7e. Some SuperMicro expanders violate > that rule. This patch adds a sanity check to ses(4). Descriptors in > violation will be replaced by "". > > This patch fixes "sesutil --libxo xml" on such systems. Previously it would > generate non-well-formed XML output. > > PR: 241929 > Reviewed by: allanjude > MFC after:2 weeks > Sponsored by: Axcient > > Modified: > head/sys/cam/scsi/scsi_enc_ses.c > > Modified: head/sys/cam/scsi/scsi_enc_ses.c > == > --- head/sys/cam/scsi/scsi_enc_ses.cThu Dec 5 19:39:51 2019 > (r355429) > +++ head/sys/cam/scsi/scsi_enc_ses.cFri Dec 6 00:06:05 2019 > (r355430) > @@ -110,7 +110,7 @@ typedef struct ses_addl_status { > typedef struct ses_element { > uint8_t eip;/* eip bit is set */ > uint16_t descr_len; /* length of the descriptor */ > - char *descr;/* descriptor for this object */ > + const char *descr; /* descriptor for this object */ > struct ses_addl_status addl;/* additional status info */ > } ses_element_t; > > @@ -1977,6 +1977,35 @@ ses_publish_cache(enc_softc_t *enc, struct enc_fsm_sta > return (0); > } > > +/* > + * \brief Sanitize an element descriptor > + * > + * The SES4r3 standard, sections 3.1.2 and 6.1.10, specifies that element > + * descriptors may only contain ASCII characters in the range 0x20 to 0x7e. > + * But some vendors violate that rule. Ensure that we only expose compliant > + * descriptors to userland. > + * > + * \param desc SES element descriptor as reported by the hardware > + * \param len Length of desc in bytes, not necessarily including > + * trailing NUL. It will be modified if desc is invalid. > + */ > +static const char* > +ses_sanitize_elm_desc(const char *desc, uint16_t *len) > +{ > + const char *invalid = ""; > + int i; > + > + for (i = 0; i < *len; i++) { > + if (desc[i] < 0x20 || desc[i] > 0x7e) { > + *len = strlen(invalid); > + return (invalid); > + } else if (desc[i] == 0) { > + break; > + } > + } > + return (desc); > +} > + > /** > * \brief Parse the descriptors for each object. > * > @@ -2061,7 +2090,8 @@ ses_process_elm_descs(enc_softc_t *enc, struct enc_fsm > if (length > 0) { > elmpriv = element->elm_private; > elmpriv->descr_len = length; > - elmpriv->descr = &buf[offset]; > + elmpriv->descr = ses_sanitize_elm_desc(&buf[offset], > + &elmpriv->descr_len); > } > > /* skip over the descriptor itself */ ___ 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: r355613 - head/share/man/man7
Author: emaste Date: Wed Dec 11 16:43:54 2019 New Revision: 355613 URL: https://svnweb.freebsd.org/changeset/base/355613 Log: security.7: add caveat about interim sysctl paths from r355436 r355436 moved mitigation sysctls to machdep.mitigations but did not rationalize the sense of the invidual knobs. Clarify that the old names remain the canonical way to set these mitigations. Backwards compatibility will be maintained for the original names (e.g. hw.ibrs_disable), but not from the interim names (e.g. machdep.mitigations.ibrs.disable). Sponsored by: The FreeBSD Foundation Modified: head/share/man/man7/security.7 Modified: head/share/man/man7/security.7 == --- head/share/man/man7/security.7 Wed Dec 11 16:09:57 2019 (r355612) +++ head/share/man/man7/security.7 Wed Dec 11 16:43:54 2019 (r355613) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 12, 2019 +.Dd December 11, 2019 .Dt SECURITY 7 .Os .Sh NAME @@ -944,6 +944,17 @@ information access more restricted. Some people consider this as improving system security, so the knobs are briefly listed there, together with controls which enable some mitigations of the hardware state leaks. +.Pp +Hardware mitigation sysctl knobs described below have been moved under +.Pa machdep.mitigations , +with backwards-compatibility shims to accept the existing names. +A future change will rationalize the sense of the individual sysctls +(so that enabled / true always indicates that the mitigation is active). +For that reason the previous names remain the canonical way to set the +mitigations, and are documented here. +Backwards compatibility shims for the interim sysctls under +.Pa machdep.mitigations +will not be added. .Bl -tag -width security.bsd.unprivileged_proc_debug .It Dv security.bsd.see_other_uids Controls visibility of processes owned by different uid. ___ 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: r355612 - head/sys/vm
Author: dougm Date: Wed Dec 11 16:09:57 2019 New Revision: 355612 URL: https://svnweb.freebsd.org/changeset/base/355612 Log: Extract code common to _vm_map_clip_start and _vm_map_clip_end into a function, vm_map_entry_clone, that can be invoked by each. Reviewed by: kib, markj Differential Revision: https://reviews.freebsd.org/D22760 Modified: head/sys/vm/vm_map.c Modified: head/sys/vm/vm_map.c == --- head/sys/vm/vm_map.cWed Dec 11 15:52:29 2019(r355611) +++ head/sys/vm/vm_map.cWed Dec 11 16:09:57 2019(r355612) @@ -2291,6 +2291,42 @@ vm_map_entry_charge_object(vm_map_t map, vm_map_entry_ } /* + * vm_map_entry_clone + * + * Create a duplicate map entry for clipping. + */ +static vm_map_entry_t +vm_map_entry_clone(vm_map_t map, vm_map_entry_t entry) +{ + vm_map_entry_t new_entry; + + VM_MAP_ASSERT_LOCKED(map); + + /* +* Create a backing object now, if none exists, so that more individual +* objects won't be created after the map entry is split. +*/ + vm_map_entry_charge_object(map, entry); + + /* Clone the entry. */ + new_entry = vm_map_entry_create(map); + *new_entry = *entry; + if (new_entry->cred != NULL) + crhold(entry->cred); + if ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) == 0) { + vm_object_reference(new_entry->object.vm_object); + vm_map_entry_set_vnode_text(new_entry, true); + /* +* The object->un_pager.vnp.writemappings for the object of +* MAP_ENTRY_WRITECNT type entry shall be kept as is here. The +* virtual pages are re-distributed among the clipped entries, +* so the sum is left the same. +*/ + } + return (new_entry); +} + +/* * vm_map_clip_start: [ internal use only ] * * Asserts that the given entry begins at or after @@ -2316,16 +2352,8 @@ _vm_map_clip_start(vm_map_t map, vm_map_entry_t entry, KASSERT(entry->end > start && entry->start < start, ("_vm_map_clip_start: invalid clip of entry %p", entry)); - /* -* Create a backing object now, if none exists, so that more individual -* objects won't be created after the map entry is split. -*/ - vm_map_entry_charge_object(map, entry); + new_entry = vm_map_entry_clone(map, entry); - /* Clone the entry. */ - new_entry = vm_map_entry_create(map); - *new_entry = *entry; - /* * Split off the front portion. Insert the new entry BEFORE this one, * so that this entry has the specified starting address. @@ -2333,22 +2361,7 @@ _vm_map_clip_start(vm_map_t map, vm_map_entry_t entry, new_entry->end = start; entry->offset += (start - entry->start); entry->start = start; - if (new_entry->cred != NULL) - crhold(entry->cred); - vm_map_entry_link(map, new_entry); - - if ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) == 0) { - vm_object_reference(new_entry->object.vm_object); - vm_map_entry_set_vnode_text(new_entry, true); - /* -* The object->un_pager.vnp.writemappings for the -* object of MAP_ENTRY_WRITECNT type entry shall be -* kept as is here. The virtual pages are -* re-distributed among the clipped entries, so the sum is -* left the same. -*/ - } } /* @@ -2377,31 +2390,15 @@ _vm_map_clip_end(vm_map_t map, vm_map_entry_t entry, v KASSERT(entry->start < end && entry->end > end, ("_vm_map_clip_end: invalid clip of entry %p", entry)); - /* -* Create a backing object now, if none exists, so that more individual -* objects won't be created after the map entry is split. -*/ - vm_map_entry_charge_object(map, entry); + new_entry = vm_map_entry_clone(map, entry); - /* Clone the entry. */ - new_entry = vm_map_entry_create(map); - *new_entry = *entry; - /* * Split off the back portion. Insert the new entry AFTER this one, * so that this entry has the specified ending address. */ new_entry->start = entry->end = end; new_entry->offset += (end - entry->start); - if (new_entry->cred != NULL) - crhold(entry->cred); - vm_map_entry_link(map, new_entry); - - if ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) == 0) { - vm_object_reference(new_entry->object.vm_object); - vm_map_entry_set_vnode_text(new_entry, true); - } } /* ___ 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-u
svn commit: r355611 - head/sys/kern
Author: avg Date: Wed Dec 11 15:52:29 2019 New Revision: 355611 URL: https://svnweb.freebsd.org/changeset/base/355611 Log: add a sanity check to the system call registration code A system call number should be at least reserved. We do not expect an attempt to register a fixed number system call when nothing at all is known about it. MFC after:3 weeks Sponsored by: Panzura Modified: head/sys/kern/kern_syscalls.c Modified: head/sys/kern/kern_syscalls.c == --- head/sys/kern/kern_syscalls.c Wed Dec 11 15:15:21 2019 (r355610) +++ head/sys/kern/kern_syscalls.c Wed Dec 11 15:52:29 2019 (r355611) @@ -120,11 +120,14 @@ kern_syscall_register(struct sysent *sysents, int *off if (i == SYS_MAXSYSCALL) return (ENFILE); *offset = i; - } else if (*offset < 0 || *offset >= SYS_MAXSYSCALL) + } else if (*offset < 0 || *offset >= SYS_MAXSYSCALL) { return (EINVAL); - else if (sysents[*offset].sy_call != (sy_call_t *)lkmnosys && - sysents[*offset].sy_call != (sy_call_t *)lkmressys) + } else if (sysents[*offset].sy_call != (sy_call_t *)lkmnosys && + sysents[*offset].sy_call != (sy_call_t *)lkmressys) { + KASSERT(sysents[*offset].sy_call != NULL, + ("undefined syscall %d", *offset)); return (EEXIST); + } KASSERT(sysents[*offset].sy_thrcnt == SY_THR_ABSENT, ("dynamic syscall is not protected")); ___ 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"
Re: svn commit: r355430 - head/sys/cam/scsi
In this case the offending descriptor is solid 0xFF, so replacing individual characters wouldn't accomplish anything. I can imagine a different buggy expander that has just one or two bad characters. In that case, it would make sense to replace them. But replace them with what? The UTF replacement character 0xFFFD isn't an option, because the result is supposed to be ASCII. There's no other obvious choice, which is why I chose to replace the whole thing. -Alan On Fri, Dec 6, 2019 at 2:40 AM Steven Hartland < steven.hartl...@multiplay.co.uk> wrote: > If the illegal chars where removed or replaced would the result be useful, > if so might that be a better approach? > > On Fri, 6 Dec 2019 at 00:06, Alan Somers wrote: > >> Author: asomers >> Date: Fri Dec 6 00:06:05 2019 >> New Revision: 355430 >> URL: https://svnweb.freebsd.org/changeset/base/355430 >> >> Log: >> ses: sanitize illegal strings in SES element descriptors >> >> The SES4r3 standard requires that element descriptors may only contain >> ASCII >> characters in the range 0x20 to 0x7e. Some SuperMicro expanders violate >> that rule. This patch adds a sanity check to ses(4). Descriptors in >> violation will be replaced by "". >> >> This patch fixes "sesutil --libxo xml" on such systems. Previously it >> would >> generate non-well-formed XML output. >> >> PR: 241929 >> Reviewed by: allanjude >> MFC after:2 weeks >> Sponsored by: Axcient >> >> Modified: >> head/sys/cam/scsi/scsi_enc_ses.c >> >> Modified: head/sys/cam/scsi/scsi_enc_ses.c >> >> == >> --- head/sys/cam/scsi/scsi_enc_ses.cThu Dec 5 19:39:51 2019 >> (r355429) >> +++ head/sys/cam/scsi/scsi_enc_ses.cFri Dec 6 00:06:05 2019 >> (r355430) >> @@ -110,7 +110,7 @@ typedef struct ses_addl_status { >> typedef struct ses_element { >> uint8_t eip;/* eip bit is set */ >> uint16_t descr_len; /* length of the descriptor */ >> - char *descr;/* descriptor for this object */ >> + const char *descr; /* descriptor for this object */ >> struct ses_addl_status addl;/* additional status info */ >> } ses_element_t; >> >> @@ -1977,6 +1977,35 @@ ses_publish_cache(enc_softc_t *enc, struct >> enc_fsm_sta >> return (0); >> } >> >> +/* >> + * \brief Sanitize an element descriptor >> + * >> + * The SES4r3 standard, sections 3.1.2 and 6.1.10, specifies that element >> + * descriptors may only contain ASCII characters in the range 0x20 to >> 0x7e. >> + * But some vendors violate that rule. Ensure that we only expose >> compliant >> + * descriptors to userland. >> + * >> + * \param desc SES element descriptor as reported by the hardware >> + * \param len Length of desc in bytes, not necessarily including >> + * trailing NUL. It will be modified if desc is >> invalid. >> + */ >> +static const char* >> +ses_sanitize_elm_desc(const char *desc, uint16_t *len) >> +{ >> + const char *invalid = ""; >> + int i; >> + >> + for (i = 0; i < *len; i++) { >> + if (desc[i] < 0x20 || desc[i] > 0x7e) { >> + *len = strlen(invalid); >> + return (invalid); >> + } else if (desc[i] == 0) { >> + break; >> + } >> + } >> + return (desc); >> +} >> + >> /** >> * \brief Parse the descriptors for each object. >> * >> @@ -2061,7 +2090,8 @@ ses_process_elm_descs(enc_softc_t *enc, struct >> enc_fsm >> if (length > 0) { >> elmpriv = element->elm_private; >> elmpriv->descr_len = length; >> - elmpriv->descr = &buf[offset]; >> + elmpriv->descr = >> ses_sanitize_elm_desc(&buf[offset], >> + &elmpriv->descr_len); >> } >> >> /* skip over the descriptor itself */ >> > ___ 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: r355610 - in stable/12/sys: cam geom kern
Author: mav Date: Wed Dec 11 15:15:21 2019 New Revision: 355610 URL: https://svnweb.freebsd.org/changeset/base/355610 Log: MFC r355404: Mark some more hot global variables with __read_mostly. Modified: stable/12/sys/cam/cam_xpt.c stable/12/sys/geom/geom_io.c stable/12/sys/geom/geom_kern.c stable/12/sys/kern/kern_mtxpool.c stable/12/sys/kern/kern_shutdown.c stable/12/sys/kern/kern_timeout.c stable/12/sys/kern/sched_4bsd.c stable/12/sys/kern/sched_ule.c stable/12/sys/kern/vfs_bio.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/cam/cam_xpt.c == --- stable/12/sys/cam/cam_xpt.c Wed Dec 11 14:54:29 2019(r355609) +++ stable/12/sys/cam/cam_xpt.c Wed Dec 11 15:15:21 2019(r355610) @@ -214,7 +214,7 @@ static struct cdevsw xpt_cdevsw = { /* Storage for debugging datastructures */ struct cam_path *cam_dpath; -u_int32_t cam_dflags = CAM_DEBUG_FLAGS; +u_int32_t __read_mostly cam_dflags = CAM_DEBUG_FLAGS; SYSCTL_UINT(_kern_cam, OID_AUTO, dflags, CTLFLAG_RWTUN, &cam_dflags, 0, "Enabled debug flags"); u_int32_t cam_debug_delay = CAM_DEBUG_DELAY; Modified: stable/12/sys/geom/geom_io.c == --- stable/12/sys/geom/geom_io.cWed Dec 11 14:54:29 2019 (r355609) +++ stable/12/sys/geom/geom_io.cWed Dec 11 15:15:21 2019 (r355610) @@ -81,9 +81,9 @@ static struct g_bioq g_bio_run_up; * pressures exist. See g_io_schedule_down() for more details * and limitations. */ -static volatile u_int pace; +static volatile u_int __read_mostly pace; -static uma_zone_t biozone; +static uma_zone_t __read_mostly biozone; /* * The head of the list of classifiers used in g_io_request. @@ -91,8 +91,8 @@ static uma_zone_t biozone; * to add/remove entries to the list. * Classifiers are invoked in registration order. */ -static TAILQ_HEAD(g_classifier_tailq, g_classifier_hook) -g_classifier_tailq = TAILQ_HEAD_INITIALIZER(g_classifier_tailq); +static TAILQ_HEAD(, g_classifier_hook) g_classifier_tailq __read_mostly = +TAILQ_HEAD_INITIALIZER(g_classifier_tailq); #include Modified: stable/12/sys/geom/geom_kern.c == --- stable/12/sys/geom/geom_kern.c Wed Dec 11 14:54:29 2019 (r355609) +++ stable/12/sys/geom/geom_kern.c Wed Dec 11 15:15:21 2019 (r355610) @@ -61,12 +61,12 @@ MALLOC_DEFINE(M_GEOM, "GEOM", "Geom data structures"); struct sx topology_lock; static struct proc *g_proc; -static struct thread *g_up_td; -static struct thread *g_down_td; -static struct thread *g_event_td; +static struct thread __read_mostly *g_up_td; +static struct thread __read_mostly *g_down_td; +static struct thread __read_mostly *g_event_td; -int g_debugflags; -int g_collectstats = 1; +int __read_mostly g_debugflags; +int __read_mostly g_collectstats = G_STATS_PROVIDERS; int g_shutdown; int g_notaste; Modified: stable/12/sys/kern/kern_mtxpool.c == --- stable/12/sys/kern/kern_mtxpool.c Wed Dec 11 14:54:29 2019 (r355609) +++ stable/12/sys/kern/kern_mtxpool.c Wed Dec 11 15:15:21 2019 (r355610) @@ -82,7 +82,7 @@ struct mtx_pool { #define mtx_pool_shift mtx_pool_header.mtxpool_shift #define mtx_pool_next mtx_pool_header.mtxpool_next -struct mtx_pool *mtxpool_sleep; +struct mtx_pool __read_frequently *mtxpool_sleep; #if UINTPTR_MAX == UINT64_MAX /* 64 bits */ # define POINTER_BITS 64 Modified: stable/12/sys/kern/kern_shutdown.c == --- stable/12/sys/kern/kern_shutdown.c Wed Dec 11 14:54:29 2019 (r355609) +++ stable/12/sys/kern/kern_shutdown.c Wed Dec 11 15:15:21 2019 (r355610) @@ -205,9 +205,9 @@ SYSCTL_INT(_kern, OID_AUTO, kerneldump_gzlevel, CTLFLA * Variable panicstr contains argument to first call to panic; used as flag * to indicate that the kernel has already called panic. */ -const char *panicstr; +const char __read_mostly *panicstr; -int dumping; /* system is dumping */ +int __read_mostly dumping; /* system is dumping */ int rebooting; /* system is rebooting */ static struct dumperinfo dumper; /* our selected dumper */ Modified: stable/12/sys/kern/kern_timeout.c == --- stable/12/sys/kern/kern_timeout.c Wed Dec 11 14:54:29 2019 (r355609) +++ stable/12/sys/kern/kern_timeout.c Wed Dec 11 15:15:21 2019 (r355610) @@ -129,7 +129,8 @@ SYSCTL_INT(_kern, OID_AUTO, pin_pcpu_swi, CTLFLAG_RDTU * TODO: * allocate more timeout table slots when table overflows. */ -u_int callwheelsize, callwheelm
svn commit: r355609 - head
Author: emaste Date: Wed Dec 11 14:54:29 2019 New Revision: 355609 URL: https://svnweb.freebsd.org/changeset/base/355609 Log: Make NOCLEAN an error instead of a warning The warning was added in r289728 (over four years ago) and at that time NO_CLEAN was already the correct spelling for over a decade. Make NOCLEAN an error as the next step to removing these backward compatibility shims. Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 == --- head/Makefile.inc1 Wed Dec 11 14:28:13 2019(r355608) +++ head/Makefile.inc1 Wed Dec 11 14:54:29 2019(r355609) @@ -458,8 +458,7 @@ SUBDIR+=etc .endif # !empty(SUBDIR_OVERRIDE) .if defined(NOCLEAN) -.warning NOCLEAN option is deprecated. Use NO_CLEAN instead. -NO_CLEAN= ${NOCLEAN} +.error NOCLEAN option is deprecated. Use NO_CLEAN instead. .endif .if defined(NO_CLEANDIR) CLEANDIR= clean cleandepend ___ 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: r355608 - stable/12/sys/dev/iwm
Author: markj Date: Wed Dec 11 14:28:13 2019 New Revision: 355608 URL: https://svnweb.freebsd.org/changeset/base/355608 Log: MFC r355144: iwm(4): Remove _mvm from the namespace. Modified: stable/12/sys/dev/iwm/if_iwm.c stable/12/sys/dev/iwm/if_iwm_binding.c stable/12/sys/dev/iwm/if_iwm_binding.h stable/12/sys/dev/iwm/if_iwm_constants.h stable/12/sys/dev/iwm/if_iwm_fw.c stable/12/sys/dev/iwm/if_iwm_led.c stable/12/sys/dev/iwm/if_iwm_led.h stable/12/sys/dev/iwm/if_iwm_mac_ctxt.c stable/12/sys/dev/iwm/if_iwm_mac_ctxt.h stable/12/sys/dev/iwm/if_iwm_phy_ctxt.c stable/12/sys/dev/iwm/if_iwm_phy_ctxt.h stable/12/sys/dev/iwm/if_iwm_power.c stable/12/sys/dev/iwm/if_iwm_power.h stable/12/sys/dev/iwm/if_iwm_scan.c stable/12/sys/dev/iwm/if_iwm_scan.h stable/12/sys/dev/iwm/if_iwm_sf.c stable/12/sys/dev/iwm/if_iwm_sf.h stable/12/sys/dev/iwm/if_iwm_sta.c stable/12/sys/dev/iwm/if_iwm_sta.h stable/12/sys/dev/iwm/if_iwm_time_event.c stable/12/sys/dev/iwm/if_iwm_time_event.h stable/12/sys/dev/iwm/if_iwm_util.c stable/12/sys/dev/iwm/if_iwm_util.h stable/12/sys/dev/iwm/if_iwmreg.h stable/12/sys/dev/iwm/if_iwmvar.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/iwm/if_iwm.c == --- stable/12/sys/dev/iwm/if_iwm.c Wed Dec 11 14:27:33 2019 (r355607) +++ stable/12/sys/dev/iwm/if_iwm.c Wed Dec 11 14:28:13 2019 (r355608) @@ -231,10 +231,10 @@ struct iwm_nvm_section { uint8_t *data; }; -#define IWM_MVM_UCODE_ALIVE_TIMEOUThz -#define IWM_MVM_UCODE_CALIB_TIMEOUT(2*hz) +#define IWM_UCODE_ALIVE_TIMEOUThz +#define IWM_UCODE_CALIB_TIMEOUT(2*hz) -struct iwm_mvm_alive_data { +struct iwm_alive_data { int valid; uint32_t scd_base_addr; }; @@ -263,7 +263,7 @@ static void iwm_disable_interrupts(struct iwm_softc *) static voidiwm_ict_reset(struct iwm_softc *); static int iwm_allow_mcast(struct ieee80211vap *, struct iwm_softc *); static voidiwm_stop_device(struct iwm_softc *); -static voidiwm_mvm_nic_config(struct iwm_softc *); +static voidiwm_nic_config(struct iwm_softc *); static int iwm_nic_rx_init(struct iwm_softc *); static int iwm_nic_tx_init(struct iwm_softc *); static int iwm_nic_init(struct iwm_softc *); @@ -317,23 +317,23 @@ static intiwm_pcie_load_given_ucode(struct iwm_softc static int iwm_start_fw(struct iwm_softc *, const struct iwm_fw_img *); static int iwm_send_tx_ant_cfg(struct iwm_softc *, uint8_t); static int iwm_send_phy_cfg_cmd(struct iwm_softc *); -static int iwm_mvm_load_ucode_wait_alive(struct iwm_softc *, +static int iwm_load_ucode_wait_alive(struct iwm_softc *, enum iwm_ucode_type); -static int iwm_run_init_mvm_ucode(struct iwm_softc *, int); -static int iwm_mvm_config_ltr(struct iwm_softc *sc); +static int iwm_run_init_ucode(struct iwm_softc *, int); +static int iwm_config_ltr(struct iwm_softc *sc); static int iwm_rx_addbuf(struct iwm_softc *, int, int); -static voidiwm_mvm_rx_rx_phy_cmd(struct iwm_softc *, +static voidiwm_rx_rx_phy_cmd(struct iwm_softc *, struct iwm_rx_packet *); static int iwm_get_noise(struct iwm_softc *, - const struct iwm_mvm_statistics_rx_non_phy *); -static voidiwm_mvm_handle_rx_statistics(struct iwm_softc *, + const struct iwm_statistics_rx_non_phy *); +static voidiwm_handle_rx_statistics(struct iwm_softc *, struct iwm_rx_packet *); -static booliwm_mvm_rx_mpdu(struct iwm_softc *, struct mbuf *, +static booliwm_rx_mpdu(struct iwm_softc *, struct mbuf *, uint32_t, bool); -static int iwm_mvm_rx_tx_cmd_single(struct iwm_softc *, +static int iwm_rx_tx_cmd_single(struct iwm_softc *, struct iwm_rx_packet *, struct iwm_node *); -static voidiwm_mvm_rx_tx_cmd(struct iwm_softc *, struct iwm_rx_packet *); +static voidiwm_rx_tx_cmd(struct iwm_softc *, struct iwm_rx_packet *); static voidiwm_cmd_done(struct iwm_softc *, struct iwm_rx_packet *); #if 0 static voidiwm_update_sched(struct iwm_softc *, int, int, uint8_t, @@ -346,7 +346,7 @@ static int iwm_tx(struct iwm_softc *, struct mbuf *, struct ieee80211_node *, int); static int iwm_raw_xmit(struct ieee80211_node *, struct mbuf *, const struct ieee80211_bpf_params *); -static int iwm_mvm_update_quotas(struct iwm_softc *, struct iwm_vap *); +static int iwm_update_quotas(struct iwm_softc *, struct iwm_vap *); static int iwm_auth(struct ieee80211vap *, struct iwm_softc *); static struct ieee80211_node * iwm_node_alloc(struct ieee80211vap *, @@ -358,1
svn commit: r355607 - stable/12/sys/dev/iwm
Author: markj Date: Wed Dec 11 14:27:33 2019 New Revision: 355607 URL: https://svnweb.freebsd.org/changeset/base/355607 Log: MFC r355143: iwm(4): Fix version string formatting. Modified: stable/12/sys/dev/iwm/if_iwm.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/iwm/if_iwm.c == --- stable/12/sys/dev/iwm/if_iwm.c Wed Dec 11 14:27:00 2019 (r355606) +++ stable/12/sys/dev/iwm/if_iwm.c Wed Dec 11 14:27:33 2019 (r355607) @@ -851,7 +851,7 @@ iwm_read_firmware(struct iwm_softc *sc) goto parse_out; } snprintf(sc->sc_fwver, sizeof(sc->sc_fwver), - "%d.%d.%d", + "%u.%u.%u", le32toh(((const uint32_t *)tlv_data)[0]), le32toh(((const uint32_t *)tlv_data)[1]), le32toh(((const uint32_t *)tlv_data)[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: r355606 - stable/12/sys/vm
Author: markj Date: Wed Dec 11 14:27:00 2019 New Revision: 355606 URL: https://svnweb.freebsd.org/changeset/base/355606 Log: MFC r355399: Fix an off-by-one error in vm_map_pmap_enter(). Modified: stable/12/sys/vm/vm_map.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/vm/vm_map.c == --- stable/12/sys/vm/vm_map.c Wed Dec 11 06:50:55 2019(r355605) +++ stable/12/sys/vm/vm_map.c Wed Dec 11 14:27:00 2019(r355606) @@ -2385,7 +2385,7 @@ vm_map_pmap_enter(vm_map_t map, vm_offset_t addr, vm_p psize = atop(size); if (psize + pindex > object->size) { - if (object->size < pindex) { + if (pindex >= object->size) { VM_OBJECT_RUNLOCK(object); return; } ___ 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"
Re: svn commit: r355600 - in head: share/man/man9 sys/kern sys/sys
On 2019-12-11 10:26, Alexey Dokuchaev wrote: That's one of those things that make Linux so unpleasant to work with. Frankly, I don't think we want that for FreeBSD. The argument for the current callback is still a "void *". container_of() has some type checks at least. It is not a big deal though. --HPS ___ 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"
Re: svn commit: r355600 - in head: share/man/man9 sys/kern sys/sys
On Tue, Dec 10, 2019 at 11:09:41PM +0100, Hans Petter Selasky wrote: > On 2019-12-10 22:58, John Baldwin wrote: > > While here, add to the manpage. > > FYI: > > Linux guys eliminated the "void *c_arg" in their timer implementation by > using container_of() to get callback argument. We could possibly do the > same! #define container_of(ptr, type, member) ({ \ void *__mptr = (void *)(ptr); \ BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ !__same_type(*(ptr), void),\ "pointer type mismatch in container_of()");\ ((type *)(__mptr - offsetof(type, member))); }) That's one of those things that make Linux so unpleasant to work with. Frankly, I don't think we want that for FreeBSD. ./danfe ___ 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"
Re: svn commit: r355600 - in head: share/man/man9 sys/kern sys/sys
On 2019-12-10 23:47, John Baldwin wrote: You mean passing the pointer to the callout itself and using that to get to the relevant pointer? Yes. --HPS ___ 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"