Kyle Evans [Sat, 5 Nov 2022 03:46:21 +0000 (22:46 -0500)]
Merge commit '
93bf91b4012a28610672d2266366dfa0a663b70f' into HEAD
This fixes a warning in wireguard-tools, as well as two issues pointed out by
FreeBSD's Coverity instance.
CID: 1500405, 1500421
Kyle Evans [Sat, 5 Nov 2022 03:42:11 +0000 (22:42 -0500)]
Update wireguard-tools to
139aac59a5ab7
This includes fixes for two issues pointed out by FreeBSD's Coverity,
as well as a -Wcast-qual complaint.
While we're here, ignore build artifacts as well upon import.
Warner Losh [Sat, 5 Nov 2022 01:45:27 +0000 (19:45 -0600)]
stand: Update comment about devdesc
How devdesc is used is opaque until much code is read. Give a more
useful description of the theory behind it here.
Sponsored by: Netflix
Ed Maste [Fri, 4 Nov 2022 15:59:49 +0000 (11:59 -0400)]
Clang: Add Diags for targets pre to i686 for -fcf-protection
Intel Control-flow Enforcement Technology (CET) provides new
instructions `endbr32/64` for the indirect branch control.
They are NOPs on i686 and new targets. We need to check for that
in case it crashes on older targets.
PR: 264497
Reviewed by: dim
MFC after: 1 week
Obtained from: LLVM commit
52516782972730ff065a34123a9d8876da08c254
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D37268
Warner Losh [Fri, 4 Nov 2022 22:49:10 +0000 (16:49 -0600)]
bnxt: Only build on 64-bit platforms
The driver uses bus_space_read_8 and friends, which do not exist on
32-bit i386 and break the build.
Sponsored by: Netflix
Sumit Saxena [Fri, 4 Nov 2022 22:40:29 +0000 (16:40 -0600)]
if_bnxt: Added support for mgmt interface for passthrough hwrms
Added support for application management interface. There are two types of commands supported:
1. Firmware IOCTLs: These ioctls are meant for firmware
consumption. Driver acts as a transport for these.
2. Driver only IOCTLs: These ioctls are meant for driver
consumption. Driver will serve these ioctls without sending them down
to firmware.
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D36448
Sumit Saxena [Fri, 4 Nov 2022 22:33:21 +0000 (16:33 -0600)]
if_bnxt: Add support for smaller backing_store_cfg message size
Add compat logic to fallback to the older/smaller backing_store_cfg
message size.
Reviewed by: imp
Differentil Revision: https://reviews.freebsd.org/D36447
Sumit Saxena [Fri, 4 Nov 2022 22:31:24 +0000 (16:31 -0600)]
if_bnxt: Fix the PORT_PHY_CFG HWRM requests while setting Pause
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D36446
Sumit Saxena [Fri, 4 Nov 2022 22:28:51 +0000 (16:28 -0600)]
if_bnxt: Fix the issue when kernel invokes _init() again without _stop()
Fixed the issue when kernel invokes _init() when it is already in
_init() state by invoking _stop() in such case.
Reviewed by: imp
Differential Revsion: https://reviews.freebsd.org/D36445
Sumit Saxena [Fri, 4 Nov 2022 22:26:03 +0000 (16:26 -0600)]
if_bnxt: Remove sysctl node vlan_only which is not being used
Removed sysctl node vlan_only which is not being used after migrating
from l2_set_rx_mask to l2_filter_alloc.
Reviewed by: imp
Differential Revsion: https://reviews.freebsd.org/D36444
Sumit Saxena [Fri, 4 Nov 2022 22:24:32 +0000 (16:24 -0600)]
if_bnxt: Add support for VLAN on Thor
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D36443
Sumit Saxena [Fri, 4 Nov 2022 22:21:20 +0000 (16:21 -0600)]
if_bnxt: Add support for RSS on Thor
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D36442
Sumit Saxena [Fri, 4 Nov 2022 22:18:38 +0000 (16:18 -0600)]
if_bnxt: Display firmware version along with SIT package version
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D36441
Sumit Saxena [Fri, 4 Nov 2022 22:14:49 +0000 (16:14 -0600)]
if_bnxt: Add support for async link status update
Reivewed by: imp
Differential Revision: https://reviews.freebsd.org/D36440
Sumit Saxena [Fri, 4 Nov 2022 22:11:10 +0000 (16:11 -0600)]
if_bnxt: Add support for admin down/up and jumbo
Make ifconfig up/down work, as well as adding support for jumbo frames.
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D36439
Sumit Saxena [Fri, 4 Nov 2022 22:05:57 +0000 (16:05 -0600)]
if_bnxt: add support for Thor controller
Added support for Thor controller.
Below are the supported operations:
1. IPv4 ping (ICMP)
2. iperf / netperf (IPv4 TCP)
3. Promiscuous (tcpdump)
4. Can achieve 20 Gbps on a 25 G link (Uni-Di)
5. Can achieve 60 Gbps on a 100 G link (Uni-Di)
6. Port level and queue level driver stats.
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D36438
Sumit Saxena [Fri, 4 Nov 2022 22:01:30 +0000 (16:01 -0600)]
if_bnxt: Convert all doorbell writes into function pointers
This is preparatory patch for making a base for Broadcom's Thor
controller support. It converts all doorbell writes into function
pointers.
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D36437
Sumit Saxena [Fri, 4 Nov 2022 21:56:50 +0000 (15:56 -0600)]
if_bnxt: update hsi_struct_def.h headers
Updates the drivers to Broadcom's latest:
HWRM Version 1.10.2.34 using HSI definition version 1.8.4
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D36436
Warner Losh [Fri, 4 Nov 2022 21:39:05 +0000 (15:39 -0600)]
sys/disk.h: Transition period for sys/conf.h over
There's no need to ever include sys/conf.h here anymore, so remove
it. It was added years ago as a transition and everything has been
updated.
Sponsored by: Netflix
Warner Losh [Fri, 4 Nov 2022 21:28:26 +0000 (15:28 -0600)]
stand: Remove unused enum
enum disk_ioctl is unused. It's only ever defined. All of the stand
code uses DIOCGSECTORSIZE and DIOCGMEDIASIZE instead, both to query and
to implement ioctl.
Sponsored by: Netflix
Florian Walpen [Fri, 4 Nov 2022 18:04:26 +0000 (19:04 +0100)]
sound(4): Fix memory map of /dev/dsp devices when buffer size is not a multiple of PAGE_SIZE.
By using sndbuf_getallocsize() instead of sndbuf_getsize() in dsp_mmap_single().
PR: 267555
MFC after: 1 week
Sponsored by: NVIDIA Networking
Dag-Erling Smørgrav [Fri, 4 Nov 2022 14:43:06 +0000 (15:43 +0100)]
getty: Avoid NULL deref if stdin is not a tty.
Sponsored by: Klara, Inc.
Obtained from: Apple OSS Distributions
Differential Revision: https://reviews.freebsd.org/D37265
Dag-Erling Smørgrav [Fri, 4 Nov 2022 14:21:43 +0000 (15:21 +0100)]
getty: code cleanup, part 2
* Clean up whitespace
* Reindent
Sponsored by: Klara, Inc.
Dag-Erling Smørgrav [Fri, 4 Nov 2022 13:23:33 +0000 (14:23 +0100)]
getty: code cleanup, part 1
* Avoid unnecessary use of `unsigned char *`
* Use explicit casts when assigning `unsigned char *` to `char *` or vice versa
* Drop unused global variables (and fix memory leak in `gettable()`)
* Use `snprintf()` instead of `strcpy()` + `strcat()`
* Drop spurious braces in switch
Sponsored by: Klara, Inc.
Obtained from: Apple OSS Distributions (in part)
Differential Revision: https://reviews.freebsd.org/D37263
Dag-Erling Smørgrav [Wed, 2 Nov 2022 13:41:44 +0000 (14:41 +0100)]
gzip: Add support for decompressing zstd files.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D37236
Souradeep Chakrabarti [Fri, 4 Nov 2022 10:09:02 +0000 (10:09 +0000)]
arm64: Hyper-V: making INTR MP Safe
Makeing the interrupt MP safe.
Reviewed by: andrew
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D37222
Richard Scheffenegger [Fri, 4 Nov 2022 09:18:41 +0000 (10:18 +0100)]
tcp: reserve tcp_info counters for AccECN
Marking all new fields unused (__xxx).
No functional change.
Reviewed By: tuexen, rrs, #transport
Sponsored by: NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D37016
Wanpeng Qian [Fri, 4 Nov 2022 07:48:00 +0000 (08:48 +0100)]
bhyve: initial PowerCycles value
Currently PowerCycles field of Log Page is 0 and it is an invalid value.
This patch will initial the PowerCycles data to 1.
MFC after: 1 week
Approved by: manu (mentor)
Reviewed By: grehan (older version), chuck, corvink
Differential Revision: https://reviews.freebsd.org/D32558
Li-Wen Hsu [Fri, 4 Nov 2022 03:45:35 +0000 (11:45 +0800)]
mana(4): Make the code cross-platform
Discussed with: whu
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D36388
Li-Wen Hsu [Thu, 3 Nov 2022 19:17:43 +0000 (03:17 +0800)]
release/azure: Don't use azure-agent deprovision to build image
Deprovision feature of waagent is used for preparing to capture a
running VM and turn it into a VM image. Using it in the process of
building a VM image from scratch will cause some side effects such as
the hostname of the building host getting reset.
Remove calling the deprovision command and use a simpler way to fulfill
the requirements of the Azure VM image.
Sponsored by: The FreeBSD Foundation
Alexander V. Chernikov [Thu, 3 Nov 2022 16:44:07 +0000 (16:44 +0000)]
netlink: allow more than 64 groups per netlink socket.
Alexander V. Chernikov [Thu, 3 Nov 2022 17:03:26 +0000 (17:03 +0000)]
netlink: remove private netlink_var.h header from the non-netlink core files.
Andrew Turner [Thu, 3 Nov 2022 15:49:49 +0000 (15:49 +0000)]
Enable hyperv in the arm64 NOTES
It now builds with all arm64 LINT kernels.
Sponsored by: The FreeBSD Foundation
Andrew Turner [Thu, 3 Nov 2022 15:11:25 +0000 (15:11 +0000)]
Hyper-V depends on ACPI, mark as such in files.arm64
Sponsored by: The FreeBSD Foundation
Andrew Turner [Thu, 3 Nov 2022 15:05:04 +0000 (15:05 +0000)]
Place the hyperv files with other dev files
Move the files enabled by hyperv with others under sys/dev rather than
at the end of the file.
Sponsored by: The FreeBSD Foundation
Andrew Turner [Thu, 3 Nov 2022 15:03:27 +0000 (15:03 +0000)]
Clean up "optional hyperv" indentation in files.arm64
Make them all align and use a space after "optional"
Sponsored by: The FreeBSD Foundation
Andrew Turner [Thu, 3 Nov 2022 12:01:36 +0000 (12:01 +0000)]
Revert "Disable Hyper-V on arm64"
This reverts commit
fe36346a8904683af64dc5231e106a951d386ca5.
The arm64 Hyper-v code now checks it is running under Hyper-v before
calling into the hypervisor.
Sponsored by: The FreeBSD Foundation
Jose Luis Duran [Wed, 2 Nov 2022 11:43:40 +0000 (08:43 -0300)]
ping_test: Fix tests ping_46 and ping6_46
If no IPv4-host, IPv4-mcast-group or IPv6-host is passed, it will
display the usage. The tests are passing because they are just checking
that the exit code is 1.
Fix the tests by checking the appropriate output message.
While here, change the description to match the output and add the
missing requirements.
Reviewed by: markj
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D37250
Jose Luis Duran [Mon, 31 Oct 2022 08:23:33 +0000 (05:23 -0300)]
ping_test: Code cleanup
Mostly style fixes.
Reviewed by: markj
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D37248
Jose Luis Duran [Tue, 1 Nov 2022 08:01:36 +0000 (05:01 -0300)]
ping: Remove a vestigial notdef
It was once a function on 4.3BSD, pr_type() [1], used to convert an ICMP
"type" field to a printable string. In 4.4BSD it was superseded by
pr_icmph() [2].
NetBSD [3] and OpenBSD [4] have already removed it.
[1]: https://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD/usr/src/etc/ping.c
[2]: https://minnie.tuhs.org/cgi-bin/utree.pl?file=4.4BSD/usr/src/sbin/ping/ping.c
[3]: https://github.com/NetBSD/src/commit/
203dfd34867991fd002f747d74a96f26ae80d41c
[4]: https://github.com/openbsd/src/commit/
9bbbbbb75d24e3d166ddd0cb6cb4417b78561309
Reviewed by: markj
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D37247
Jose Luis Duran [Tue, 1 Nov 2022 05:19:22 +0000 (02:19 -0300)]
ping: main.c: Consistent use of white space/tabs
If a user has tabs set at a value other than 8, the output of the usage
may not be consistently aligned.
% tabs -2
Before:
% ping
usage:
ping [-4AaDdfHnoQqRrv] [-C pcp] [-c count] [-G sweepmaxsize]
[-g sweepminsize] [-h sweepincrsize] [-i wait] [-l preload]
[-M mask | time] [-m ttl] [-P policy] [-p pattern] [-S src_addr]
[-s packetsize] [-t timeout] [-W waittime] [-z tos] IPv4-host
ping [-4AaDdfHLnoQqRrv] [-C pcp] [-c count] [-I iface] [-i wait]
[-l preload] [-M mask | time] [-m ttl] [-P policy] [-p pattern]
[-S src_addr] [-s packetsize] [-T ttl] [-t timeout] [-W waittime]
[-z tos] IPv4-mcast-group
ping [-6AaDdfHnNoOquvyY] [-b bufsiz] [-c count] [-e gateway]
[-I interface] [-i wait] [-k addrtype] [-l preload] [-m hoplimit]
[-p pattern] [-P policy] [-S sourceaddr] [-s packetsize] [-t timeout]
[-W waittime] [-z tclass] [IPv6-hops ...] IPv6-host
After:
% ping
usage:
ping [-4AaDdfHnoQqRrv] [-C pcp] [-c count] [-G sweepmaxsize]
[-g sweepminsize] [-h sweepincrsize] [-i wait] [-l preload]
[-M mask | time] [-m ttl] [-P policy] [-p pattern] [-S src_addr]
[-s packetsize] [-t timeout] [-W waittime] [-z tos] IPv4-host
ping [-4AaDdfHLnoQqRrv] [-C pcp] [-c count] [-I iface] [-i wait]
[-l preload] [-M mask | time] [-m ttl] [-P policy] [-p pattern]
[-S src_addr] [-s packetsize] [-T ttl] [-t timeout] [-W waittime]
[-z tos] IPv4-mcast-group
ping [-6AaDdfHnNoOquvyY] [-b bufsiz] [-c count] [-e gateway]
[-I interface] [-i wait] [-k addrtype] [-l preload] [-m hoplimit]
[-p pattern] [-P policy] [-S sourceaddr] [-s packetsize] [-t timeout]
[-W waittime] [-z tclass] [IPv6-hops ...] IPv6-host
Reviewed by: markj
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D37246
Ed Maste [Thu, 3 Nov 2022 13:44:52 +0000 (09:44 -0400)]
ssh: correct parse_cert_times case for hex "to" time
This appeared to be a copy-paste error from the "from" time case above.
Reported by: Coverity Scan
CID: 1500407
Reviewed by: markj
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D37252
Roger Pau Monné [Thu, 3 Nov 2022 12:29:22 +0000 (13:29 +0100)]
xen/netfront: deal with mbuf data crossing a page boundary
There's been a report recently of mbufs with data that crosses a page
boundary. It seems those mbufs are generated by the iSCSI target
system:
https://lists.xenproject.org/archives/html/xen-devel/2021-12/msg01581.html
In order to handle those mbufs correctly on netfront use the bus_dma
interface and explicitly request that segments must not cross a page
boundary. No other requirements are necessary, so it's expected that
bus_dma won't need to bounce the data and hence it shouldn't
introduce a too big performance penalty.
Using bus_dma requires some changes to netfront, mainly in order to
accommodate for the fact that now ring slots no longer have a 1:1
match with mbufs, as a single mbuf can use two ring slots if the data
buffer crosses a page boundary. Store the first packet of the mbuf
chain in every ring slot that's used, and use a mbuf tag in order to
store the bus_dma related structures and a refcount to keep track of
the pending slots before the mbuf chain can be freed.
Reported by: G.R.
Tested by: G.R.
MFC: 1 week
Differential revision: https://reviews.freebsd.org/D33876
Andrew Turner [Thu, 3 Nov 2022 09:44:08 +0000 (09:44 +0000)]
Add more SOC options to the arm64 NOTES file
These are found in other config files. Include them in NOTES so they
are used in the LINT configs.
Andrew Turner [Thu, 3 Nov 2022 09:43:10 +0000 (09:43 +0000)]
Mark ar64 drivers that depend on fdt as such
These drivers all attach to one of the OFW/FDT busses. check for fdt
in the kernel config before building.
Andrew Turner [Thu, 3 Nov 2022 09:41:05 +0000 (09:41 +0000)]
Include sys/malloc.h directly in the qoriq clock
We depend on header pollution to include sys/malloc.h. Include it
directly to fix the no-FDT build.
Andrew Turner [Wed, 2 Nov 2022 20:02:31 +0000 (20:02 +0000)]
Make all options lower case in files.arm64
Some of the SOC options were upper case. Make them lower to be
consistent with the rest of the file.
Andrew Turner [Wed, 2 Nov 2022 19:47:31 +0000 (19:47 +0000)]
Mark soc_intel_stratix10 drivers as needing FDT
These files all need FDT so check for it before building.
Andrew Turner [Wed, 2 Nov 2022 19:42:32 +0000 (19:42 +0000)]
Sort the SOC options in the arm64 NOTES config
Colin Percival [Thu, 3 Nov 2022 01:55:12 +0000 (18:55 -0700)]
vtblk: Fix dumping
Now that vtblk uses busdma, it keeps important information inside its
request structures. The functions used for kernel dumps synthesize
their own request structures rather than using structures initialized
with the necessary bits for busdma.
Add busdma-bypass paths. Since dumping writes contiguous blocks of
physical memory, vtblk doesn't need busdma in that case.
Reported by: glebius
Tested by: glebius
Differential Revision: https://reviews.freebsd.org/D37243
Kyle Evans [Wed, 2 Nov 2022 20:29:16 +0000 (15:29 -0500)]
mktemp: don't double up on trailing slashes for -t paths
This is a minor cosmetic change; re-organize slightly to set tmpdir to
_PATH_TMP if we didn't otherwise have a tmpdir candidate, then check the
trailing char before appending another slash.
While we're here, remove some bogus whitespace and add a test case for
this change.
Obtained from: https://github.com/apple-oss-distributions/shell_cmds
Sponsored by: Klara, Inc.
Pau Amma [Sun, 5 Jun 2022 18:05:25 +0000 (18:05 +0000)]
Make SYNOPSIS match DESCRIPTION.
While there, fix nits reported by igor and mandoc -T lint.
Differential Revision: https://reviews.freebsd.org/D35405
Reviewed by: debdrup, gbe, gjb
Approved by: gjb (mentor)
MFC after: 3 days
Mark Johnston [Wed, 2 Nov 2022 17:27:27 +0000 (13:27 -0400)]
arm64: Handle translation faults for thread structures
The break-before-make requirement poses a problem when promoting or
demoting mappings containing thread structures: a CPU may raise a
translation fault while accessing curthread, and data_abort() accesses
the thread again before pmap_fault() can translate the address and
return.
Normally this isn't a problem because we have a hack to ensure that
slabs used by the thread zone are always accessed via the direct map,
where promotions and demotions are rare. However, this hack doesn't
work properly with UMA_MD_SMALL_ALLOC disabled, as is the case with
KASAN configured (since our KASAN implementation does not shadow the
direct map and so tries to force the use of the kernel map wherever
possible).
Fix the problem by modifying data_abort() to handle translation faults
in the kernel map without dereferencing "td", i.e., curthread, and
without enabling interrupts. pmap_klookup() has special handling for
translation faults which makes it safe to call in this context. Then,
revert the aforementioned hack.
Reviewed by: kevans, alc, kib, andrew
MFC after: 1 month
Sponsored by: Juniper Networks, Inc.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D37231
Mark Johnston [Wed, 2 Nov 2022 17:20:11 +0000 (13:20 -0400)]
ddb: Don't flag breakpoint/watchpoint commands as MEMSAFE
They could potentially be abused to overwrite kernel memory, so
shouldn't be accessible when mac_ddb is loaded.
Reviewed by: mhorne
Fixes:
bc4ea61d55cb ("ddb: tag core commands with DB_CMD_MEMSAFE")
Sponsored by: Juniper Networks, Inc.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D37105
Mark Johnston [Wed, 2 Nov 2022 17:08:07 +0000 (13:08 -0400)]
inpcb: Allow SO_REUSEPORT_LB to be used in jails
Currently SO_REUSEPORT_LB silently does nothing when set by a jailed
process. It is trivial to support this option in VNET jails, but it's
also useful in traditional jails.
This patch enables LB groups in jails with the following semantics:
- all PCBs in a group must belong to the same jail,
- PCB lookup prefers jailed groups to non-jailed groups
This is a straightforward extension of the semantics used for individual
listening sockets. One pre-existing quirk of the lbgroup implementation
is that non-jailed lbgroups are searched before jailed listening
sockets; that is preserved with this change.
Discussed with: glebius
MFC after: 1 month
Sponsored by: Modirum MDPay
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D37029
Mark Johnston [Wed, 2 Nov 2022 17:06:54 +0000 (13:06 -0400)]
in6: Consolidate IN6_ARE_ADDR_EQUAL definitions
It is ok to use memcmp() in the kernel. No functional change intended.
Reviewed by: glebius, melifaro
MFC after: 1 week
Sponsored by: Modirum MDPay
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D37028
Mark Johnston [Wed, 2 Nov 2022 17:05:14 +0000 (13:05 -0400)]
inpcb: Remove a PCB from its LB group upon a subsequent error
If a memory allocation failure causes bind to fail, we should take the
inpcb back out of its LB group since it's not prepared to handle
connections.
Reviewed by: glebius
MFC after: 2 weeks
Sponsored by: Modirum MDPay
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D37027
Mark Johnston [Wed, 2 Nov 2022 17:03:41 +0000 (13:03 -0400)]
inpcb: Remove NULL checks of credential references
Some auditing of the code shows that "cred" is never non-NULL in these
functions, either because all callers pass a non-NULL reference or
because they unconditionally dereference "cred". So, let's simplify the
code a bit and remove NULL checks. No functional change intended.
Reviewed by: glebius
MFC after: 1 week
Sponsored by: Modirum MDPay
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D37025
Mark Johnston [Wed, 2 Nov 2022 17:01:59 +0000 (13:01 -0400)]
getsockopt.2: Clarify the SO_REUSEPORT_LB text a bit
Refer to sockets rather than processes, since one can have multiple
sockets in a load-balancing group within the same process.
MFC after: 1 week
Sponsored by: Modirum MDPay
Sponsored by: Klara, Inc.
Mark Johnston [Wed, 2 Nov 2022 17:01:22 +0000 (13:01 -0400)]
libsysdecode: Match socket option names containing underscores
MFC after: 1 week
Sponsored by: Modirum MDPay
Sponsored by: Klara, Inc.
John Baldwin [Wed, 2 Nov 2022 17:35:26 +0000 (10:35 -0700)]
ktrace.2: Document KTRFAC_STRUCT_ARRAY.
Sponsored by: DARPA
Ed Maste [Tue, 18 Oct 2022 14:27:49 +0000 (10:27 -0400)]
kerberos5: retire now-unused MIPS support
Alan Somers [Wed, 2 Nov 2022 16:41:48 +0000 (10:41 -0600)]
[skip ci] Remove obsolete references in crypto_request(9)
They were missed by
68f6800ce05c3.
Sponsored by: Axcient
MFC with:
68f6800ce05c3
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D37239
Mike Karels [Wed, 2 Nov 2022 15:59:09 +0000 (10:59 -0500)]
fetch: support EAI_ADDRFAMILY error, correct two error messages
With the change to return EAI_ADDRFAMILY from getaddrinfo(), fetch
would print "Unknown resolver error" for that error. Add that error
and its string to libfetch's table, using an #ifdef just in case.
Correct error strings for EAI_NODATA (although it is currently unused)
and EAI_NONAME. Should maybe rework the code to use gai_strerror(3),
but that doesn't map directly, and the current strings are shortened.
Reviewed in https://reviews.freebsd.org/D37139 with related changes.
Reviewed by: bz
MFC after: 1 month
Mike Karels [Wed, 2 Nov 2022 15:57:59 +0000 (10:57 -0500)]
getaddrinfo: distinguish missing addrs from unresolvable names
Rework getaddrinfo(3) to return different error values for unresolvable
names (same as before, EAI_NONAME) and those without a requested addr
(EAI_ADDRFAMILY) when using DNS. This is implemented via an added
error in the nsswitch layer, NS_ADDRFAMILY, which is used only by
getaddrinfo(). The error is passed through nsdispatch(3), but that
routine has no changes to handle this error. The error originates in
the getaddrinfo DNS layer called via nsdispatch(), and is processed
by the search layer that calls nsdispatch().
While here, add a little style to returns near those that were
modified.
Reviewed in https://reviews.freebsd.org/D37139 with related changes.
Reviewed by: bz
MFC after: 1 month
Mike Karels [Wed, 2 Nov 2022 15:55:32 +0000 (10:55 -0500)]
gai_strerror.[c3]: re-enable EAI_ADDRFAMILY, EAI_NODATA
gai_strerror.c still has messages for EAI_ADDRFAMILY and EAI_NODATA,
but not the man page. Re-add to the man page, and update comments
in the source. Document the errors that are not in RFC 3493 or
POSIX.
Reviewed in https://reviews.freebsd.org/D37139 with related changes.
Reviewed by: bz, pauamma
MFC after: 1 month
Mike Karels [Wed, 2 Nov 2022 15:43:04 +0000 (10:43 -0500)]
netdb.h: re-enable EAI_ADDRFAMILY, EAI_NODATA
EAI_ADDRFAMILY and EAI_NODATA are not in RFC 3493, but are available
and used in many other systems. It is desirable to have at least one
of them in order to distinguish between names that do not resolve and
those that do not have the requested address type. A change to
getaddrinfo() will use EAI_ADDRFAMILY. Both were "#if 0"; re-enable,
conditioned on __BSD_VISIBLE, and update comments. Also add comments
and __BSD_VISIBLE conditional for the last three EAI errors, which
are not in the RFC or POSIX. Note, all of these are available in
NetBSD and OpenBSD, and EAI_ADDRFAMILY and EAI_NODATA are available
in Linux (glibc).
Reviewed in https://reviews.freebsd.org/D37139 with related changes.
Reviewed by: bz
MFC after: 1 month
Corvin Köhne [Wed, 2 Nov 2022 15:56:38 +0000 (16:56 +0100)]
Add corvink to the src committers and manu as my mentor
Approved by: manu (mentor)
Differential Revision: https://reviews.freebsd.org/D37237
Ed Maste [Tue, 19 Jul 2022 20:42:27 +0000 (16:42 -0400)]
linux64: improve linux_support.s make rules
Previously we relied on the .s.o rule in share/mk/bsd.suffixes.mk to
tell make that linux_support.o is built from linux_support.s, even
though we do not use the .s.o rule to assemble it.
Reviewed by: sjg
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D35864
Elliott Mitchell [Mon, 16 Aug 2021 22:51:38 +0000 (15:51 -0700)]
stand: Nuke double-semicolons
A distinct number of double-semicolons have ended up in FreeBSD. Take a
pass at getting rid of many of these harmless typos.
Reviewed by: emaste, imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/609
Differential Revision: https://reviews.freebsd.org/D31717
Elliott Mitchell [Mon, 16 Aug 2021 22:51:38 +0000 (15:51 -0700)]
sys: Nuke double-semicolons
A distinct number of double-semicolons have ended up in FreeBSD. Take a
pass at getting rid of many of these harmless typos.
Reviewed by: emaste, rrs
Pull Request: https://github.com/freebsd/freebsd-src/pull/609
Differential Revision: https://reviews.freebsd.org/D31716
Wentao Wang [Wed, 2 Nov 2022 15:14:52 +0000 (09:14 -0600)]
vmw_pvscsi: Expand vcpuHint to 16 bit to aliagn with host side change.
vcpuHint has been expanded to 16 bit on host side to enable
interruptions to be routed to more CPUs. Guest side should align with
the change.
This change has been tested with hosts with 8-bit and 16-bit vcpuHint,
on both platforms host side can get correct value.
This driver is for ESXi product which only supports x86/x64. They are
little-endian. So there is no need to consider big-endian system.
PR: 264840
Reviewed by: imp@, Zhenlei Huang
Kristof Provost [Fri, 28 Oct 2022 09:56:43 +0000 (11:56 +0200)]
pf tests: bridge-to test case
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D37194
Kristof Provost [Thu, 22 Sep 2022 17:00:11 +0000 (19:00 +0200)]
pf: bridge-to
Allow pf (l2) to be used to redirect ethernet packets to a different
interface.
The intended use case is to send 802.1x challenges out to a side
interface, to enable AT&T links to function with pfSense as a gateway,
rather than the AT&T provided hardware.
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D37193
Elliott Mitchell [Sun, 24 Jul 2022 23:14:20 +0000 (16:14 -0700)]
sys: use .S for assembly language files that use the preprocessor
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/609
Differential Revision: https://reviews.freebsd.org/D35908
Kristof Provost [Tue, 18 Oct 2022 16:34:00 +0000 (18:34 +0200)]
ipsec tests: add test case for chacha20_poly1305
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D37181
Kristof Provost [Tue, 18 Oct 2022 16:31:02 +0000 (18:31 +0200)]
ipsec: add support for CHACHA20POLY1305
Based on a patch by ae@.
Reviewed by: gbe (man page), pauamma (man page)
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D37180
Kristof Provost [Wed, 2 Nov 2022 10:58:04 +0000 (11:58 +0100)]
bridge tests: re-enable span test
The root cause of the intermittent span test failures has been
identified as a race between sending the packet and starting the bpf
capture.
This is now resolved, so the test can be re-enabled.
PR: 260461
MFC after: 1 week
Sponsored by: Rubicon Communications, LLC ("Netgate")
Kristof Provost [Wed, 2 Nov 2022 10:55:39 +0000 (11:55 +0100)]
tests: make sniffer more robust
The Sniffer class is often used by test tools such as pft_ping to verify
that packets actually get sent where they're expected.
It starts a background thread to capture packets, but this thread needs
some time to start, leading to intermittent test failures when the
capture doesn't start before the relevant packet is sent.
Add a semaphore to ensure the Sniffer constructor doesn't return until
the capture is actually running.
PR: 260461
MFC after: 1 week
Sponsored by: Rubicon Communications, LLC ("Netgate")
Zhenlei Huang [Wed, 2 Nov 2022 03:53:24 +0000 (11:53 +0800)]
Add myself (zlei) as a src committer and kp / melifaro as my mentors
Follow step 7.1.5 in the Committer's Guide.
Reviewed by: kp
Approved by: kp (mentor)
Differential Revision: https://reviews.freebsd.org/D37233
Jung-uk Kim [Tue, 1 Nov 2022 23:38:40 +0000 (19:38 -0400)]
OpenSSL: Regen manual pages for OpenSSL 1.1.1s
Jung-uk Kim [Tue, 1 Nov 2022 23:12:09 +0000 (19:12 -0400)]
OpenSSL: Regen assembly file for OpenSSSL 1.1.1s
Jung-uk Kim [Tue, 1 Nov 2022 22:58:59 +0000 (18:58 -0400)]
OpenSSL: Merge OpenSSL 1.1.1s
Merge commit '
b6b67f23b82101d4c04c89f81d726b902ab77106'
Alfredo Dal'Ava Junior [Tue, 1 Nov 2022 23:59:58 +0000 (20:59 -0300)]
tools/build/make.py: fix cross build on Fedora Linux
Fedora defines shell functions for some commands used by FreeBSD build
scripts. Unortunatelly it makes them behave incorrectly for our purposes.
For instance 'which which' returns something like:
which ()
{
( alias;
eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias ...
}
instead of
/usr/bin/which
This patch unsets those functions to restore original/expected behavior
Reviewed by: emaste, imp
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D36900
Jung-uk Kim [Tue, 1 Nov 2022 22:43:36 +0000 (18:43 -0400)]
Import OpenSSL 1.1.1s
Konstantin Belousov [Mon, 31 Oct 2022 23:30:55 +0000 (01:30 +0200)]
vmm: do not leak halted_cpus bit after suspension
Reported by: bz
PR: 267468
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D37227
Elvin Aslanov [Tue, 1 Nov 2022 14:07:56 +0000 (18:07 +0400)]
grep: correct argument name in man page
MFC after: 1 week
Fixes:
4dc88ebedf94 ("Add BSD grep to the base system...")
Pull Request: https://github.com/freebsd/freebsd-src/pull/622
Ed Maste [Tue, 1 Nov 2022 13:55:22 +0000 (09:55 -0400)]
ng_hci: handle NG_HCI_M_PULLUP failure in le_advertizing_report
PR: 267396
Reported by: Robert Morris <rtm@lcs.mit.edu>
Reviewed by: takawata
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D37228
Chuck Silvers [Tue, 1 Nov 2022 17:55:14 +0000 (10:55 -0700)]
ipmi: use a queue for kcs driver requests when possible
The ipmi watchdog pretimeout action can trigger unintentionally in
certain rare, complicated situations. What we have seen at Netflix
is that the BMC can sometimes be sent a continuous stream of
writes to port 0x80, and due to what is a bug or misconfiguration
in the BMC software, this results in the BMC running out of memory,
becoming very slow to respond to KCS requests, and eventually being
rebooted by its own internal watchdog. While that is going on in
the BMC, back in the host OS, a number of requests are pending in
the ipmi request queue, and the kcs_loop thread is working on
processing these requests. All of the KCS accesses to process
those requests are timing out and eventually failing because the
BMC is responding very slowly or not at all, and the kcs_loop thread
is holding the IPMI_IO_LOCK the whole time that is going on.
Meanwhile the watchdogd process in the host is trying to pat the
BMC watchdog, and this process is sleeping waiting to get the
IPMI_IO_LOCK. It's not entirely clear why the watchdogd process
is sleeping for this lock, because the intention is that a thread
holding the IPMI_IO_LOCK should not sleep and thus any thread
that wants the lock should just spin to wait for it. My best guess
is that the kcs_loop thread is spinning waiting for the BMC to
respond for so long that it is eventually preempted, and during
the brief interval when the kcs_loop thread is not running,
the watchdogd thread notices that the lock holder is not running
and sleeps. When the kcs_loop thread eventually finishes processing
one request, it drops the IPMI_IO_LOCK and then immediately takes the
lock again so it can process the next request in the queue.
Because the watchdogd thread is sleeping at this point, the kcs_loop
always wins the race to acquire the IPMI_IO_LOCK, thus starving
the watchdogd thread. The callout for the watchdog pretimeout
would be reset by the watchdogd thread after its request to the BMC
watchdog completes, but since that request never processed, the
pretimeout callout eventually fires, even though there is nothing
actually wrong with the host.
To prevent this saga from unfolding:
- when kcs_driver_request() is called in a context where it can sleep,
queue the request and let the worker thread process it rather than
trying to process in the original thread.
- add a new high-priority queue for driver requests, so that the
watchdog patting requests will be processed as quickly as possible
even if lots of application requests have already been queued.
With these two changes, the watchdog pretimeout action does not trigger
even if the BMC is completely out to lunch for long periods of time
(as long as the watchdogd check command does not also get stuck).
Sponsored by: Netflix
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D36555
Kristof Provost [Tue, 1 Nov 2022 17:03:50 +0000 (18:03 +0100)]
pf tests: make killstate tests more robust
Rather than using a Scapy-based Python script only check if the state
still exists. Scapy tends to be slow to start, it appears because it
lists all interfaces and gets their (IPv6) addresses a couple of times
at startup. This can be sufficient for the ICMP state to time out and
the test to fail.
We now only check if the state exists or is removed as expected, which
makes things faster, and should mean the test is more robust on slower
machines (such as CI VMs).
Sponsored by: Rubicon Communications, LLC ("Netgate")
Andrew Gallatin [Tue, 1 Nov 2022 17:44:39 +0000 (13:44 -0400)]
Fix a panic on boot introduced by
555a861d6826
First, an sbuf_new() in device_get_path() shadows the sb
passed in by dev_wired_cache_add(), leaving its sb in an
unfinished state, leading to a failed KASSERT(). Fixing this
is as simple as removing the sbuf_new() from device_get_path()
Second, we cannot simply take a pointer to the sbuf memory and
store it in the device location cache, because that sbuf
is freed immediately after we add data to the cache, leading
to a use-after-free and eventually a double-free. Fixing this
requires allocating memory for the path.
After a discussion with jhb, we decided that one malloc was
better than two in dev_wired_cache_add, which is why it changed
so much.
Reviewed by: jhb
Sponsored by: Netflix
MFC after: 14 days
Alexander V. Chernikov [Tue, 1 Nov 2022 12:20:13 +0000 (12:20 +0000)]
netlink: add netlink user documentation.
Add netlink(4) as a "frontend" manpage describing netlink in general.
Add rtnelink(4) describing supported commands and attributes in
NETLINK_ROUTE family.
Add genetlink(4) describing generic netlink API.
Reviewed by: pauamma
Differential Revision: https://reviews.freebsd.org/D37011
Mitchell Horne [Tue, 1 Nov 2022 15:20:01 +0000 (12:20 -0300)]
README.md: link to the list of supported platforms
It answers a question that someone might have when faced with the source
tree for the first time, and improves discoverability of the platforms
page.
Reviewed by: emaste
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D37179
Mitchell Horne [Tue, 1 Nov 2022 15:18:53 +0000 (12:18 -0300)]
development(7): redirect users from hier(7)
The layout of the source tree is now only described in README.md. Retain
the cross-reference to hier(7) in SEE ALSO; it is still useful to
readers.
Reviewed by: imp, emaste
MFC after: 1 month
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D37136
Mitchell Horne [Tue, 1 Nov 2022 15:15:18 +0000 (12:15 -0300)]
hier(7): remove text describing /usr/src layout
It poses a maintenance burden, since much of the information is
duplicated in the src tree's README.md file. Readers who are interested
enough in learning about the structure of the src tree can download it,
or browse the README online. Have hier(7) just point them there instead.
PR: 261349
Discussed with: freebsd-arch@, freebsd-doc@ lists
Reviewed by: imp, emaste
MFC after: 1 month
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D37135
Mitchell Horne [Tue, 1 Nov 2022 15:14:41 +0000 (12:14 -0300)]
README.md: shift description of kernel config files
Document it in sys/README.md instead. Describe the purpose of LINT
config files as well.
Reviewed by: imp
MFC after: 1 month
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D37134
Mitchell Horne [Tue, 1 Nov 2022 15:13:31 +0000 (12:13 -0300)]
sys/README.md: source roadmap improvements
Tweak the existing descriptions slightly. Add entries for several
directories which are not yet documented, but not exhaustively.
Reviewed by: imp (previous version), emaste
MFC after: 1 month
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D37133
Mitchell Horne [Tue, 1 Nov 2022 15:12:14 +0000 (12:12 -0300)]
Create sys/README.md
Add this primarily to document the sys/ subdirectories of the source tree.
This is a straight copy from the contents of hier(7). Improvements will
follow in other changes.
Reviewed by: imp, emaste
MFC after: 1 month
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D37132
Souradeep Chakrabarti [Tue, 1 Nov 2022 14:06:01 +0000 (14:06 +0000)]
arm64: Hyper-V: fixing hung issue during Hyper-V initialization
In non-Hyper-V systems during Hyper-V initialization, system
initialization was getting hung, as hyperv_identify(),
was returning successful irrespective of the type of the platform.
Reviewed by: andrew, whu
Fixes:
9729f076e4d
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D37219
Doug Rabson [Tue, 1 Nov 2022 10:14:29 +0000 (10:14 +0000)]
libc_nonshared: Move to clibs package
Its needed by libc.a which lives in clibs.
PR: 254173