Commit graph

5021 commits

Author SHA1 Message Date
Adrian Chadd
325af3b990 arm64: add the lenovo t14s snapdragon X1E device tree to the build list
This is used by the t14s for FDT support.

.. which definitely doesn't work yet, but having it in the build is good.

Differential Revision:	https://reviews.freebsd.org/D49690
Reviewed by:	manu, phk
2025-04-07 20:46:44 -07:00
Mark Johnston
296b60793d iwx: Disconnect from the i386 build
The module fails to compile.  Disconnect it until that's resolved one
way or another.

Reported by:	cperciva
2025-04-03 19:08:23 +00:00
Tom Jones
2ad0f7e915 Import iwx as ported from OpenBSD by Future Crew.
This driver originates from OpenBSD and was ported to FreeBSD by Future
Crew LLC who kindly provided a source release.

iwx supports many recent Intel WiFi card and this driver should support running
these cards with legacy, HT and VHT rates. There are some issues remaining in
the port, but at this point wider testing is sought.

To avoid breaking deployed WiFi configurations iwx probes with a lower
priority than iwlwifi. This can be changed by blocking iwlwifi with
devmatch.

Reviewed by:	adrian
Obtained from:	Future Crew LLC
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49259
2025-03-31 13:42:31 +01:00
Martin Matuska
641794f94f zfs: update zfs_config.h and zfs_gitref.h to catch up with 61145dc2b 2025-03-27 09:14:14 +01:00
Vladimir Kondratyev
f134662a1a acpi_asus_wmi(4): Improve keyboard backlight support.
- Fix maximal keyboard backlight level, Although Linux source code
  comment says that backlight level is encoded in 3 bits of data,
  actual code limits maximum level to 3.
- Add backlight(9) support for keyboard
- Turn off/on keyboard backlight on suspend/resume

Sponsored by:	Future Crew LLC
MFC after:	1 month
Reviewed by:	mav
Differential Revision:	https://reviews.freebsd.org/D48983
2025-03-17 18:45:14 +03:00
Vladimir Kondratyev
5e41194bfc acpi_asus_wmi(4): Add EVDEV support
Use input event device to export hotkey events.

Sponsored by:	Future Crew LLC
MFC after:	1 month
Reviewed by:	mav
Differential Revision:	https://reviews.freebsd.org/D48982
2025-03-17 18:45:14 +03:00
Adrian Chadd
2d4583c462 net80211: add initial AES-GCMP crypto support
This adds initial AES-GCMP crypto support.  It registers for both
128 and 256 bit support, although the 256 bit support will not work
without extending the net80211/ioctl keylength.

This is not yet enabled by default; drivers will need to opt-in
to supporting it in either hardware or software.

The AES-GCMP code is BSD licenced code from hostapd.git release 2.11.

Differential Revision:	https://reviews.freebsd.org/D49161
2025-03-12 17:02:27 -07:00
Martin Matuska
d2a8fad357 zfs: merge openzfs/zfs@fe674998b
Notable upstream pull request merges:
 #17042 ece35e0e6 zpool: allow relative vdev paths
 #17046 c43df8bbb vdev_file: unify FreeBSD and Linux implementations
 #17064 ee8803adc vdev_file: make FLUSH and TRIM asynchronous
 #17066 ecc44c45c include: move zio_priority_t into zfs.h
 #17071 ab3db6d15 arc: avoid possible deadlock in arc_read
 #17079 682c5f6a0 Fix wrong free function in arc_hdr_decrypt
 #17080 701093c44 Don't try to get mg of hole vdev in removal
 #17081 d7d274471 Better fill empty metaslabs
 #17088 a5fb5c55b spa: fix signature mismatch for spa_boot_init as
                  eventhandler required
 #17089 7f05fface gcm_avx_init: zero the ghash state after hashing the IV
 #17122 fe674998b Check portable objset MAC even if local is zeroed

Obtained from:	OpenZFS
OpenZFS commit:	fe674998bb
2025-03-09 12:52:57 +01:00
Martin Matuska
b59a0cde6a zfs: merge openzfs/zfs@6a2f7b384
Notable upstream pull request merges:
 #16857 387ed5ca4 Add recursive dataset mounting and unmounting support
                  to pam_zfs_key
 #16929 c2458ba92 optimize recv_fix_encryption_hierarchy()
 #16980 12f0baf34 Make the vfs.zfs.vdev.raidz_impl sysctl cross-platform
 #16986 40496514b Expand fragmentation table to reflect larger possibile
                  allocation sizes
 #17003 88020b993 Add kstats tracking gang allocations
 #17013 21205f648 Avoid ARC buffer transfrom operations in prefetch
 #17016 390f6c119 zio: lock parent zios when updating wait counts on
                  reexecute
 #17029 b8c73ab78 zio: do no-op injections just before handing off to vdevs
 #17037 6a2f7b384 Fix metaslab group fragmentation math
 #17040 b901d4a0b Update the dataset name in handle after zfs_rename

Obtained from:	OpenZFS
OpenZFS commit:	6a2f7b3844
2025-02-20 17:40:55 +01:00
Mark Johnston
c76c2a19ae vmm: Consolidate code which manages guest memory regions
On all three platforms supported by vmm, we have mostly duplicated code
to manage guest physical memory regions.  Deduplicate much of this code
and move it into sys/dev/vmm/vmm_mem.c.

To avoid exporting struct vm outside of machdep vmm.c, add a new
struct vm_mem to contain the memory segment descriptors, and add a
vm_mem() accessor, akin to vm_vmspace().  This way vmm_mem.c can
implement its routines without needing to see the layout of struct vm.

The handling of the per-VM vmspace is also duplicated but will be moved
to vmm_mem.c in a follow-up patch.

On amd64, move the ppt_is_mmio() check out of vm_mem_allocated() to keep
the code MI, as PPT is only implemented on amd64.  There are only a
couple of callers, so this is not unreasonable.

No functional change intended.

Reviewed by:	jhb
Differential Revision:	https://reviews.freebsd.org/D48270
2025-02-18 16:00:07 +00:00
Mark Johnston
fbacadf103 vmm: Add vmm_fence.c to SRCS for vmm.ko on riscv
Fixes:	8f6b66a9d3 ("riscv vmm: implement SBI RFNC extension.")
2025-02-14 15:26:49 +00:00
Jesper Schmitz Mouridsen
2be8b121bf mtw(4) remove misplaced DEBUG_FLAGS
PR:		284639
Approved by: markj,emaste
Differential Revision:	https://reviews.freebsd.org/D48895
2025-02-07 21:26:36 +01:00
John Baldwin
856d316799 arm64: Hook up efi_rt_arch_call in efirt.ko
Note that this requires marking efi_rt_fault as a non-preemptible
local symbol.

Co-authored-by: Jessica Clarke <jrtc27@FreeBSD.org>
Reviewed by:	imp, andrew
Obtained from:	CheriBSD
Fixes:		d7f930b80e ("arm64: Implement efi_rt_arch_call")
Differential Revision:	https://reviews.freebsd.org/D48715
2025-02-05 09:50:15 -05:00
Jesper Schmitz Mouridsen
c14b016242 mt7601U: Importing if_mtw from OpenBSD
Added ht20 mode, based on if_run from FreeBSD, and if_mtw.c
from OpenBSD.

PR: 247545
Approved by:	adrian, wireless
Differential Revision: https://reviews.freebsd.org/D45179
2025-02-03 20:20:52 +01:00
Gleb Smirnoff
fa1b961259 krpc: add kernel side client over netlink(4)
This shall be the official transport to connect kernel side RPC clients
to userland side RPC servers.  All current kernel side clients that
hijack unix(4) sockets will be converted to it.  Some implementation
details are available inside new clnt_nl.c.

The complementary RPC server over netlink(4) coming in next commit.

Reviewed by:		rmacklem
Differential Revision:	https://reviews.freebsd.org/D48549
2025-02-01 01:00:25 -08:00
Bjoern A. Zeeb
411c857b4c iwlwifi: module correct -DCONFIG_*
Remove the =1 from -DCONFIG_* in the conditional cases.
They are not needed.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
2025-01-31 23:53:31 +00:00
Bjoern A. Zeeb
446eab491e rtw89: turn on debugfs support
Following 07f6575585 also turn on debugfs support for rtw89.

Sponnsored by:	The FreeBSD Foundation
MFC after:	3 days
2025-01-31 23:53:31 +00:00
Martin Matuska
c6767dc1f2 zfs: merge openzfs/zfs@34205715e
Notable upstream pull request merges:
 #16938 2aa3fbe76 zinject: count matches and injections for each handler
 #16947 -multiple zinject: add "probe" device injection type
 #16976 34205715e FreeBSD: Add setting of the VFCF_FILEREV flag

Obtained from:	OpenZFS
OpenZFS commit:	34205715e1
2025-01-27 08:22:28 +01:00
Andrew Turner
c6170b00f4 vmm: Depend on vmm_hyp* files as needed
The arm64 vmm_nvhe* files depend on a vmm_hyp file to provide most of
the implementation. As these are built with custom rules the normal
generated dependency information is not used, even if generated.

Add a dependency between these two sets of files to ensure when the
implementation is updated the file will be rebuilt.

Sponsored by:	Arm Ltd
2025-01-24 16:21:06 +00:00
John Baldwin
f87bb59676 gvinum: Remove kernel support
Reviewed by:	imp
Differential Revision:	https://reviews.freebsd.org/D48541
2025-01-23 11:20:42 -05:00
Mark Johnston
1e734f15c7 dtrace: Build systrace_freebsd32 only if COMPAT_FREEBSD32 is configured
MFC after:	1 week
Sponsored by:	Innovate UK
2025-01-22 21:26:07 +00:00
Adrian Chadd
0f1bf1c22a umb: Introduce the USB umb(4) network driver
This includes the port of a driver originally from OpenBSD, later
ported to NetBSD by the author:

* The umb(4) kernel driver
* The umbctl(8) companion tool

This driver supports USB network devices implementing the
Mobile Broadband Interface Model (MBIM), often found in modern
(internal) USB models for 4G/LTE mobile broadband access.

It is currently limited to IPv4.

umbctl has to be used to display or set MBIM cellular modem
interface parameters (4G/LTE).

Differential Revision:  https://reviews.freebsd.org/D48167
Approved by:    adrian, zlei
Sponsored by:   FreeBSD Foundation
PR:             kern/263783
Submitted by:   Pierre Pronchery <khorben@defora.org>
2025-01-20 23:46:15 +00:00
Martin Matuska
9d6043f980 zfs: merge openzfs/zfs@fae4c664a
Notable upstream pull request merges:
 #16942 fae4c664a FreeBSD: Use ashift in vdev_check_boot_reserve()

Obtained from:	OpenZFS
OpenZFS commit: fae4c664a4
2025-01-11 10:45:30 +01:00
Martin Matuska
6bfe9a1393 zfs: update configs after merging openzfs/zfs@b8e09c700 2025-01-11 10:38:14 +01:00
Alexander Motin
e6c96c7af7 Revert "isp: Fix abort issue introduced by previous commit"
This reverts commit 1f7c379c07.

Leaked unintended changes.  I'm sorry.
2025-01-08 13:20:09 -05:00
Alexander Motin
1f7c379c07 isp: Fix abort issue introduced by previous commit
Aborting ATIO while its CTIOs are in progress makes impossible to
handle their completions, making them stuck forever.  Detect this
case by checking ctcnt counter and if so instead of aborting just
mark the ATIO as dead to block any new CTIOs.  It is not perfect
since the task id can not be reused for some more time, but not
as bad as the task stuck forever.

MFC after:	1 week
2025-01-08 13:04:34 -05:00
Bjoern A. Zeeb
07f6575585 LinuxKPI: 802.11: turn on debugfs for iwlwifi and rtw88
Make iwlwifi compile with debugfs after the last updates and turn it on
for both iwlwifi and rtw88 in order to be able to get at least some
useful information on driver/firwmare state.

Sponsored by:	The FreeBSD Foundation
MFC after:	10 days
2025-01-07 18:07:09 +00:00
Emmanuel Vadot
f57db7955a modules: dtb: allwinner: Remove sun8i-h2-plus-orangepi-r1.dts
Remove sun8i-h2-plus-orangepi-r1.dts for now, latest update changed some
/delete-node/ places and this confuse our dtc.
2025-01-04 09:38:50 +01:00
Ruslan Bukin
9be0058ea0 riscv vmm: virtual timer support.
Add a virtual timer implementation based on SBI Time extension.
This is needed for Eswin EIC7700 SoC which does not include the newer SSTC
extension.

Timer interrupt pending bit (STIP) could not be cleared in the guest system,
so rework interrupts handling: add new "interrupts_pending" field. Use it
for timer interrupt only for now, but later we can extend to store all
pending interrupts (Timer, IPI and External).

With this I'm able to boot FreeBSD (SMP) guest on HiFive Premier P550,
which is the first real hardware with RISC-V 'H'-spec included.

Differential Revision: https://reviews.freebsd.org/D48133
2025-01-02 16:02:39 +00:00
Gleb Smirnoff
c21f5751ef acpi_ibm: pass brightness events to evdev(4)
unless the dev.acpi_ibm.0.handlerevents sysctl is set to process
them internally.  The default for the latter is to ignore them,
so passing to evdev(4) is enabled by default.

Reviewed by:		wulf, imp
Tested on:		Lenovo Thinpad X11 Carbon 7Th Gen
Differential Revision:	https://reviews.freebsd.org/D48174
2024-12-23 18:10:56 -08:00
Kristof Provost
fcdb520c1b pf: nat64
Since the IPv6 madness is not enough introduce NAT64 -- which is actually
"af-to" a generic IP version translator for pf(4).
Not everything perfect yet but lets fix these things in the tree.
Insane amount of work done by sperreault@, mikeb@ and reyk@.
Looked over by mcbride@ henning@ and myself at eurobsdcon.
OK mcbride@ and general put it in from deraadt@

Obtained from:	OpenBSD, claudio <claudio@openbsd.org>, 97326e01c9
Sponsored by:	Rubicon Communications, LLC ("Netgate")
Differential Revision:	https://reviews.freebsd.org/D47786
2024-12-17 11:07:12 +01:00
Emmanuel Vadot
af0a81b647 iwm: Stop shipping firmware as kernel module
Since we can load raw firmware start shipping them as is.
This also remove the uuencode format that don't add any value and garbage
collect old firmwares version.
For pkgbase users they are now in the FreeBSD-firmware-iwm package.

Sponsored by:	Beckhoff Automation GmbH & Co. KG
2024-12-16 10:44:47 +01:00
Ed Maste
c3d2c959b5 lindebugfs: Export symbols
We currently rely on the kernel linker resolving undefined references
against local symbols from other kernel modules.  Be explicit about the
symbols to export, in advance of changing that behaviour.

PR:		207898
Reviewed by:	kib, bz
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D47980
2024-12-07 20:23:15 -05:00
Martin Matuska
17aab35a77 zfs: merge openzfs/zfs@e0039c705
Notable upstream pull request merges:
 #16215 44446dccd During pool export flush the ARC asynchronously
 #16301 4b4e346b9 Add ability to scrub from last scrubbed txg
 #16755 0ffa6f346 zdb: show dedup table and log attributes
 #16801 1cd2419ec Fix race in libzfs_run_process_impl
 #16814 a01504b35 Improve speculative prefetcher for block cloning
 #16819 a44eaf169 Optimize RAIDZ expansion
 #16825 e8b333e4d Fix false assertion in dmu_tx_dirty_buf() on cloning
 #16829 6e3c109bc Fix regression in dmu_buf_will_fill()
 #16832 2507db612 zdb_il: use flex array member to access ZIL records
 #16834 0e020bf3e FreeBSD: Remove an incorrect assertion in zfs_getpages()
 #16836 c33a55b0c Allow dsl_deadlist_open() return errors

Obtained from:	OpenZFS
OpenZFS commit:	e0039c7057
2024-12-07 14:55:14 +01:00
Gleb Smirnoff
a034c0aecc netlink: refactor writer initialization KPI
o Allow callers to initialize a writer that will malloc(9) with M_WAITOK.
o Use size_t for expected malloc size.
o Use correct types to initialize a group writer.
o Rename functions into nl_writer_ namespace instead of nlmsg_, cause
  they are working on nl_writer, not on nlmsg.
o Make the KPI responsible to sparsely initialize the writer structure.
o Garbage collect chain writer.  Fixes 17083b94a9.

All current consumers are left as is, however some may benefit from
M_WAITOK allocation as well as supplying a correct expected size.

Reviewed by:		melifaro
Differential Revision:	https://reviews.freebsd.org/D47549
2024-12-03 12:04:18 -08:00
Christos Margiolis
0b4e329125 sound: Merge ac97 and ac97_patch
No functional change intended.

Sponsored by:	The FreeBSD Foundation
MFC after:	2 days
Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D47732
2024-12-02 17:26:20 +01:00
SHENG-YI HONG
9996c680d1
sys/modules/hid/*: Fix standalone build
Co-authored-by:	Daniel Schaefer <dhs@frame.work>
Reviewed by:	imp, wulf
Differential Revision:	https://reviews.freebsd.org/D47830
2024-11-29 15:08:08 +08:00
Martin Matuska
718519f4ef zfs: merge openzfs/zfs@d0a91b9f8
Notable upstream pull request merges:
 #16643 -multiple Change rangelock handling in FreeBSD's zfs_getpages()
 #16697 46c4f2ce0 dsl_dataset: put IO-inducing frees on the pool deadlist
 #16740 -multiple BRT: Rework structures and locks to be per-vdev
 #16743 a60ed3822 L2ARC: Move different stats updates earlier
 #16758 8dc452d90 Fix some nits in zfs_getpages()
 #16759 534688948 Remove hash_elements_max accounting from DBUF and ARC
 #16766 9a81484e3 ZAP: Reduce leaf array and free chunks fragmentation
 #16773 457f8b76e BRT: More optimizations after per-vdev splitting
 #16782 0ca82c568 L2ARC: Stop rebuild before setting spa_final_txg
 #16785 d76d79fd2 zio: Avoid sleeping in the I/O path
 #16791 ae1d11882 BRT: Clear bv_entcount_dirty on destroy
 #16796 b3b0ce64d FreeBSD: Lock vnode in zfs_ioctl()
 #16797 d0a91b9f8 FreeBSD: Reduce copy_file_range() source lock to shared

Obtained from:	OpenZFS
OpenZFS commit:	d0a91b9f88
2024-11-24 10:04:51 +01:00
Mark Johnston
0a897e6754 riscv: Add support for building vmm as a kernel module
- Update sys/modules/vmm/Makefile.
- Add some required symbol definitions.
- Hook up vmm in sys/modules/Makefile.

Reviewed by:	br
Differential Revision:	https://reviews.freebsd.org/D47477
2024-11-13 14:15:07 +00:00
Martin Matuska
5c65a0a916 zfs: merge openzfs/zfs@1c9a4c8cb
Notable upstream pull request merges:
 #16244 acb6e71ed Added output to `zpool online` and `offline`
 #16684 94a03dd1e Pack dmu_buf_impl_t by 16 bytes
 #16690 6187b1943 On the first vdev open ignore impossible ashift hints
 #16692 673efbbf5 zdb: add extra -T flag to show histograms of BRT refcounts
 #16693 2bf152021 Fix gcc uninitialized warning in FreeBSD zio_crypt.c
 #16694 b16e09619 Reduce dirty records memory usage
 #16701 5945676bc ZFS send should use spill block prefetched from
                  send_reader_thread
 #16734 1c9a4c8cb Fix user properties output for zpool list

Obtained from:	OpenZFS
OpenZFS commit:	1c9a4c8cb4
2024-11-13 13:49:10 +01:00
Vladimir Kondratyev
24ae172a50 ng_ubt(4): do not attach Realtek 87XX/88XX adaptors in bootloader mode.
Attempt to initialize FreeBSD bluetooth stack while such a device is in
bootloader mode locks the adapter hardly so it requires power on/off
cycle to restore.

This change blocks ng_ubt attachment unless operational firmware is
loaded thus preventing the lock up.

Sponsored by:	Future Crew LLC
MFC after:	1 month
Differential Revision:	https://reviews.freebsd.org/D46738
2024-11-07 02:28:11 +03:00
Shailend Chand
d438b4ef0c gve: Add DQO RDA support
DQO is the descriptor format for our next generation virtual NIC.
It is necessary to make full use of the hardware bandwidth on many
newer GCP VM shapes.

One major change with DQO from its predecessor GQI is that it uses
dual descriptor rings for both TX and RX queues.

The TX path uses a descriptor ring to send descriptors to HW, and
receives packet completion events on a TX completion ring.

The RX path posts buffers to HW using an RX descriptor ring and
receives incoming packets on an RX completion ring.

In GQI-QPL, the hardware could not access arbitrary regions of
guest memory, which is why there was a pre-negotitated bounce buffer
(QPL: Queue Page List). DQO-RDA has no such limitation.

"RDA" is in contrast to QPL and stands for "Raw DMA Addressing" which
just means that HW does not need a fixed bounce buffer and can DMA
arbitrary regions of guest memory.

A subsequent patch will introduce the DQO-QPL datapath that uses the
same descriptor format as in this patch, but will have a fixed
bounce buffer.

Signed-off-by: Shailend Chand <shailend@google.com>
Reviewed-by: markj
MFC-after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D46690
2024-11-06 15:06:41 +00:00
Mark Johnston
f95acbd89d vmm: Rename the amdiommu driver to amdviiommu
To avoid a conflict with the new amdiommu driver imported recently.

Fixes:		0f5116d7ef ("AMD IOMMU driver")
Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D47415
2024-11-04 14:45:57 +00:00
Ravi Pokala
bb8b3b1741 modules: gpioaei: Fix arm64.LINT-FDT breakage
'acpi_if.h' was accidentally omitted from the module Makefile; add it.

Fixes:	9709bda03c
2024-11-01 22:08:11 -07:00
Colin Percival
6540ac1184 modules: gpioaei only on ACPI-supporting archs
Fixes:	9709bda03c ("GPIO: Add ACPI _AEI support")
Pointy-hat to:	cperciva
Sponsored by:	Amazon
2024-10-31 15:45:03 -07:00
Colin Percival
9709bda03c GPIO: Add ACPI _AEI support
Changes to acpi_gpiobus.c handle discovering and parsing the _AEI
objects and storing necessary data in device ivars.  A new gpioaei.c
file implements the device, which simply requests an interrupt when
the pin is triggered and invokes the appropriate _Exx or _Lxx ACPI
method.

This makes the GPIO "power button" work on arm64 Graviton systems,
allowing EC2 "Stop"/"Reboot" instance calls to be handled cleanly.
(Prior to this change, those requests would time out after 4 minutes
and the instance would be forcibly killed.)

Reviwed by:	imp, andrew, Ahmad Khalifa
MFC after:	3 days
Sponsored by:	Amazon
Differential Revision:	https://reviews.freebsd.org/D47253
Co-authored-by:	Andrew Turner <andrew@FreeBSD.org>
2024-10-31 14:26:34 -07:00
Eric Joyner
f9a039060e
ice_ddp: Update to 1.3.41.0
Primarily adds support for E830 devices, unlocking all of their
functionality.

As well, update the README and remove the non-FreeBSD sections
from it.

Signed-off-by: Eric Joyner <erj@FreeBSD.org>

MFC after:	2 days
Sponsored by:	Intel Corporation
2024-10-28 15:55:25 -07:00
Bjoern A. Zeeb
2ac644317e iwlwifi,rtw88,rtw89: connect to build again
Sponsored by:	The FreeBSD Foundation
Fixes:		f0b989348f (revert)
MFC after:	14 days
2024-10-28 14:42:37 +00:00
Bjoern A. Zeeb
6d67aabd63 rtw89: update Realtek's rtw89 driver.
This adds support for the Realtek 8922AE PCI
wireless network (Wi-Fi 7) adapter.

This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
98f7e32f20d28ec452afb208f9cffc08448a2652 ( tag: v6.11 ).

Sponsored by:   The FreeBSD Foundation
MFC after:	14 days
2024-10-28 14:42:36 +00:00
Bjoern A. Zeeb
11c53278a8 rtw88: update Realtek's rtw88 driver.
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
98f7e32f20d28ec452afb208f9cffc08448a2652 ( tag: v6.11 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      14 days
2024-10-28 14:42:32 +00:00