]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
4 years agoAllow kernel modules to build with a compiler that defaults to -fno-common
Alex Richardson [Sat, 18 Apr 2020 12:54:35 +0000 (12:54 +0000)]
Allow kernel modules to build with a compiler that defaults to -fno-common

This uses the same approach as r359691.

Reviewed By: brooks
Differential Revision: https://reviews.freebsd.org/D24405

4 years agoAdd missing feature descriptions to hci_features2str().
Hans Petter Selasky [Sat, 18 Apr 2020 08:29:16 +0000 (08:29 +0000)]
Add missing feature descriptions to hci_features2str().

The list of possible features in hccontrol/features2str() is incomplete.
Refer to "Bluetooth Core Specification 5.2 Vol. 2 Part C. 3.3 Feature Mask Definition".

Submitted by: Marc Veldman <marc@bumblingdork.com>
PR: 245354
MFC after: 1 week
Sponsored by: Mellanox Technologies

4 years agobridge: Simplify mac address generation
Kristof Provost [Sat, 18 Apr 2020 08:00:58 +0000 (08:00 +0000)]
bridge: Simplify mac address generation

Unconditionally use ether_gen_addr() to generate bridge mac addresses.  This
function is now less likely to generate duplicate mac addresses across jails.
The old hand rolled hostid based code adds no value.

Reviewed by: bz
Differential Revision: https://reviews.freebsd.org/D24432

4 years agoethersubr: Make the mac address generation more robust
Kristof Provost [Sat, 18 Apr 2020 07:50:30 +0000 (07:50 +0000)]
ethersubr: Make the mac address generation more robust

If we create two (vnet) jails and create a bridge interface in each we end up
with the same mac address on both bridge interfaces.
These very often conflicts, resulting in same mac address in both jails.

Mitigate this problem by including the jail name in the mac address.

Reviewed by: kevans, melifaro
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D24383

4 years agosendfile: When all io finished, assert that sfio->pa[] is in expected state.
Konstantin Belousov [Sat, 18 Apr 2020 03:09:25 +0000 (03:09 +0000)]
sendfile: When all io finished, assert that sfio->pa[] is in expected state.

It must contain fully restored contigous run of the wired pages from
the object, except possible trimmed tail.

Tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks

4 years agoThe pa argument for sendfile_iodone() is not necessary a slice of sfio->pa.
Konstantin Belousov [Sat, 18 Apr 2020 03:07:18 +0000 (03:07 +0000)]
The pa argument for sendfile_iodone() is not necessary a slice of sfio->pa.

It is true for zfs, but it is not for e.g. vnode or buffer pagers.
When fixing bogus pages, fix them in both places.  Rely on the fact
that pa[0] must have been invalid so it cannot be bogus.

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

4 years agoAdd deprecation notice to amr(4)
Warner Losh [Sat, 18 Apr 2020 02:53:19 +0000 (02:53 +0000)]
Add deprecation notice to amr(4)

4 years agotwa(4) deprecation notice
Warner Losh [Sat, 18 Apr 2020 02:53:14 +0000 (02:53 +0000)]
twa(4) deprecation notice

4 years agoDeprecation notice for iir
Warner Losh [Sat, 18 Apr 2020 02:53:09 +0000 (02:53 +0000)]
Deprecation notice for iir

4 years agoAdd deprecation notice to mly
Warner Losh [Sat, 18 Apr 2020 02:53:04 +0000 (02:53 +0000)]
Add deprecation notice to mly

4 years agoAdd deprecation notice for esp(4).
Warner Losh [Sat, 18 Apr 2020 02:52:59 +0000 (02:52 +0000)]
Add deprecation notice for esp(4).

4 years agoDefine enum for so_qstate outside of struct.
Simon J. Gerraty [Sat, 18 Apr 2020 01:22:41 +0000 (01:22 +0000)]
Define enum for so_qstate outside of struct.

LLVM-9.0 clang++ throws an error for enum defined within
an anonymous struct.

Reviewed by: jtl, rpokala
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org//D24477

4 years agohdac: replace printf for unowned lock with a lock assertion
Ed Maste [Sat, 18 Apr 2020 01:16:30 +0000 (01:16 +0000)]
hdac: replace printf for unowned lock with a lock assertion

Reviewed by: markj, mav
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D24479

4 years agoTidy up syntax and punctuation of some entries.
Greg Lehey [Fri, 17 Apr 2020 23:14:51 +0000 (23:14 +0000)]
Tidy up syntax and punctuation of some entries.

4 years agoReplace all instances of the typedef mbuf_t with "struct mbuf *".
Rick Macklem [Fri, 17 Apr 2020 21:17:51 +0000 (21:17 +0000)]
Replace all instances of the typedef mbuf_t with "struct mbuf *".

The typedef mbuf_t was used for the Mac OS/X port of the code long ago.
Since this port is no longer used and the use of mbuf_t obscures what
the code does (and is not consistent with style(9)), it is no longer needed.
This patch replaces all instances of mbuf_t with "struct mbuf *", so that
it is no longer used.

This patch should not result in any semantic change.

4 years agoxen-locore: Silence DWARF2 section warning
Conrad Meyer [Fri, 17 Apr 2020 20:20:03 +0000 (20:20 +0000)]
xen-locore: Silence DWARF2 section warning

Silence the "DWARF2 can only represent one section per compilation unit"
warning in amd64 GENERIC builds by disabling Clang's debuginfo generation for
this assembler file (-g0).  The message is replaced by a warning from
ctfconvert that there is no debuginfo to convert (future work).

The file contains some metadata (several ELF notes) and some code.  The code
does not appear to have anything that debuginfo would aid.

I looked at the generated debuginfo (readelf -w xen-locore.o) prior to this
change, and the metadata that would be disabled are things like associated
between binary offset and code line number (not especially useful with a
disassembler), and label metadata for the entry points (not especially useful
as this is already in the symbol table).

Reviewed by: royger
Differential Revision: https://reviews.freebsd.org/D24384

4 years agohdac: update comment to match function name
Ed Maste [Fri, 17 Apr 2020 19:14:05 +0000 (19:14 +0000)]
hdac: update comment to match function name

snd_hda was rewritten in r230130; one function retained a comment
referencing the previous name.

MFC after: 3 days
Sponsored by: The FreeBSD Foundation

4 years agoRemove a vestigal reference to kmem_object.
Mark Johnston [Fri, 17 Apr 2020 19:12:52 +0000 (19:12 +0000)]
Remove a vestigal reference to kmem_object.

kmem_object has been an alias of kernel_object for a while.

MFC after: 1 week

4 years agotty: convert tty_lock_assert to tty_assert_locked to hide lock type
Kyle Evans [Fri, 17 Apr 2020 18:34:49 +0000 (18:34 +0000)]
tty: convert tty_lock_assert to tty_assert_locked to hide lock type

A later change, currently being iterated on in D24459, will in-fact change
the lock type to an sx so that TTY drivers can sleep on it if they need to.
Committing this ahead of time to make the review in question a little more
palatable.

tty_lock_assert() is unfortunately still needed for now in two places to
make sure that the tty lock has not been recursed upon, for those scenarios
where it's supplied by the TTY driver and possibly a mutex that is allowed
to recurse.

Suggested by: markj

4 years agoUse the right type for 64-bit coprocessor registers.
John Baldwin [Fri, 17 Apr 2020 18:24:47 +0000 (18:24 +0000)]
Use the right type for 64-bit coprocessor registers.

The use of "int" here caused the compiler to believe that it needs to
insert a "sll $n, $n, 0" to sign extend as part of the implicit cast
to uint64_t.

Submitted by: Nathaniel Filardo <nwf20@cl.cam.ac.uk>
Reviewed by: brooks, arichardson
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D24457

4 years agoUnbreak build by reverting if_bridge part of r360047.
Alexander V. Chernikov [Fri, 17 Apr 2020 18:22:37 +0000 (18:22 +0000)]
Unbreak build by reverting if_bridge part of r360047.

Pointy hat to: melifaro

4 years agoDon't try to copyout() to a kernel buffer.
John Baldwin [Fri, 17 Apr 2020 18:19:13 +0000 (18:19 +0000)]
Don't try to copyout() to a kernel buffer.

The handle_string callback for the ENCIOC_GET_ENCNAME and
ENCIOC_GETENCID ioctls tries to copy the size of the generated string
out to userland.  However, the callback only has access to the kernel
copy of the structure populated by copyin().  The copyout() call
simply overwrites the value in the kernel's copy preventing the
subsequent overflow prevention logic from working.

Fix this by instead doing a copyout() of the updated length in the
caller after the callback returns.

Reviewed by: kib
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D24456

4 years agoFinish r191148: replace rtentry with route in if_bridge if_output() callback.
Alexander V. Chernikov [Fri, 17 Apr 2020 17:05:58 +0000 (17:05 +0000)]
Finish r191148: replace rtentry with route in if_bridge if_output() callback.

Generic if_output() callback signature was modified to use struct route
 instead of struct rtentry in r191148, back in 2009.

Quoting commit message:

 Change if_output to take a struct route as its fourth argument in order
 to allow passing a cached struct llentry * down to L2

Fix bridge_output() to match this signature and update the remaining
 comment in if_var.h.

Reviewed by: kp
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D24394

4 years agoAlways compile minidump_machdep.c on arm.
Mark Johnston [Fri, 17 Apr 2020 16:55:14 +0000 (16:55 +0000)]
Always compile minidump_machdep.c on arm.

It is not logically dependent on "device mem", and an arm kernel
compiled without that device fails to link since the minidumpsys()
symbol is referenced by kern_dump.c.

MFC after: 1 week
Sponsored by: The FreeBSD Foundation

4 years agoSkip routing regression tests depending on if_epair if this module isn't installed.
Olivier Cochard [Fri, 17 Apr 2020 16:31:07 +0000 (16:31 +0000)]
Skip routing regression tests depending on if_epair if this module isn't installed.

Approved by: melifaro
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D24468

4 years agovmm.h: Add ABI assertions and mark implicit holes
Conrad Meyer [Fri, 17 Apr 2020 15:19:42 +0000 (15:19 +0000)]
vmm.h: Add ABI assertions and mark implicit holes

The static assertions were added (with size and offsets from gdb) and verified
with a build prior to marking the holes explicitly.

This is in preparation for a subsequent revision, pending in phabricator, that
makes use of some of these unused bits without impacting the ABI.

Reviewed by: grehan
Differential Revision: https://reviews.freebsd.org/D24461

4 years agobridge tests: Test deleting a bridge with members
Kristof Provost [Fri, 17 Apr 2020 14:57:15 +0000 (14:57 +0000)]
bridge tests: Test deleting a bridge with members

Reviewed by: philip, emaste
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D24337

4 years agopf: Do not allow negative ps_len in DIOCGETSTATES
Kristof Provost [Fri, 17 Apr 2020 14:35:11 +0000 (14:35 +0000)]
pf: Do not allow negative ps_len in DIOCGETSTATES

Userspace may pass a negative ps_len value to us, which causes an
assertion failure in malloc().
Treat negative values as zero, i.e. return the required size.

Reported-by: syzbot+53370d9d0358ee2a059a@syzkaller.appspotmail.com
Reviewed by: lutz at donnerhacke.de
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D24447

4 years agojail(8): improve manual and usage information with more clear
Eugene Grosbein [Fri, 17 Apr 2020 10:12:11 +0000 (10:12 +0000)]
jail(8): improve manual and usage information with more clear
description for "jail -e" mode to show that it does not take
additional jail name argument.

Reported by: David Marec <david.marec@davenulle.org>
MFC after: 3 days

4 years agoMake ZFS depend on xdr.ko only. It doesn't need kernel RPC.
Gleb Smirnoff [Fri, 17 Apr 2020 06:05:08 +0000 (06:05 +0000)]
Make ZFS depend on xdr.ko only.  It doesn't need kernel RPC.

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

4 years agoSplit XDR into separate kernel module. Make krpc depend on xdr.
Gleb Smirnoff [Fri, 17 Apr 2020 06:04:20 +0000 (06:04 +0000)]
Split XDR into separate kernel module.  Make krpc depend on xdr.

Reviewed by: rmacklem
Differential Revision: https://reviews.freebsd.org/D24408

4 years agoMove M_RPC malloc type into XDR. Both RPC and XDR libraries use
Gleb Smirnoff [Fri, 17 Apr 2020 06:02:13 +0000 (06:02 +0000)]
Move M_RPC malloc type into XDR.  Both RPC and XDR libraries use
this type, but since RPC depends on XDR (not vice versa) we need
it defined in XDR to make the module loadable without RPC.

Reviewed by: rmacklem
Differential Revision: https://reviews.freebsd.org/D24408

4 years agoDon't initialize m->m_data to m->m_pktdat, this is already done by the
Gleb Smirnoff [Fri, 17 Apr 2020 05:59:38 +0000 (05:59 +0000)]
Don't initialize m->m_data to m->m_pktdat, this is already done by the
mbuf allocator.  That was the last remnant of such code in the kernel.

4 years agotests: kqueue: use a more precise timer for the NOTE_ABSTIME test
Kyle Evans [Fri, 17 Apr 2020 02:22:15 +0000 (02:22 +0000)]
tests: kqueue: use a more precise timer for the NOTE_ABSTIME test

Originally noticed while attempting to run the kqueue tests under
qemu-user-static, this apparently just happens sometimes when running in a
jail in general -- the timer will fire off "too early," but it's really just
the result of imprecise measurements (noted by cem).

Kicking this over to NOTE_USECONDS still tests the correct thing while
allowing it to work more consistently; a basic sanity test reveals that we
often end up coming in just less than 200 microseconds after the timer
fired off.

MFC after: 3 days

4 years agoAdd a sanity check for nes_numsecflavor to the NFS server.
Rick Macklem [Fri, 17 Apr 2020 02:21:46 +0000 (02:21 +0000)]
Add a sanity check for nes_numsecflavor to the NFS server.

Ryan Moeller reported crashes in the NFS server that appear to be
caused by stack corruption in nfsrv_compound(). It appears that
the stack got corrupted just after a NFSv4.1 Lookup that crosses
a server mount point.
Although it is just a "theory" at this point, the most obvious way
the stack could get corrupted would be if nfsvno_checkexp() somehow
acquires an export with a bogus nes_numsecflavor value. This would
cause the copying of the secflavors to run off the end of the array,
which is allocated on the stack below where the corruption occurs.

This sanity check is simple to do and would stop the stack corruption
if the theory is correct. Otherwise, doing the sanity check seems to
be a reasonable safety belt to add to the code.

Reported by: freqlabs
MFC after: 2 weeks

4 years agoaudit_canon_path_vp: don't panic if cdir == NULL
Kyle Evans [Fri, 17 Apr 2020 02:09:31 +0000 (02:09 +0000)]
audit_canon_path_vp: don't panic if cdir == NULL

cdir may have simply failed to resolve (e.g. fget_cap failure in namei
leading to NULL dp passed to AUDIT_ARG_UPATH*_VP); restore the pre-rS358191
behavior of setting cpath[0] = '\0' and bailing out instead of panicking.

This was found by inadvertently running the libc/c063 tests with auditing
enabled, resulting in a panic.

Reviewed by: mjg (committed version actually his)
Differential Revision: https://reviews.freebsd.org/D24445

4 years ago[sh] Fix a "may be unused" warning on mips-gcc
Adrian Chadd [Thu, 16 Apr 2020 23:31:39 +0000 (23:31 +0000)]
[sh] Fix a "may be unused" warning on mips-gcc

mips-gcc for mips32 was complaining that c was potentially used before
being set.  Setting it to 0 before calling fdgetsc() looks like the right
thing to do in this instance; there's an explicit check for c == 0 later
on.

Tested: mips-gcc mips32 build, running /bin/sh on mips32

4 years ago[libsa] Fix typecast of pointer for st_dev
Adrian Chadd [Thu, 16 Apr 2020 23:29:49 +0000 (23:29 +0000)]
[libsa] Fix typecast of pointer for st_dev

This code was trying to use a pointer value for st_dev, which is definitely
not a pointer.  Instead, cast to uintptr_t so it becomes a non-pointer value
before casting it.

Tested: mips-gcc cross compile, mips32 build

4 years agoRemove an duplicate definition of nhops_dump_sysctl()
Adrian Chadd [Thu, 16 Apr 2020 23:28:47 +0000 (23:28 +0000)]
Remove an duplicate definition of nhops_dump_sysctl()

One of the source files included both nhop.h and shared.h, leading to this
clashing.

Tested with: mips-gcc cross toolchain

4 years agoAlert devd when acpi_video brightness changes
Colin Percival [Thu, 16 Apr 2020 21:56:52 +0000 (21:56 +0000)]
Alert devd when acpi_video brightness changes

On my Dell Latitude 7390 laptop, the brightness hotkeys
(Fn+<up/down arrow>) send ACPI notifications which acpi_video
handles by adjusting its brightness setting; but ACPI does not
actually do anything with the backlight.

Announcing brightness changes via devd makes it possible to close
the loop by triggering the intel_backlight utility to perform the
required backlight adjustment.

Reviewed by: imp
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D24424

4 years agoConvert canary, execpathp, and pagesizes to pointers.
Brooks Davis [Thu, 16 Apr 2020 21:53:17 +0000 (21:53 +0000)]
Convert canary, execpathp, and pagesizes to pointers.

Use AUXARGS_ENTRY_PTR to export these pointers.  This is a followup to
r359987 and r359988.

Reviewed by: jhb
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D24446

4 years agoUse %zu to print a size_t value instead of %ju.
John Baldwin [Thu, 16 Apr 2020 20:46:35 +0000 (20:46 +0000)]
Use %zu to print a size_t value instead of %ju.

This fixes the build for 32-bit kernels.

4 years agoAdd 'gpio' since mmc now requires gpio_if.h.
John Baldwin [Thu, 16 Apr 2020 20:45:54 +0000 (20:45 +0000)]
Add 'gpio' since mmc now requires gpio_if.h.

4 years agoarm: nvidia: pcie: Rename class name to pcib
Emmanuel Vadot [Thu, 16 Apr 2020 20:44:23 +0000 (20:44 +0000)]
arm: nvidia: pcie: Rename class name to pcib

Reported by: jhb

4 years agoAvoid calling protocol drain routines more than once per reclamation event.
Jonathan T. Looney [Thu, 16 Apr 2020 20:17:24 +0000 (20:17 +0000)]
Avoid calling protocol drain routines more than once per reclamation event.

mb_reclaim() calls the protocol drain routines for each protocol in each
domain. Some protocols exist in more than one domain and share drain
routines. In the case of SCTP, it also uses the same drain routine for
its SOCK_SEQPACKET and SOCK_STREAM entries in the same domain.

On systems with INET, INET6, and SCTP all defined, mb_reclaim() calls
sctp_drain() four times. On systems with INET and INET6 defined,
mb_reclaim() calls tcp_drain() twice. mb_reclaim() is the only in-tree
caller of the pr_drain protocol entry.

Eliminate this duplication by ensuring that each pr_drain routine is only
specified for one protocol entry in one domain.

Reviewed by: tuexen
MFC after: 2 weeks
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D24418

4 years agoAdd a regression test for the changes in r359922 and r359923.
Jonathan T. Looney [Thu, 16 Apr 2020 20:07:34 +0000 (20:07 +0000)]
Add a regression test for the changes in r359922 and r359923.

Note that the Python code has been tested on both Python 2.7 and 3.7.

Reviewed by: olivier
MFC after: 2 weeks
Sponsored by: Netflix, Inc.

4 years agoarm: Fix duplicate pcib DRIVER_MODULE
Emmanuel Vadot [Thu, 16 Apr 2020 18:37:11 +0000 (18:37 +0000)]
arm: Fix duplicate pcib DRIVER_MODULE

Name each pcib driver uniquely.
This remove the warning printed at each arm boot :
module_register: cannot register simplebus/pcib from kernel; already loaded from kernel

4 years agoFix userland build broken by r360014.
Alexander V. Chernikov [Thu, 16 Apr 2020 17:53:23 +0000 (17:53 +0000)]
Fix userland build broken by r360014.

4 years agoDocument TCP_TLS_MODE_TOE.
John Baldwin [Thu, 16 Apr 2020 17:41:32 +0000 (17:41 +0000)]
Document TCP_TLS_MODE_TOE.

4 years agostyle(9): end continued line with operator.
Brooks Davis [Thu, 16 Apr 2020 17:24:13 +0000 (17:24 +0000)]
style(9): end continued line with operator.

4 years agoAdd nhop parameter to rti_filter callback.
Alexander V. Chernikov [Thu, 16 Apr 2020 17:20:18 +0000 (17:20 +0000)]
Add nhop parameter to rti_filter callback.

One of the goals of the new routing KPI defined in r359823 is to
 entirely hide`struct rtentry` from the consumers. It will allow to
 improve routing subsystem internals and deliver more features much faster.
This change is one of the ongoing changes to eliminate direct
 struct rtentry field accesses.

Additionally, with the followup multipath changes, single rtentry can point
 to multiple nexthops.

With that in mind, convert rti_filter callback used when traversing the
 routing table to accept pair (rt, nhop) instead of nexthop.

Reviewed by: ae
Differential Revision: https://reviews.freebsd.org/D24440

4 years agoarm: Fix duplicate ehci DRIVER_MODULE
Emmanuel Vadot [Thu, 16 Apr 2020 16:59:37 +0000 (16:59 +0000)]
arm: Fix duplicate ehci DRIVER_MODULE

Name each ehci driver uniquely.
This remove the warning printed at each arm boot :
module_register: cannot register simplebus/ehci from kernel; already loaded from kernel

A similar fix was done in r333074 but imx_ehci wasn't renamed and generic_ehci wasn't
present at that time.

4 years agovmm(4): Expose instruction decode to userspace build
Conrad Meyer [Thu, 16 Apr 2020 16:50:33 +0000 (16:50 +0000)]
vmm(4): Expose instruction decode to userspace build

Permit instruction decoding logic to be compiled outside of the kernel for
rapid iteration and validation.

Reviewed by: grehan
Differential Revision: https://reviews.freebsd.org/D24439

4 years agoarm: allwinner: aw_mmc: Make it possible to unload the module
Emmanuel Vadot [Thu, 16 Apr 2020 16:00:21 +0000 (16:00 +0000)]
arm: allwinner: aw_mmc: Make it possible to unload the module

While here, add a makefile in sys/modules/allwinner so it is built.
Also add the PNP info so devmatch will load this module automatically.

MFC after: 1 month

4 years agoReduce default TCP delayed ACK timeout to 40ms.
Richard Scheffenegger [Thu, 16 Apr 2020 15:59:23 +0000 (15:59 +0000)]
Reduce default TCP delayed ACK timeout to 40ms.

Reviewed by: kbowling, tuexen
Approved by: tuexen (mentor)
MFC after: 2 weeks
Sponsored by: NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D23281

4 years agommc_fdt_helpers: Drain the cd pin taskqueue in mmc_fdt_gpio_teardown
Emmanuel Vadot [Thu, 16 Apr 2020 15:58:58 +0000 (15:58 +0000)]
mmc_fdt_helpers: Drain the cd pin taskqueue in mmc_fdt_gpio_teardown

We have no use for it now.

MFC after: 1 month

4 years agommc_fdt_helpers: Always init the timout
Emmanuel Vadot [Thu, 16 Apr 2020 12:32:28 +0000 (12:32 +0000)]
mmc_fdt_helpers: Always init the timout

We use the taskqueue to schedule card detection so always init it.
This is a proper solution instead of r359965.

MFC after: 1 month
MFH: r359924

4 years agoRevert r359965
Emmanuel Vadot [Thu, 16 Apr 2020 12:31:12 +0000 (12:31 +0000)]
Revert r359965

This cause board without a cd-gpio to not schedule a card detection.

4 years agoFix ps_strings type change for i386
Scott Long [Thu, 16 Apr 2020 05:27:13 +0000 (05:27 +0000)]
Fix ps_strings type change for i386

4 years agoAdd support for some IOCFacts fields that are available with mpr (12Gb)
Scott Long [Thu, 16 Apr 2020 04:17:06 +0000 (04:17 +0000)]
Add support for some IOCFacts fields that are available with mpr (12Gb)
controllers.  It's ugly due to the single codebase for mpr and mps and
not being able to share their respective headers.

4 years agoDon't keep a private copy of mpr_ioctl.h and mps_ioctl.h, since they
Scott Long [Thu, 16 Apr 2020 03:33:46 +0000 (03:33 +0000)]
Don't keep a private copy of mpr_ioctl.h and mps_ioctl.h, since they
easily get out of sync with the real files from the driver.

4 years agoAdd a small hack to the ioctl header files so that both mpr and mps can
Scott Long [Thu, 16 Apr 2020 03:28:28 +0000 (03:28 +0000)]
Add a small hack to the ioctl header files so that both mpr and mps can
be included.  This isn't a great solution, but fixing it correctly is a
bigger task and this is the lesser of the existing evils.

4 years agoSync with NetBSD/OpenBSD.
Xin LI [Thu, 16 Apr 2020 03:23:19 +0000 (03:23 +0000)]
Sync with NetBSD/OpenBSD.

4 years agoPreload hostuuid for early-boot use
Kyle Evans [Thu, 16 Apr 2020 00:54:06 +0000 (00:54 +0000)]
Preload hostuuid for early-boot use

prison0's hostuuid will get set by the hostid rc script, either after
generating it and saving it to /etc/hostid or by simply reading /etc/hostid.

Some things (e.g. arbitrary MAC address generation) may use the hostuuid as
a factor in early boot, so providing a way to read /etc/hostid (if it's
available) and using it before userland starts up is desirable. The code is
written such that the preload doesn't *have* to be /etc/hostid, thus not
assuming that there will be newline at the end of the buffer or even the
exact shape of the newline. White trailing whitespace/non-printables
trimmed, the result will be validated as a valid uuid before it's used for
early boot purposes.

The preload can be turned off with hostuuid_load="NO" in /boot/loader.conf,
just as other preloads; it's worth noting that this is a 37-byte file, the
overhead is believed to be generally minimal.

It doesn't seem necessary at this time to be concerned with kern.hostid.

One does wonder if we should consider validating hostuuids coming in
via jail_set(2); some bits seem to care about uuid form and we bother
validating format of smbios-provided uuid and in-fact whatever uuid comes
from /etc/hostid.

Reviewed by: karels, delphij, jamie
MFC after: 1 week (don't preload by default, probably)
Differential Revision: https://reviews.freebsd.org/D24288

4 years agoImprove TSC calibration logic.
Konstantin Belousov [Wed, 15 Apr 2020 22:28:51 +0000 (22:28 +0000)]
Improve TSC calibration logic.

Stop attempting to use FADT legacy hardware flag, it is almost always
a lie.

Instead, unless user explicitly disabled the calibration, calibrate
against 8254 ISA clock.  Then, obtain the rough value of the expected
TSC frequency from CPUID leafs 0x15/0x16 or even from the CPU
marketing name string.  If calibration results look unbelievably bogus
comparing with CPUID leafs report, use CPUID one.

Intel does not recommend to use CPUID leaf 0x16 for the value of the
system time frequency, indeed the error there might be up to 1% which
e.g. makes ntpd give up.  If ISA clock is present, we win, if not, we
get some frequency that allows the machine to boot without enormous
delay.

Next improvement would be to use HPET for re-calibration if we decided
that ISA clock gives bogus results, after HPETs are enumerated. This
is a much bigger change since we probably would need to re-evaluate
some constants depending on TSC frequency.

Reviewed by: emaste, jhb, scottl
Tested by: scottl
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D24426

4 years agoFix the NFSv4.2 extended attribute support for remove extended attrbute.
Rick Macklem [Wed, 15 Apr 2020 21:27:52 +0000 (21:27 +0000)]
Fix the NFSv4.2 extended attribute support for remove extended attrbute.

I missed the "atomic" field of the RemoveExtendedAttribute operation's
reply when I implemented it. It worked between FreeBSD client and server,
since it was missed for both, but it did not conform to RFC 8276.
This patch adds the field for both client and server.

Thanks go to Frank for doing interoperability testing of the extended
attribute support against patches for Linux.

Submitted by: Frank van der Linden <fllinden@amazon.com>
Reported by: Frank van der Linden <fllinden@amazon.com>

4 years agoRevert commit b6cf400aa fro llvm git (by Nemanja Ivanovic):
Dimitry Andric [Wed, 15 Apr 2020 21:06:38 +0000 (21:06 +0000)]
Revert commit b6cf400aa fro llvm git (by Nemanja Ivanovic):

  Fix bots after a9ad65a2b34f

  In the last commit, I neglected to initialize the new subtarget
  feature I added which caused failures on a few bots. This should fix
  that.

This unbreaks the build after r359981, which reverted upstream commit
a9ad65a2b34f.

Reported by: jhibbits (and jenkins :)
MFC after: 6 weeks
X-MFC-With: 358851

4 years agoUse crypto_contiguous_subsegment().
John Baldwin [Wed, 15 Apr 2020 21:05:38 +0000 (21:05 +0000)]
Use crypto_contiguous_subsegment().

This driver used a home-rolled version that predated the function and
didn't support mbufs.

4 years agopowerpc: autosize bpvo based on physical memory
Alfredo Dal'Ava Junior [Wed, 15 Apr 2020 20:33:09 +0000 (20:33 +0000)]
powerpc: autosize bpvo based on physical memory

Default moea64_bpvo_pool_size 327680 was insufficient for initial
memory mapping at boot time on systems with, for example, 64G and
no huge pages enabled.

Submitted by: Andre Silva <afscoelho@gmail.com>
Reviewed by: jhibbits, alfredo
Approved by: jhibbits (mentor)
Sponsored by: Eldorado Research Institute (eldorado.org.br)
Differential Revision: https://reviews.freebsd.org/D24102

4 years agoAttempt to use AT_PS_STRINGS to get the ps_strings pointer.
Brooks Davis [Wed, 15 Apr 2020 20:28:20 +0000 (20:28 +0000)]
Attempt to use AT_PS_STRINGS to get the ps_strings pointer.

This saves a system call and avoids one of the (relatively rare) cases
of the kernel exporting pointers via sysctl.

As a temporary measure, keep the sysctl support to allow limited
compatability with old kernels.

Fail gracefully if ps_strings can't be found (should never happen).

Reviewed by: kib
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D24407

4 years agoSupport AT_PS_STRINGS in _elf_aux_info().
Brooks Davis [Wed, 15 Apr 2020 20:26:41 +0000 (20:26 +0000)]
Support AT_PS_STRINGS in _elf_aux_info().

This will be used by setproctitle().

Reviewed by: kib
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D24407

4 years agoAdd procstat support for AT_ flags added in r359988.
Brooks Davis [Wed, 15 Apr 2020 20:25:38 +0000 (20:25 +0000)]
Add procstat support for AT_ flags added in r359988.

This includes argc, argv, envc, envv, and ps_strings.

Reviewed by: kib
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D24407

4 years agoExport argc, argv, envc, envv, and ps_strings in auxargs.
Brooks Davis [Wed, 15 Apr 2020 20:23:55 +0000 (20:23 +0000)]
Export argc, argv, envc, envv, and ps_strings in auxargs.

This simplifies discovery of these values, potentially with reducing the
number of syscalls we need to make at runtime.  Longer term, we wish to
convert the startup process to pass an auxargs pointer to _start() and
use that rather than walking off the end of envv.  This is cleaner,
more C-friendly, and for systems with strong bounds (e.g. CHERI)
necessary.

Reviewed by: kib
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D24407

4 years agoMake ps_strings in struct image_params into a pointer.
Brooks Davis [Wed, 15 Apr 2020 20:21:30 +0000 (20:21 +0000)]
Make ps_strings in struct image_params into a pointer.

This is a prepratory commit for D24407.

Reviewed by: kib
Obtained from: CheriBSD
Sponsored by: DARPA

4 years agoIntroduce an AUXARGS_ENTRY_PTR() macro.
Brooks Davis [Wed, 15 Apr 2020 20:19:59 +0000 (20:19 +0000)]
Introduce an AUXARGS_ENTRY_PTR() macro.

As the name implys, it uses the a_ptr member of the auxarg entry (except
in compat32 where it uses a_val).  This is more correct and required for
systems where a_val is not the same size or hardware type as a_ptr (e.g.
CHERI).

This is a prepratory commit for D24407.

Reviewed by: kib
Obtained from: CheriBSD
Sponsored by: DARPA

4 years agoDocument removal of deprecated algorithms from geli(4).
John Baldwin [Wed, 15 Apr 2020 19:33:42 +0000 (19:33 +0000)]
Document removal of deprecated algorithms from geli(4).

4 years agoSet inp_flowid's for TOE connections.
John Baldwin [Wed, 15 Apr 2020 19:28:51 +0000 (19:28 +0000)]
Set inp_flowid's for TOE connections.

KTLS uses the flowid to distribute software encryption tasks among its
pool of worker threads.  Without this change, all software KTLS
requests for TOE sockets ended up on the first worker thread.

Note that the flowid for TOE sockets created via connect() is not a
hash of the 4-tuple, but is instead the id of the TOE pcb (tid).  The
flowid of TOE sockets created from TOE listen sockets do use the
4-tuple RSS hash as the flowid since the firmware provides the hash in
the message containing the original SYN.

Reviewed by: np (earlier version)
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D24348

4 years agoClear CPL_GET_TCB_RPL handler on module unload.
John Baldwin [Wed, 15 Apr 2020 19:23:53 +0000 (19:23 +0000)]
Clear CPL_GET_TCB_RPL handler on module unload.

This fixes a panic when unloading and reloading t4_tom.ko since the
old pointer is still stored when t4_tom_load tries to set it.

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

4 years agoRevert commit a9ad65a2b from llvm git (by Nemanja Ivanovic):
Dimitry Andric [Wed, 15 Apr 2020 18:43:44 +0000 (18:43 +0000)]
Revert commit a9ad65a2b from llvm git (by Nemanja Ivanovic):

  [PowerPC] Change default for unaligned FP access for older subtargets

  This is a fix for https://bugs.llvm.org/show_bug.cgi?id=40554

  Some CPU's trap to the kernel on unaligned floating point access and
  there are kernels that do not handle the interrupt. The program then
  fails with a SIGBUS according to the PR. This just switches the
  default for unaligned access to only allow it on recent server CPUs
  that are known to allow this.

  Differential revision: https://reviews.llvm.org/D71954

This upstream commit causes a compiler hang when building certain ports
(e.g. security/nss, multimedia/x264) for powerpc64.  The hang has been
reported in https://bugs.llvm.org/show_bug.cgi?id=45186, but in the mean
time it is more convenient to revert the commit.

Requested by: jhibbits
MFC after: 6 weeks
X-MFC-With: 358851

4 years agovalidate_uuid: absorb the rest of parse_uuid with a flags arg
Kyle Evans [Wed, 15 Apr 2020 18:39:12 +0000 (18:39 +0000)]
validate_uuid: absorb the rest of parse_uuid with a flags arg

This makes the naming annoyance (validate_uuid vs. parse_uuid) less of an
issue and centralizes all of the functionality into the new KPI while still
making the extra validation optional. The end-result is all the same as far
as hostuuid validation-only goes.

4 years agoMark eli_metadata_crypto_supported inline.
John Baldwin [Wed, 15 Apr 2020 18:27:28 +0000 (18:27 +0000)]
Mark eli_metadata_crypto_supported inline.

This quiets warnings about it not being always used.

Reported by: kevans

4 years agoFix -Wvoid-pointer-to-enum-cast warnings.
Brooks Davis [Wed, 15 Apr 2020 18:15:58 +0000 (18:15 +0000)]
Fix -Wvoid-pointer-to-enum-cast warnings.

This pattern is used in callbacks with void * data arguments and seems
both relatively uncommon and relatively harmless.  Silence the warning
by casting through uintptr_t.

This warning is on by default in Clang 11.

Reviewed by: arichardson
Obtained from: CheriBSD (partial)
MFC after: 1 week
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D24425

4 years agoFix a typo
Mateusz Piotrowski [Wed, 15 Apr 2020 17:11:44 +0000 (17:11 +0000)]
Fix a typo

Reported by: rgrimes
MFC with: 359967

4 years agosysctl_handle_string: Put logical or in parentheses.
Pawel Biernacki [Wed, 15 Apr 2020 16:55:38 +0000 (16:55 +0000)]
sysctl_handle_string: Put logical or in parentheses.

Reported by: rdivacky
Approved by: kib (mentor)
Pointy-hat to: kaktus

4 years agosysctl(9): fix handling string tunables.
Pawel Biernacki [Wed, 15 Apr 2020 16:33:55 +0000 (16:33 +0000)]
sysctl(9): fix handling string tunables.

r357614 changed internals of handling string sysctls, and inadvertently
broke setting string tunables.  Take them into account.

PR: 245463
Reported by: jhb, np
Reviewed by: imp, jhb, kib
Approved by: kib (mentor)
Differential Revision: https://reviews.freebsd.org/D24429

4 years agoDon't directly access userspace memory.
Brooks Davis [Wed, 15 Apr 2020 16:33:27 +0000 (16:33 +0000)]
Don't directly access userspace memory.

Rather then using the racy useracc() followed by direct access to
userspace memory, perform a copyin() and use the result if it succeeds.

Reviewed by: jhb
MFC after: 3 weeks
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D24410

4 years agosshd: Warn about missing ssh-keygen only when necessary
Mateusz Piotrowski [Wed, 15 Apr 2020 14:07:33 +0000 (14:07 +0000)]
sshd: Warn about missing ssh-keygen only when necessary

The sshd service is using ssh-keygen to generate missing SSH keys.
If ssh-keygen is missing, it prints the following message:

> /etc/rc.d/sshd: WARNING: /usr/bin/ssh-keygen does not exist.

It makes sense when the key is not generated yet and
cannot be created because ssh-keygen is missing.

The problem is that even if the key is present on the host,
the sshd service would still warn about missing ssh-keygen
(even though it does not need it).

Reviewed by: emaste
Approved by: emaste (src)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D23911

4 years agoarm: allwinner: aw_sid: Fix thermal calibration size for A64
Emmanuel Vadot [Wed, 15 Apr 2020 13:35:28 +0000 (13:35 +0000)]
arm: allwinner: aw_sid: Fix thermal calibration size for A64

This fixes the aw_thermal driver on A64 SoC.

MFC after: 1 month
X-MFC-With: r359935

4 years agoCast all ioctl command arguments through uint32_t internally.
Hans Petter Selasky [Wed, 15 Apr 2020 13:20:51 +0000 (13:20 +0000)]
Cast all ioctl command arguments through uint32_t internally.

Hide debug print showing use of sign extended ioctl command argument
under INVARIANTS. The print is available to all and can easily fill
up the logs.

No functional change intended.

MFC after: 1 week
Sponsored by: Mellanox Technologies

4 years agoDocument the exit status and the stdout message of nologin(8)
Mateusz Piotrowski [Wed, 15 Apr 2020 13:13:46 +0000 (13:13 +0000)]
Document the exit status and the stdout message of nologin(8)

Reviewed by: debdrup (earlier version)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D24196

4 years agoConvert OFED rtable interactions to the new routing KPI.
Alexander V. Chernikov [Wed, 15 Apr 2020 13:06:55 +0000 (13:06 +0000)]
Convert OFED rtable interactions to the new routing KPI.

Reviewed by: hselasky
Differential Revision: https://reviews.freebsd.org/D24387

4 years agommc_fdt_helpers: Do not schedule a card detection is there is no cd gpio
Emmanuel Vadot [Wed, 15 Apr 2020 13:02:13 +0000 (13:02 +0000)]
mmc_fdt_helpers: Do not schedule a card detection is there is no cd gpio

If the fdt node doesn't have a cd-gpios properties or if the node is set
as non-removable we do not init the card detection timeout task as it is
useless so don't schedule it too.

MFC after: 1 month
X-MFC-With: r359924

4 years agoConvert pf rtable checks to the new routing KPI.
Alexander V. Chernikov [Wed, 15 Apr 2020 13:00:48 +0000 (13:00 +0000)]
Convert pf rtable checks to the new routing KPI.

Switch uRPF to use specific fib(9)-provided uRPF.
Switch MSS calculation to the latest fib(9) kpi.

Reviewed by: kp
Differential Revision: https://reviews.freebsd.org/D24386

4 years agoConvert ip6_forward() to the new routing KPI.
Alexander V. Chernikov [Wed, 15 Apr 2020 12:56:05 +0000 (12:56 +0000)]
Convert ip6_forward() to the new routing KPI.

Update ip6_forward() internals to use deembedded IPv6 addresses
 to simplify calls to the new KPI and prepare for the future
 scope-embedding cleanup.

Add in6_get_unicast_scopeid() and in6_set_unicast_scopeid() scopeid
 operation functions tailored for unicast processing.

Reviewed by: ae
Differential Revision: https://reviews.freebsd.org/D24334

4 years agoAdd my birthday
Hiroki Tagato [Wed, 15 Apr 2020 10:20:18 +0000 (10:20 +0000)]
Add my birthday

Approved by: ehaupt (mentor)

4 years agoDo not attempt to remove backward compatibility timezones.
Jung-uk Kim [Wed, 15 Apr 2020 08:18:28 +0000 (08:18 +0000)]
Do not attempt to remove backward compatibility timezones.

Since r359736, these timezones are unconditionally installed.

4 years agobhyve(8): Correct copyright boilerplate for r359950
Conrad Meyer [Wed, 15 Apr 2020 05:55:14 +0000 (05:55 +0000)]
bhyve(8): Correct copyright boilerplate for r359950

Use the text from the canonical sys/copyright.h 2-clause FreeBSD License.

Reported by: grehan (thanks!)

4 years agosys/types.h: adjust #endif comment to match reality
Kyle Evans [Wed, 15 Apr 2020 04:03:46 +0000 (04:03 +0000)]
sys/types.h: adjust #endif comment to match reality

Submitted by: sigsys gmail com

4 years agokern uuid: break format validation out into a separate KPI
Kyle Evans [Wed, 15 Apr 2020 03:59:26 +0000 (03:59 +0000)]
kern uuid: break format validation out into a separate KPI

This new KPI, validate_uuid, strictly validates the formatting of the input
UUID and, optionally, populates a given struct uuid.

As noted in the header, the key differences are that the new KPI won't
recognize an empty string as a nil UUID and it won't do any kind of semantic
validation on it. Also key is that populating a struct uuid is optional, so
the caller doesn't necessarily need to allocate a bogus one on the stack
just to validate the string.

This KPI has specifically been broken out in support of D24288, which will
preload /etc/hostid in loader so that early boot hostuuid users (e.g.
anything that calls ether_gen_addr) can have a valid hostuuid to work with
once it's been stashed in /etc/hostid.

4 years agocxgbe/iw_cxgbe: Do not start the EP timer if soaccept fails.
Navdeep Parhar [Wed, 15 Apr 2020 03:40:33 +0000 (03:40 +0000)]
cxgbe/iw_cxgbe: Do not start the EP timer if soaccept fails.

This fixes a panic that would occur when the timer tried to close a
stale socket.

Submitted by: Krishnamraju Eraparaju @ Chelsio
MFC after: 1 week
Sponsored by: Chelsio Communications