]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
4 years agoclose_range/closefrom: fix regression from close_range introduction
kevans [Mon, 13 Apr 2020 17:55:31 +0000 (17:55 +0000)]
close_range/closefrom: fix regression from close_range introduction

close_range will clamp the range between [0, fdp->fd_lastfile], but failed
to take into account that fdp->fd_lastfile can become -1 if all fds are
closed. =-( In this scenario, just return because there's nothing further we
can do at the moment.

Add a test case for this, fork() and simply closefrom(0) twice in the child;
on the second invocation, fdp->fd_lastfile == -1 and will trigger a panic
before this change.

X-MFC-With: r359836

4 years agolibc: remove shm_open(2)'s compat fallback
kevans [Mon, 13 Apr 2020 15:59:15 +0000 (15:59 +0000)]
libc: remove shm_open(2)'s compat fallback

This had been introduced to ease any pain for using slightly older kernels
with a newer libc, e.g., for bisecting a kernel across the introduction of
shm_open2(2). 6 months has passed, retire the fallback and let shm_open()
unconditionally call shm_open2().

Stale includes are removed as well.

4 years agoInstall expected output file of test missed in r359585
lwhsu [Mon, 13 Apr 2020 14:35:07 +0000 (14:35 +0000)]
Install expected output file of test missed in r359585

Sponsored by: The FreeBSD Foundation

4 years agoRemove unused 'struct rtentry' definition.
melifaro [Mon, 13 Apr 2020 09:01:46 +0000 (09:01 +0000)]
Remove unused 'struct rtentry' definition.

4 years agoSync with OpenBSD:
delphij [Mon, 13 Apr 2020 08:42:13 +0000 (08:42 +0000)]
Sync with OpenBSD:

arc4random.c: In the incredibly unbelievable circumstance where
_rs_init() fails to allocate pages, don't call abort() because of
corefile data leakage concerns, but simply _exit().  The reasoning
is _rs_init() will only fail if someone finds a way to apply
specific pressure against this failure point, for the purpose of
leaking information into a core which they can read.  We don't
need a corefile in this instance to debug that.  So take this
"lever" away from whoever in the future wants to do that.

arc4random.3: reference random(4)

arc4random_uniform.c: include stdint.h over sys/types.h

4 years agoRemove tcp_rtlookup6() function signature.
melifaro [Mon, 13 Apr 2020 08:26:11 +0000 (08:26 +0000)]
Remove tcp_rtlookup6() function signature.
 The function itself was removed in r122922 16 years ago.

4 years agoDelete the mbuf macros that were used for the Mac OS/X port.
rmacklem [Mon, 13 Apr 2020 00:07:37 +0000 (00:07 +0000)]
Delete the mbuf macros that were used for the Mac OS/X port.

When the code was ported to Mac OS/X, mbuf handling functions were
converted to using the Mac OS/X accessor functions. For FreeBSD, they
are a simple set of macros in sys/fs/nfs/nfskpiport.h.
Since r359757, r359780, r359785, r359810, r359811 have removed all uses
of these macros, this patch deleted the macros from the .h files.

My eventual goal is deleting nfskpiport.h, but that will take some more
editting to replace uses of the remaining macros.

4 years agoBump __FreeBSD_version after r359836, close_range(2)
kevans [Sun, 12 Apr 2020 22:22:53 +0000 (22:22 +0000)]
Bump __FreeBSD_version after r359836, close_range(2)

Reported by: cy

4 years agosysent: re-roll after introduction of close_range in r359836
kevans [Sun, 12 Apr 2020 21:23:51 +0000 (21:23 +0000)]
sysent: re-roll after introduction of close_range in r359836

4 years agoImplement a close_range(2) syscall
kevans [Sun, 12 Apr 2020 21:23:19 +0000 (21:23 +0000)]
Implement a close_range(2) syscall

close_range(min, max, flags) allows for a range of descriptors to be
closed. The Python folk have indicated that they would much prefer this
interface to closefrom(2), as the case may be that they/someone have special
fds dup'd to higher in the range and they can't necessarily closefrom(min)
because they don't want to hit the upper range, but relocating them to lower
isn't necessarily feasible.

sys_closefrom has been rewritten to use kern_close_range() using ~0U to
indicate closing to the end of the range. This was chosen rather than
requiring callers of kern_close_range() to hold FILEDESC_SLOCK across the
call to kern_close_range for simplicity.

The flags argument of close_range(2) is currently unused, so any flags set
is currently EINVAL. It was added to the interface in Linux so that future
flags could be added for, e.g., "halt on first error" and things of this
nature.

This patch is based on a syscall of the same design that is expected to be
merged into Linux.

Reviewed by: kib, markj, vangyzen (all slightly earlier revisions)
Differential Revision: https://reviews.freebsd.org/D21627

4 years agoAdd mention of wireless option in bsdconfig
crees [Sun, 12 Apr 2020 20:54:35 +0000 (20:54 +0000)]
Add mention of wireless option in bsdconfig

Submitted by: debdrup
Approved by: dteske (maintainer)
Differential Revision: https://reviews.freebsd.org/D24378

4 years agoAdd queue(2) debug macros as build options
cem [Sun, 12 Apr 2020 18:04:20 +0000 (18:04 +0000)]
Add queue(2) debug macros as build options

Add QUEUE_MACRO_DEBUG_TRACE and QUEUE_MACRO_DEBUG_TRASH as proper kernel
options.  While here, alpha-sort the debug section of sys/conf/options.

Enable QUEUE_MACRO_DEBUG_TRASH in amd64 GENERIC (but not GENERIC-NODEBUG)
kernels.  It is similar in nature and cost to other use-after-free pointer
trashing we do in GENERIC.  It is probably reasonable to enable in any arch
GENERIC kernel that defines INVARIANTS.

4 years agocarp tests: Basic functionality test
kp [Sun, 12 Apr 2020 16:13:05 +0000 (16:13 +0000)]
carp tests: Basic functionality test

Set up three vnet jails, bridged together. Run carp between two of them.
Attempt to provoke locking / epoch issues.

Reviewed by: mav (previous version), melifaro, asomers
Differential Revision: https://reviews.freebsd.org/D24303

4 years agocarp: Widen epoch coverage
kp [Sun, 12 Apr 2020 16:09:21 +0000 (16:09 +0000)]
carp: Widen epoch coverage

Fix panics related to calling code which expects to be running inside
the NET_EPOCH from outside that epoch.

This leads to panics (with INVARIANTS) such as this one:

    panic: Assertion in_epoch(net_epoch_preempt) failed at /usr/src/sys/netinet/if_ether.c:373
    cpuid = 7
    time = 1586095719
    KDB: stack backtrace:
    db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe0090819700
    vpanic() at vpanic+0x182/frame 0xfffffe0090819750
    panic() at panic+0x43/frame 0xfffffe00908197b0
    arprequest_internal() at arprequest_internal+0x59e/frame 0xfffffe00908198c0
    arp_announce_ifaddr() at arp_announce_ifaddr+0x20/frame 0xfffffe00908198e0
    carp_master_down_locked() at carp_master_down_locked+0x10d/frame 0xfffffe0090819910
    carp_master_down() at carp_master_down+0x79/frame 0xfffffe0090819940
    softclock_call_cc() at softclock_call_cc+0x13f/frame 0xfffffe00908199f0
    softclock() at softclock+0x7c/frame 0xfffffe0090819a20
    ithread_loop() at ithread_loop+0x279/frame 0xfffffe0090819ab0
    fork_exit() at fork_exit+0x80/frame 0xfffffe0090819af0
    fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0090819af0
    --- trap 0, rip = 0, rsp = 0, rbp = 0 ---

Widen the NET_EPOCH to cover the relevant (callback / task) code.

Differential Revision: https://reviews.freebsd.org/D24302

4 years agoMerge commit 30588a739 from llvm git (by Erich Keane):
dim [Sun, 12 Apr 2020 16:06:59 +0000 (16:06 +0000)]
Merge commit 30588a739 from llvm git (by Erich Keane):

  Make target features check work with ctor and dtor-

  The problem was reported in PR45468, applying target features to an
  always_inline constructor/destructor runs afoul of GlobalDecl
  construction assert when checking for target-feature compatibility.

  The core problem is fixed by using the version of the check that
  takes a FunctionDecl rather than the GlobalDecl. However, while
  writing the test, I discovered that source locations weren't properly
  set for this check on ctors/dtors. This patch also fixes constructors
  and CALLED destructors.

  Unfortunately, it doesn't seem too possible to get a meaningful
  source location for a 'cleanup' destructor, so those are still
  'frontend' level errors unfortunately. A fixme was added to the test
  to cover that situation.

This should fix 'Assertion failed: (!isa<CXXConstructorDecl>(D) && "Use
other ctor with ctor decls!"), function Init, file
/usr/src/contrib/llvm-project/clang/include/clang/AST/GlobalDecl.h, line
45' when compiling the security/botan2 port.

PR: 245550
MFC after: 6 weeks
X-MFC-With: 358851

4 years agoFix string format error missed in r359823.
melifaro [Sun, 12 Apr 2020 15:16:34 +0000 (15:16 +0000)]
Fix string format error missed in r359823.

4 years agoIntroduce nexthop objects and new routing KPI.
melifaro [Sun, 12 Apr 2020 14:30:00 +0000 (14:30 +0000)]
Introduce nexthop objects and new routing KPI.

This is the foundational change for the routing subsytem rearchitecture.
 More details and goals are available in https://reviews.freebsd.org/D24141 .

This patch introduces concept of nexthop objects and new nexthop-based
 routing KPI.

Nexthops are objects, containing all necessary information for performing
 the packet output decision. Output interface, mtu, flags, gw address goes
 there. For most of the cases, these objects will serve the same role as
 the struct rtentry is currently serving.
Typically there will be low tens of such objects for the router even with
 multiple BGP full-views, as these objects will be shared between routing
 entries. This allows to store more information in the nexthop.

New KPI:

struct nhop_object *fib4_lookup(uint32_t fibnum, struct in_addr dst,
  uint32_t scopeid, uint32_t flags, uint32_t flowid);
struct nhop_object *fib6_lookup(uint32_t fibnum, const struct in6_addr *dst6,
  uint32_t scopeid, uint32_t flags, uint32_t flowid);

These 2 function are intended to replace all all flavours of
 <in_|in6_>rtalloc[1]<_ign><_fib>, mpath functions  and the previous
 fib[46]-generation functions.

Upon successful lookup, they return nexthop object which is guaranteed to
 exist within current NET_EPOCH. If longer lifetime is desired, one can
 specify NHR_REF as a flag and get a referenced version of the nexthop.
 Reference semantic closely resembles rtentry one, allowing sed-style conversion.

Additionally, another 2 functions are introduced to support uRPF functionality
 inside variety of our firewalls. Their primary goal is to hide the multipath
 implementation details inside the routing subsystem, greatly simplifying
 firewalls implementation:

int fib4_lookup_urpf(uint32_t fibnum, struct in_addr dst, uint32_t scopeid,
  uint32_t flags, const struct ifnet *src_if);
int fib6_lookup_urpf(uint32_t fibnum, const struct in6_addr *dst6, uint32_t scopeid,
  uint32_t flags, const struct ifnet *src_if);

All functions have a separate scopeid argument, paving way to eliminating IPv6 scope
 embedding and allowing to support IPv4 link-locals in the future.

Structure changes:
 * rtentry gets new 'rt_nhop' pointer, slightly growing the overall size.
 * rib_head gets new 'rnh_preadd' callback pointer, slightly growing overall sz.

Old KPI:
During the transition state old and new KPI will coexists. As there are another 4-5
 decent-sized conversion patches, it will probably take a couple of weeks.
To support both KPIs, fields not required by the new KPI (most of rtentry) has to be
 kept, resulting in the temporary size increase.
Once conversion is finished, rtentry will notably shrink.

More details:
* architectural overview: https://reviews.freebsd.org/D24141
* list of the next changes: https://reviews.freebsd.org/D24232

Reviewed by: ae,glebius(initial version)
Differential Revision: https://reviews.freebsd.org/D24232

4 years agoRevert https://svnweb.freebsd.org/changeset/base/359809
tuexen [Sun, 12 Apr 2020 09:31:36 +0000 (09:31 +0000)]
Revert https://svnweb.freebsd.org/changeset/base/359809

The intended change was
sp->next.tqe_next = NULL;
sp->next.tqe_prev = NULL;
which doesn't fix the issue I'm seeing and the committed fix is
not the intended fix due to copy-and-paste.

Thanks a lot to Conrad Meyer for making me aware of the problem.

Reported by: cem

4 years agosendfile_iodone: correct calculation of the page index for relookup.
kib [Sun, 12 Apr 2020 05:10:48 +0000 (05:10 +0000)]
sendfile_iodone: correct calculation of the page index for relookup.

This is yet another bug in r359473.

Reported and tested by: delphij
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks

4 years agoconfig(8): use sbuf to manage line buffers
jah [Sun, 12 Apr 2020 02:42:42 +0000 (02:42 +0000)]
config(8): use sbuf to manage line buffers

PR: 245476
Reported by: kevans
Reviewed by: imp, kevans
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D24373

4 years agoReplace mbuf macros with the code they would generate in the NFS code.
rmacklem [Sat, 11 Apr 2020 23:37:58 +0000 (23:37 +0000)]
Replace mbuf macros with the code they would generate in the NFS code.

When the code was ported to Mac OS/X, mbuf handling functions were
converted to using the Mac OS/X accessor functions. For FreeBSD, they
are a simple set of macros in sys/fs/nfs/nfskpiport.h.
Since porting to Mac OS/X is no longer a consideration, replacement of
these macros with the code generated by them makes the code more
readable.
When support for external page mbufs is added as needed by the KERN_TLS,
the patch becomes simpler if done without the macros.

This patch should not result in any semantic change.

This is the final patch of this series and the macros should now be
able to be deleted from the .h files in a future commit.

4 years agoReplace mbuf macros with the code they would generate in the NFS code.
rmacklem [Sat, 11 Apr 2020 20:57:15 +0000 (20:57 +0000)]
Replace mbuf macros with the code they would generate in the NFS code.

When the code was ported to Mac OS/X, mbuf handling functions were
converted to using the Mac OS/X accessor functions. For FreeBSD, they
are a simple set of macros in sys/fs/nfs/nfskpiport.h.
Since porting to Mac OS/X is no longer a consideration, replacement of
these macros with the code generated by them makes the code more
readable.
When support for external page mbufs is added as needed by the KERN_TLS,
the patch becomes simpler if done without the macros.

This patch should not result in any semantic change.

4 years agoZero out pointers for consistency.
tuexen [Sat, 11 Apr 2020 20:36:54 +0000 (20:36 +0000)]
Zero out pointers for consistency.

This was found by running syzkaller on an INVARIANTS kernel.

MFC after: 3 days

4 years agozfs: Add option for forcible unmounting dataset while receiving snapshot.
oshogbo [Sat, 11 Apr 2020 17:54:35 +0000 (17:54 +0000)]
zfs: Add option for forcible unmounting dataset while receiving snapshot.

Currently when the dataset is in use we can't receive snapshots.

zfs send test/1@asd | zfs recv -FM test/2
cannot unmount '/test/2': Device busy

This commits add option 'M' which attempts to forcibly unmount the
dataset.  Thanks to this we can enforce receiving snapshots in a
single step.

Note that this functionality is not supported on Linux because the
VFS will prevent active mounted filesystems from being unmounted,
even with the force option.  This is the intended VFS behavior.

Discussed-with: Pawel Jakub Dawidek <pjd@FreeBSD.org>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Allan Jude <allanjude@freebsd.org>
Differential Revision: https://reviews.freebsd.org/D22306

openzfs/zfs@a57d3d45d6efdff935421e2ef3f97e3dc089d93d

4 years agodecryptcore: load the nls data
oshogbo [Sat, 11 Apr 2020 17:30:33 +0000 (17:30 +0000)]
decryptcore: load the nls data

Load the nls data before the openssl will try to do it in the
capability mode.
On my machine the sa_ossl_private_decrypt is trying to do that.

MFC after: 2 weeks

4 years agoarm: am335x: Honor pmic option ti,pmic-shutdown-controller
manu [Sat, 11 Apr 2020 15:52:07 +0000 (15:52 +0000)]
arm: am335x: Honor pmic option ti,pmic-shutdown-controller

Honor ti,pmic-shutdown-controller option in DTS

Tested on stable r359316 @ Sleep mode on custom hw, Power off on BBB and PB

OFF bit [1] in status register control the pmic behaviour when PWR_EN pin
is pulled low.
On most AM335x hardware [beaglebone *] the desired behaviour are in fact
power off due to some hardware designs - read more in the comments around
pmic in sys/gnu/dts/arm/am335x-bone-common.dtsi

This patch let the device-tree decide with ti,pmic-shutdown-controller[2]
the state of off bit in status register.

[1] 8.6.12 table 12 http://www.ti.com/lit/ds/symlink/tps65217.pdf

[2] Documentation/devicetree/bindings/regulator/tps65217.txt

PR: 245159
Submitted by: Oskar Holmlund <oskar.holmlund@ohdata.se>
MFC after: 2 weeks

4 years agogpioctl: Print interrupts capabilities
manu [Sat, 11 Apr 2020 15:25:40 +0000 (15:25 +0000)]
gpioctl: Print interrupts capabilities

GPIO drivers who supports interrupts report them in the caps
(obtain via the getcaps method) but gpioctl doesn't know
how to interpret this and print "UNKNOWN" for each one of them.
Even if we don't have userland gpio interrupts support for now
let gpioctl print the supported caps.

MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D24133

4 years agoFix build by adding forgotten header to radix_mpath.c after r359797.
melifaro [Sat, 11 Apr 2020 09:38:45 +0000 (09:38 +0000)]
Fix build by adding forgotten header to radix_mpath.c after r359797.

4 years agowc(1): document SIGINFO handling in the manual page.
eugen [Sat, 11 Apr 2020 08:16:35 +0000 (08:16 +0000)]
wc(1): document SIGINFO handling in the manual page.

MFC after: 3 days

4 years agoRemove RADIX_MPATH headers, they were unused since r293159.
melifaro [Sat, 11 Apr 2020 07:56:11 +0000 (07:56 +0000)]
Remove RADIX_MPATH headers, they were unused since r293159.

MFC after: 2 weeks

4 years agoRemove per-AF radix_mpath initializtion functions.
melifaro [Sat, 11 Apr 2020 07:37:08 +0000 (07:37 +0000)]
Remove per-AF radix_mpath initializtion functions.

Split their functionality by moving random seed allocation
 to SYSINIT and calling (new) generic multipath function from
 standard IPv4/IPv5 RIB init handlers.

Differential Revision: https://reviews.freebsd.org/D24356

4 years agoAvoid using a variable solely for sizes that are never meant to be
delphij [Sat, 11 Apr 2020 07:24:57 +0000 (07:24 +0000)]
Avoid using a variable solely for sizes that are never meant to be
modified runtime.

No functional change.

MFC after: 2 weeks

4 years agopowerpc/booke: Use power-of-two mappings in 64-bit pmap_mapdev
jhibbits [Sat, 11 Apr 2020 00:17:55 +0000 (00:17 +0000)]
powerpc/booke: Use power-of-two mappings in 64-bit pmap_mapdev

Summary:
This reduces the precious TLB1 entry consumption (64 possible in
existing 64-bit cores), by adjusting the size and alignment of a device
mapping to a power of 2, to encompass the full mapping and its
surroundings.

One caveat with this: If a mapping really is smaller than a power of 2,
it's possible to get a machine check or hang if the 'missing' physical
space is accessed.  In practice this should not be an issue for users,
as devices overwhelmingly have physical spaces on power-of-two sizes and
alignments, and any design that includes devices which don't follow this
can be addressed by undefining the POW2_MAPPINGS guard.

Reviewed by: bdragon
Differential Revision: https://reviews.freebsd.org/D24248

4 years agopowerpc/booke: Add pte_find_next() to find the next in-use PTE
jhibbits [Sat, 11 Apr 2020 00:16:50 +0000 (00:16 +0000)]
powerpc/booke: Add pte_find_next() to find the next in-use PTE

Summary:
Iterating over VM_MIN_ADDRESS->VM_MAXUSER_ADDRESS can take a very long
time iterating one page at a time (2**(log_2(SIZE)-12) operations),
yielding possibly several days or even weeks on 64-bit Book-E, even for
a largely empty, which can happen when swapping out a process by
vmdaemon.  Speed this up by instead finding the next PTE at or equal to
the given VA.

Reviewed by: bdragon
Differential Revision: https://reviews.freebsd.org/D24238

4 years agopowerpc/booke: Change Book-E 64-bit pmap to 4-level table
jhibbits [Sat, 11 Apr 2020 00:12:34 +0000 (00:12 +0000)]
powerpc/booke: Change Book-E 64-bit pmap to 4-level table

Summary:
The existing page table is fraught with errors, since it creates a hole
in the address space bits.  Fix this by taking a cue from the POWER9
radix pmap, and make the page table 4 levels, 52 bits.

Reviewed by: bdragon
Differential Revision: https://reviews.freebsd.org/D24220

4 years agoInode check-hash errors were being reported after system crashes.
mckusick [Fri, 10 Apr 2020 23:58:07 +0000 (23:58 +0000)]
Inode check-hash errors were being reported after system crashes.
Trace the cause down to journalled soft updates recovery code in
fsck failing to recompute the check-hash after updating an inode.

As inode check-hash was first introduced to UFS in FreeBSD 13,
there is no need to MFC this commit.

Reported by:  Chuck Silvers
Sponsored by: Netflix

4 years agoAdd an inode check-hash verification when running the journalled
mckusick [Fri, 10 Apr 2020 23:49:34 +0000 (23:49 +0000)]
Add an inode check-hash verification when running the journalled
soft update recovery code with the debugging (-d) option.

As inode check-hash was first introduced to UFS in FreeBSD 13,
there is no need to MFC this commit.

Reported by:  Chuck Silvers
Sponsored by: Netflix

4 years agoDocument removal of deprecated algorithms for in-kernel GSS.
jhb [Fri, 10 Apr 2020 23:13:29 +0000 (23:13 +0000)]
Document removal of deprecated algorithms for in-kernel GSS.

4 years agoRemove the -o option from gssd(8).
jhb [Fri, 10 Apr 2020 23:10:28 +0000 (23:10 +0000)]
Remove the -o option from gssd(8).

This uses DES and the kernel no longer supports DES for in-kernel GSS.

Reviewed by: kp
Relnotes: yes
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D24345

4 years agoRemove support for Kernel GSS algorithms deprecated in r348875.
jhb [Fri, 10 Apr 2020 23:08:41 +0000 (23:08 +0000)]
Remove support for Kernel GSS algorithms deprecated in r348875.

This removes support for using DES, Triple DES, and RC4.

Reviewed by: cem, kp
Tested by: kp
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D24344

4 years agoReplace mbuf macros with the code they would generate in the NFS code.
rmacklem [Fri, 10 Apr 2020 22:42:14 +0000 (22:42 +0000)]
Replace mbuf macros with the code they would generate in the NFS code.

When the code was ported to Mac OS/X, mbuf handling functions were
converted to using the Mac OS/X accessor functions. For FreeBSD, they
are a simple set of macros in sys/fs/nfs/nfskpiport.h.
Since porting to Mac OS/X is no longer a consideration, replacement of
these macros with the code generated by them makes the code more
readable.
When support for external page mbufs is added as needed by the KERN_TLS,
the patch becomes simpler if done without the macros.

This patch should not result in any semantic change.
This conversion will be committed one file at a time.

4 years agoUse both crypto engines on a T6.
jhb [Fri, 10 Apr 2020 22:27:45 +0000 (22:27 +0000)]
Use both crypto engines on a T6.

A T6 adapter contains two crypto engines on separate channels.  This
commit distributes sessions between the two engines.  Previously, only
the first engine was used.

Reviewed by: np
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D24347

4 years agohda: if a CODEC is not responding, report which one
emaste [Fri, 10 Apr 2020 21:27:49 +0000 (21:27 +0000)]
hda: if a CODEC is not responding, report which one

PR: 229190
MFC after: 1 week

4 years agoReplace mbuf macros with the code they would generate in the NFS code.
rmacklem [Fri, 10 Apr 2020 21:25:35 +0000 (21:25 +0000)]
Replace mbuf macros with the code they would generate in the NFS code.

When the code was ported to Mac OS/X, mbuf handling functions were
converted to using the Mac OS/X accessor functions. For FreeBSD, they
are a simple set of macros in sys/fs/nfs/nfskpiport.h.
Since porting to Mac OS/X is no longer a consideration, replacement of
these macros with the code generated by them makes the code more
readable.
When support for external page mbufs is added as needed by the KERN_TLS,
the patch becomes simpler if done without the macros.

This patch should not result in any semantic change.
This conversion will be committed one file at a time.

4 years agosbappendcontrol() needs to avoid clearing M_NOTREADY on data mbufs.
markj [Fri, 10 Apr 2020 20:42:11 +0000 (20:42 +0000)]
sbappendcontrol() needs to avoid clearing M_NOTREADY on data mbufs.

If LOCAL_CREDS is set on a unix socket and sendfile() is called,
sendfile will call uipc_send(PRUS_NOTREADY), prepending a control
message to the M_NOTREADY mbufs.  uipc_send() then calls
sbappendcontrol() instead of sbappend(), and sbappendcontrol() would
erroneously clear M_NOTREADY.

Pass send flags to sbappendcontrol(), like we do for sbappend(), to
preserve M_READY when necessary.

Reported by: syzkaller
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D24333

4 years agoProperly handle disconnected sockets in uipc_ready().
markj [Fri, 10 Apr 2020 20:41:59 +0000 (20:41 +0000)]
Properly handle disconnected sockets in uipc_ready().

When transmitting over a unix socket, data is placed directly into the
receiving socket's receive buffer, instead of the transmitting socket's
send buffer.  This means that when pru_ready is called during
sendfile(), the passed socket does not contain M_NOTREADY mbufs in its
buffers; uipc_ready() must locate the linked socket.

Currently uipc_ready() frees the mbufs if the socket is disconnected,
but this is wrong since the mbufs may still be present in the receiving
socket's buffer after a disconnect.  This can result in a use-after-free
and potentially a double free if the receive buffer is flushed after
uipc_ready() frees the mbufs.

Fix the problem by trying harder to locate the correct socket buffer and
calling sbready(): use the global list of SOCK_STREAM unix sockets to
search for a sockbuf containing the now-ready mbufs.  Only free the
mbufs if we fail this search.

Reviewed by: jah, kib
Reported and tested by: pho
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D24332

4 years agohdac: show which command timed out
emaste [Fri, 10 Apr 2020 18:38:42 +0000 (18:38 +0000)]
hdac: show which command timed out

There are several reports of "hdac0: Command timeout on address 2"
messages emitted during playback on a variety of contemporary machines.
Show the command that timed out in case it might provide a clue in
finding the cause.

PR: 229190
MFC after: 1 week
Sponsored by: The FreeBSD Foundation

4 years agohdac: update comment on reset duration
emaste [Fri, 10 Apr 2020 18:13:29 +0000 (18:13 +0000)]
hdac: update comment on reset duration

The comment previously stated the delay must be at least 250us but that
was insufficient and so should be doubled, but the delay was actually
1000.  The HDA spec actually says the delay must be 521 us (25 frames)
so update the comment to match.

4 years agoSplit rtrequest1_fib() into smaller manageable chunks.
melifaro [Fri, 10 Apr 2020 16:27:27 +0000 (16:27 +0000)]
Split rtrequest1_fib() into smaller manageable chunks.

No functional changes.

* Move route addition / route deletion code from rtrequest1_fib()
  to add_route() and del_route() respectively.
* Rename rtrequest1_fib_change() to change_route() for consistency.
* Shrink the scope of ugly info #defines.

MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D24349

4 years agouserland build: replace -fno-common with ${CFCOMMONFLAG}
kevans [Fri, 10 Apr 2020 14:01:07 +0000 (14:01 +0000)]
userland build: replace -fno-common with ${CFCOMMONFLAG}

This change allows any downstream or otherwise consumer to easily override
the new -fno-common default on a temporary basis without having to hack into
src.sys.mk, and also makes it a bit easier to search for these specific
cases where -fno-common must be overridden with -fcommon or else the build
will fail.

The gdb build, the only program requiring -fcommon on head/, is switched
over as an example usage. It will need it on all branches, so this does not
harm future mergability.

MFC after: 3 days

4 years agoAdd HISTORY section to getc(3)
carlavilla [Fri, 10 Apr 2020 09:37:20 +0000 (09:37 +0000)]
Add HISTORY section to getc(3)

PR: 240269
Submitted by: Gordon Bergling
Differential Revision: https://reviews.freebsd.org/D24295

4 years agoexit(3): Add HISTORY section
carlavilla [Fri, 10 Apr 2020 09:27:18 +0000 (09:27 +0000)]
exit(3): Add HISTORY section

PR: 240259
Submitted by: Gordon Bergling
Obtained from: OpenBSD
Differential Revision: https://reviews.freebsd.org/D24146

4 years agoarc4random(3): Expand the SEE ALSO section
carlavilla [Fri, 10 Apr 2020 09:12:41 +0000 (09:12 +0000)]
arc4random(3): Expand the SEE ALSO section

Submitted by: Gordon Bergling
Approved by: brueffer@
Obtained from: NetBSD
Differential Revision: https://reviews.freebsd.org/D23716

4 years agoAdd myself (tagattie) as ports committer
tagattie [Fri, 10 Apr 2020 07:44:02 +0000 (07:44 +0000)]
Add myself (tagattie) as ports committer

Approved by: ehaupt (mentor)

4 years agoDo not pass bogus page to mbufs.
kib [Fri, 10 Apr 2020 01:28:47 +0000 (01:28 +0000)]
Do not pass bogus page to mbufs.

This is a bug in r359473.

Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks

4 years agoufs: apply suspension for non-forced rw unmounts.
kib [Fri, 10 Apr 2020 01:24:16 +0000 (01:24 +0000)]
ufs: apply suspension for non-forced rw unmounts.

Forced rw unmounts and remounts from rw to ro already suspend
filesystem, which closes races with writers instantiating new vnodes
while unmount flushes the queue.  Original intent of not including
non-forced unmounts into this regime was to allow such unmounts to
fail if writer was active, but this did not worked well.

Similar change, but causing all unmount, even involving only ro
filesystem, were proposed in D24088, but I believe that suspending ro
is undesirable, and definitely spends CPU time.

Reported by: markj
Discussed with: chs, mckusick
Tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 1 week

4 years agoadd myself (rscheff) as a src committer.
rscheff [Fri, 10 Apr 2020 00:31:52 +0000 (00:31 +0000)]
add myself (rscheff) as a src committer.

Reviewed by: rgrimes (mentor), tuexen (mentor)
Approved by: rgrimes (mentor), tuexen (mentor)
MFC after: 3 days
Sponsored by: NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D24318

4 years agoFixing the soft update macros in -r359612 triggered a previously
mckusick [Thu, 9 Apr 2020 23:51:18 +0000 (23:51 +0000)]
Fixing the soft update macros in -r359612 triggered a previously
hidden bug in the file truncation code. Until that bug is tracked
down and fixed, revert to the old behavior.

Reported by: Peter Holm
Reviewed by: kib, Chuck Silvers

4 years agoWhen running with a kernel compiled with DEBUG_LOCKS, before
mckusick [Thu, 9 Apr 2020 23:42:13 +0000 (23:42 +0000)]
When running with a kernel compiled with DEBUG_LOCKS, before
panic'ing for recusing on a non-recursive lock, print out the
kernel stack where the lock was originally acquired.

4 years agolibc: Fix possible overflow in binuptime().
kib [Thu, 9 Apr 2020 23:22:35 +0000 (23:22 +0000)]
libc: Fix possible overflow in binuptime().

This is an application of the kernel overflow fix from r357948 to
userspace, based on the algorithm developed by Bruce Evans. To keep
the ABI of the vds_timekeep stable, instead of adding the large_delta
member, MSB of both multipliers are added to quickly estimate the overflow.

Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks

4 years agoReplace mbuf macros with the code they would generate in the NFS code.
rmacklem [Thu, 9 Apr 2020 23:11:19 +0000 (23:11 +0000)]
Replace mbuf macros with the code they would generate in the NFS code.

When the code was ported to Mac OS/X, mbuf handling functions were
converted to using the Mac OS/X accessor functions. For FreeBSD, they
are a simple set of macros in sys/fs/nfs/nfskpiport.h.
Since porting to Mac OS/X is no longer a consideration, replacement of
these macros with the code generated by them makes the code more
readable.
When support for external page mbufs is added as needed by the KERN_TLS,
the patch becomes simpler if done without the macros.

This patch should not result in any semantic change.
This conversion will be committed one file at a time.

4 years agoAdd support for BCM54618SE PHY
jhibbits [Thu, 9 Apr 2020 21:24:17 +0000 (21:24 +0000)]
Add support for BCM54618SE PHY

MFC after: 3 days
Sponsored by: Juniper Networks, Inc

4 years agoRemove extra call to vfs_op_exit() from vfs_write_suspend() when VFS_SYNC() fails.
kib [Thu, 9 Apr 2020 18:38:00 +0000 (18:38 +0000)]
Remove extra call to vfs_op_exit() from vfs_write_suspend() when VFS_SYNC() fails.

The vfs_write_resume() handler already does vfs_op_exit() for us.

Reported by: pho
Reviewed by: mckusick
Sponsored by: The FreeBSD Foundation

4 years agoBump version for r359745, since it removed a field from "struct proc" and
rmacklem [Thu, 9 Apr 2020 15:33:13 +0000 (15:33 +0000)]
Bump version for r359745, since it removed a field from "struct proc" and
that changed the offsets of fields within it.

4 years agoRemove the old NFS lock device driver that uses Giant.
rmacklem [Thu, 9 Apr 2020 14:44:46 +0000 (14:44 +0000)]
Remove the old NFS lock device driver that uses Giant.

This NFS lock device driver was replaced by the kernel NLM around FreeBSD7 and
has not normally been used since then.
To use it, the kernel had to be built without "options NFSLOCKD" and
the nfslockd.ko had to be deleted as well.
Since it uses Giant and is no longer used, this patch removes it.

With this device driver removed, there is now a lot of unused code
in the userland rpc.lockd. That will be removed on a future commit.

Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D22933

4 years agoAlways install backward compatibility timezones, as they are installed
delphij [Thu, 9 Apr 2020 05:11:18 +0000 (05:11 +0000)]
Always install backward compatibility timezones, as they are installed
on all major Linux distributions as well as NetBSD and OpenBSD.

Remove the undocumented ZONEINFO_OLD_TIMEZONES_SUPPORT and the deprecated
OLDTIMEZONES knobs as they are now the default.

Reviewed by: ngie, rgrimes
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D24306

4 years agoAdd a basic manpage for smbfs(5).
brueffer [Wed, 8 Apr 2020 20:00:30 +0000 (20:00 +0000)]
Add a basic manpage for smbfs(5).

Submitted by: Gordon Bergling
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D23905

4 years agologger: temporarily disable Capsicum when a host is provided
oshogbo [Wed, 8 Apr 2020 18:43:00 +0000 (18:43 +0000)]
logger: temporarily disable Capsicum when a host is provided

We don't have a way to send a UDP package.

PR: 245314
Reported by: dch
Discussed with: emaste

4 years agoFix copyright year and eliminate the obsolete all rights reserved line.
imp [Wed, 8 Apr 2020 17:55:45 +0000 (17:55 +0000)]
Fix copyright year and eliminate the obsolete all rights reserved line.

Reviewed by: rrs@

4 years agoClone the RCU interface into a sleepable and a non-sleepable part
hselasky [Wed, 8 Apr 2020 17:09:45 +0000 (17:09 +0000)]
Clone the RCU interface into a sleepable and a non-sleepable part
in the LinuxKPI.

This allows synchronize RCU to be used inside a SRCU read section.
No functional change intended.

Bump the __FreeBSD_version to force recompilation of external kernel modules.

PR: 242272
MFC after: 1 week
Sponsored by: Mellanox Technologies

4 years agoSome fixes for SRCU in the LinuxKPI.
hselasky [Wed, 8 Apr 2020 16:07:57 +0000 (16:07 +0000)]
Some fixes for SRCU in the LinuxKPI.

- Make sure to use READ_ONCE() when deferring variables.
- Remove superfluous zero initializer.

MFC after: 1 week
Sponsored by: Mellanox Technologies

4 years agoAccount out of buffer as dropped packets in mlx5en(4).
hselasky [Wed, 8 Apr 2020 08:56:27 +0000 (08:56 +0000)]
Account out of buffer as dropped packets in mlx5en(4).

MFC after: 1 week
Sponsored by: Mellanox Technologies

4 years agoRemove obsolete bufring stats in mlx5en(4).
hselasky [Wed, 8 Apr 2020 08:53:31 +0000 (08:53 +0000)]
Remove obsolete bufring stats in mlx5en(4).

Leftover from when DRBR was removed.

MFC after: 1 week
Sponsored by: Mellanox Technologies

4 years agoFix an interoperability issue w.r.t. the Linux client and the NFSv4 server.
rmacklem [Wed, 8 Apr 2020 01:12:54 +0000 (01:12 +0000)]
Fix an interoperability issue w.r.t. the Linux client and the NFSv4 server.

Luoqi Chen reported a problem on freebsd-fs@ where a Linux NFSv4 client
was able to open and write to a file when the file's permissions were
not set to allow the owner write access.

Since NFS servers check file permissions on every write RPC, it is standard
practice to allow the owner of the file to do writes, regardless of
file permissions. This provides POSIX like behaviour, since POSIX only
checks permissions upon open(2).
The traditional way NFS clients handle this is to check access via the
Access operation/RPC and use that to determine if an open(2) on the
client is allowed.

It appears that, for NFSv4, the Linux client expects the NFSv4 Open (not a
POSIX open) operation to fail with NFSERR_ACCES if the file is not being
created and file permissions do not allow owner access, unlike NFSv3.
Since both the Linux and OpenSolaris NFSv4 servers seem to exhibit this
behaviour, this patch changes the FreeBSD NFSv4 server to do the same.
A sysctl called vfs.nfsd.v4openaccess can be set to 0 to return the
NFSv4 server to its previous behaviour.

Since both the Linux and FreeBSD NFSv4 clients seem to exhibit correct
behaviour with the access check for file owner in Open enabled, it is enabled
by default.

Reported by: luoqi.chen@gmail.com
MFC after: 2 weeks

4 years agoIn the past changes have been made to smbios->minor without updating the
rgrimes [Tue, 7 Apr 2020 23:17:44 +0000 (23:17 +0000)]
In the past changes have been made to smbios->minor without updating the
smbios->bcdrev value.
Correct that by calculating bcdrev from the major/minor values.

Reported by: bcran
Reviewed by: bcran, jhb
Approved by: jhb (maintainer)

4 years agoNow that we don't have special-case geom hacking defined in md_var.h, stop
imp [Tue, 7 Apr 2020 22:23:22 +0000 (22:23 +0000)]
Now that we don't have special-case geom hacking defined in md_var.h, stop
including it. sparc64 was the last straggler here, but these weren't removed at
the time.

4 years agoAdd a basic test for nvmecontrol
dab [Tue, 7 Apr 2020 20:26:42 +0000 (20:26 +0000)]
Add a basic test for nvmecontrol

I recently made some bug fixes in nvmecontrol. It occurred to me that
since nvmecontrol lacks any kyua tests, I should convert the informal
testing I did into a more formal automated test. The test in this
change should be considered just a starting point; it is neither
complete nor thorough. While converting the test to ATF/kyua, I
discovered a small bug in nvmecontrol; the nvmecontrol devlist command
would always exit with an unsuccessful status. So I included the fix
for that, too, so that the test won't fail.

Reviewed by: imp@
MFC after: 3 days
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D24269

4 years agoAdd support to MSDOS FS in PPC loader
luporl [Tue, 7 Apr 2020 19:46:00 +0000 (19:46 +0000)]
Add support to MSDOS FS in PPC loader

Although PPC OFW loader already had a LOADER_MSDOS_SUPPORT option, a few lines
were missing in conf.c, in order to support FAT filesystems.

This is useful when running FreeBSD under QEMU, to be able to easily change the
kernel and modules when running on hosts without UFS read/write support.

Reviewed by: jhibbits
Sponsored by: Eldorado Research Institute (eldorado.org.br)
Differential Revision: https://reviews.freebsd.org/D24328

4 years agoNO_OBJ: Always fix .OBJDIR regardless of AUTO_OBJ.
bdrewery [Tue, 7 Apr 2020 17:07:04 +0000 (17:07 +0000)]
NO_OBJ: Always fix .OBJDIR regardless of AUTO_OBJ.

Sponsored by: Dell EMC
MFC after: 2 weeks

4 years agoAdd VIRTIO_NET_F_MTU flag support for the bhyve virtio-net device.
afedorov [Tue, 7 Apr 2020 17:06:33 +0000 (17:06 +0000)]
Add VIRTIO_NET_F_MTU flag support for the bhyve virtio-net device.
The flag can be enabled using the new 'mtu' option:
bhyve -s X:Y:Z,virtio-net,[tapN|valeX:N],mtu=9000

Reported by: vmaffione, jhb
Approved by: vmaffione (mentor)
Differential Revision: https://reviews.freebsd.org/D23971

4 years agoAdd -fno-common to all userland/kernel src builds
kevans [Tue, 7 Apr 2020 17:04:24 +0000 (17:04 +0000)]
Add -fno-common to all userland/kernel src builds

-fno-common will become the default in GCC10/LLVM11. Plenty of work has been
put in to make sure our world builds are no -fno-common clean, so let's slap
the build with this until it becomes the compiler default to ensure we don't
regress.

At this time, we will not be enforcing -fno-common on ports builds. I
suspect most ports will be or quickly become -fno-common clean as they're
naturally built against compilers that default to it, so this will hopefully
become a non-issue in due time. The exception to this, which is actually the
status quo, is that kmods built from ports will continue to build with
-fno-common.

As of the time of writing, I intend to also make stable/12 -fno-common
clean. What's been done will be MFC'd to stable/11 if it's easily applicable
and/or not much work to massage it into being functional, but I anticipate
adding -fcommon to stable/11 builds to maintain its ability to be built with
newer compilers for the rest of its lifetime instead of putting in a third
branch's worth of effort.

4 years agoImprove interaction of vectx and tftp
sjg [Tue, 7 Apr 2020 16:56:34 +0000 (16:56 +0000)]
Improve interaction of vectx and tftp

On slow platforms, it helps to spread the hashing load
over time so that tftp does not timeout.

Also, some .4th files are too big to fit in cache of pkgfs,
so increase cache size and ensure fully populated.

Reviewed by: stevek
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D24287

4 years agolibcasper(3): Export functions to C++
cem [Tue, 7 Apr 2020 16:40:41 +0000 (16:40 +0000)]
libcasper(3): Export functions to C++

We must wrap C declarations in __BEGIN / __END_DECLS to avoid C++ name-mangling
of the declaration when including the C header; name-mangling causes the linker
to attempt to locate the wrong (C++ ABI) symbol name.

Reviewed by: markj, oshogbo (earlier version both)
Differential Revision: https://reviews.freebsd.org/D24323

4 years agoAllow the kernel to build with a compiler that sets -fno-common.
brooks [Tue, 7 Apr 2020 15:32:08 +0000 (15:32 +0000)]
Allow the kernel to build with a compiler that sets -fno-common.

The mechanism that generates assym.inc and offset.inc depends on the
symbols in question being common. For now, simply force the object files
to be created with -fcommon.

-fno-common will be the default in GCC10/LLVM11.

Submitted by: arichardson
Reviewed by: kevans
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D24322

4 years agoFix port/kernel builds after r359681
kevans [Tue, 7 Apr 2020 15:10:04 +0000 (15:10 +0000)]
Fix port/kernel builds after r359681

Submitted by: bdrewery
Reported by: bdrewery, sobomax, antoine

4 years agoconfig(8): "fix" a couple of buffer overflows
kevans [Tue, 7 Apr 2020 14:14:59 +0000 (14:14 +0000)]
config(8): "fix" a couple of buffer overflows

Recently added/changed lines in various kernel configs have caused some
buffer overflows that went undetected. These were detected with a config
built using -fno-common as these line buffers smashed one of our arrays,
then further triaged with ASAN.

Double the sizes; this is really not a great fix, but addresses the
immediate need until someone rewrites config. While here, add some bounds
checking so that we don't need to detect this by random bus errors or other
weird failures.

MFC after: 3 days

4 years agostand: -fno-common fixes for !x86 loaders
kevans [Tue, 7 Apr 2020 12:57:50 +0000 (12:57 +0000)]
stand: -fno-common fixes for !x86 loaders

- beriloader: archsw is declared extern and defined elsewhere
- ofwloader: ofw_elf{,64} are defined in elf_freebsd.c and
  ppc64_elf_freebsd.c respectively
- ubldr: syscall_ptr is defined in start.S for whichever ubldr platform is
  building

-fno-common will become the default in GCC10/LLVM11.

MFC after: 3 days

4 years ago[PPC] Fix loader call to instantiate-rtas
luporl [Tue, 7 Apr 2020 12:46:26 +0000 (12:46 +0000)]
[PPC] Fix loader call to instantiate-rtas

OpenFirmware (OF) method instantiate-rtas was being called with a wrong
rtas-base-address argument. It must use the memory that is already being
allocated to this end instead. This issue was causing QEMU netboot to hang
when building the FDT from OF DT.

Reviewed by: jhibbits
Sponsored by: Eldorado Research Institute (eldorado.org.br)
Differential Revision: https://reviews.freebsd.org/D24313

4 years agoFix panic on kern.cam.ctl.ha_role change after r333446.
mav [Tue, 7 Apr 2020 03:19:00 +0000 (03:19 +0000)]
Fix panic on kern.cam.ctl.ha_role change after r333446.

MFC after: 1 week
Sponsored by: iXsystems, Inc.

4 years agoNormalize deployment tools usage and definitions by putting into one place
sobomax [Tue, 7 Apr 2020 02:46:22 +0000 (02:46 +0000)]
Normalize deployment tools usage and definitions by putting into one place
instead of sprinkling them out over many disjoint files. This is a follow-up
to achieve the same goal in an incomplete rev.348521.

Approved by: imp
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D20520

4 years agoriscv: Add semicolon missing from r359672
jrtc27 [Mon, 6 Apr 2020 23:54:50 +0000 (23:54 +0000)]
riscv: Add semicolon missing from r359672

Somehow this got lost between build-testing and submitting to Phabricator.

4 years agoFix compilation with upstream clang builtin headers.
brooks [Mon, 6 Apr 2020 23:38:46 +0000 (23:38 +0000)]
Fix compilation with upstream clang builtin headers.

By using -nobuiltininc and adding the clang builtin headers resource dir
to the end of the compiler header search path, we can still find headers
such as immintrin.h but find the FreeBSD version of stddef.h/stdarg.h/..
first.

This is a workaround until we are able to settle on and complete a plan
to harmonize guard macros with LLVM.  We've mostly worked out this on
FreeBSD systems by removing select headers from the installed set of
devel/llvm*, but that isn't a good solution for cross build.

Submitted by: arichardson
Obtained from: CheriBSD
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D17002

4 years agomail/gprof/tip: tap with the ugly stick
kevans [Mon, 6 Apr 2020 23:28:24 +0000 (23:28 +0000)]
mail/gprof/tip: tap with the ugly stick

The ugly stick here is this bit in the respective headers:

#ifndef EXTERN
#define EXTERN extern
#endif

with a follow-up #define EXTERN in a single .c file to push all of their
definitions into one spot. A pass should be made over these three later to
push these definitions into the correct files instead, but this will suffice
for now and at a more leisurely pace.

MFC after: 3 days

4 years agoFix noisy NFSv4 server printf.
rmacklem [Mon, 6 Apr 2020 23:21:39 +0000 (23:21 +0000)]
Fix noisy NFSv4 server printf.

Peter reported that his dmesg was getting cluttered with
nfsrv_cache_session: no session
messages when he rebooted his NFS server and they did not seem useful.
He was correct, in that these messages are "normal" and expected when
NFSv4.1 or NFSv4.2 are mounted and the server is rebooted.
This patch silences the printf() during the grace period after a reboot.
It also adds the client IP address to the printf(), so that the message
is more useful if/when it occurs. If this happens outside of the
server's grace period, it does indicate something is not working correctly.
Instead of adding yet another nd_XXX argument, the arguments for
nfsrv_cache_session() were simplified to take a "struct nfsrv_descript *".

Reported by: pen@lysator.liu.se
MFC after: 2 weeks

4 years agoindent: fix the -fno-common build
kevans [Mon, 6 Apr 2020 23:20:20 +0000 (23:20 +0000)]
indent: fix the -fno-common build

Spread the globals far and wide, hopefully to the files that make the most
sense.

-fno-common will become the default in GCC10/LLVM11.

MFC after: 3 days

4 years agoyp*: fix -fno-common build
kevans [Mon, 6 Apr 2020 23:16:05 +0000 (23:16 +0000)]
yp*: fix -fno-common build

This is mostly two problems spread out far and wide:
- ypldap_process should be declared properly
- debug is defined differently in many programs

For the latter, just extern it and define it everywhere that actually needs
it. This mostly works out nicely for ^/libexec/ypxfr, which can remove the
assignment at the beginning of main in favor of defining it properly.

-fno-common will become the default in GCC10/LLVM11.

MFC after: 3 days

4 years agontpd: fix build with -fno-common
kevans [Mon, 6 Apr 2020 23:11:43 +0000 (23:11 +0000)]
ntpd: fix build with -fno-common

Only a small nit here: psl should be declared extern and defined exactly
once.

-fno-common will become the default in GCC10/LLVM11.

MFC after: 3 days

4 years agokqueue tests: fix -fno-common build
kevans [Mon, 6 Apr 2020 23:08:07 +0000 (23:08 +0000)]
kqueue tests: fix -fno-common build

vnode_fd and kqfd are both shared among multiple CU; define them exactly
once.

In the case of vnode_fd, it was simply the declaration that needed
correction.

-fno-common will become the default in GCC10/LLVM11.

MFC after: 3 days

4 years agolibcasper: Constify cap_sysctl_limit_mib() mib parameter
cem [Mon, 6 Apr 2020 23:07:56 +0000 (23:07 +0000)]
libcasper: Constify cap_sysctl_limit_mib() mib parameter

No functional change. Minor API change that is nicer for consumers. ABI is
identical; the routine never needed to modify the pointed to value.

Reviewed by: emaste, markj
Differential Revision: https://reviews.freebsd.org/D24319

4 years agoRISC-V: copy the DTB to early KVA
mhorne [Mon, 6 Apr 2020 22:48:43 +0000 (22:48 +0000)]
RISC-V: copy the DTB to early KVA

The location of the device-tree blob is passed to the kernel by the
previous booting stage (i.e. BBL or OpenSBI). Currently, we leave it
untouched and mark the 1MB of memory holding it as unavailable.

Instead, do what is done by other fake_preload_metadata() routines and
copy to the DTB to KVA space. This is more in line with what loader(8)
will provide us in the future, and it allows us to reclaim the hole in
physical memory.

Reviewed by: markj, kp (earlier version)
Differential Revision: https://reviews.freebsd.org/D24152