]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
6 months agoath(4): always enable 11n
Bjoern A. Zeeb [Sun, 18 Feb 2024 18:16:24 +0000 (18:16 +0000)]
ath(4): always enable 11n

Enabling 11n for ath(4) so far was handled by a kernel option, which
was only enabled for certain kernel configurations.
In order to allow loading ath(4) as a module with 11n support on
all platforms, remove the kernel option and unconditionally enable
11n in ath(4).

Reported by: pkubaj
Discussed with: adrian in D43549.
Reviewed by: adrian, imp
Differential Revision: https://reviews.freebsd.org/D43964

6 months agorescue: Stop using LDADD_zstd
Jessica Clarke [Thu, 22 Feb 2024 20:56:05 +0000 (20:56 +0000)]
rescue: Stop using LDADD_zstd

Ideally we'd be able to use LDADD_foo here for all our various libs and
get the implicit dependencies, but rescue is a bit special. Historically
this was just used to pick up the "private" in the name automatically
(as far as I can tell), but now that _DP_pthread includes c we end up
pulling in a -lc from this (along with -lcompiler_rt and -lsys). This
results in -lc being before -lmd (and after, implictly, from the
compiler driver), which, for the specific situation here, results in
both libc.a's and libmd.a's md5c.o being included, giving duplicate
definitions of _libmd_MD5Init and other symbols. With LLD 16+ we
currently make that not an error for other reasons (which should
probably be fixed), but not for older versions, nor for BFD, and so the
build fails.

Fix all this by just using -lprivatezstd in place of LDADD_zstd, which
results in the exact same clang command line as we used to have prior to
adding c (and sys) to _DP_pthread when linking rescue. Note that bsdbox
already uses -lprivatezstd rather than LDADD_zstd.

This reverts commit 5fead429ebb3800fdd3fc0817d2c330b2a8d640f.

Reviewed by: imp
Fixes: 99ea67573164 ("lib{c,sys}: move auxargs more firmly into libsys")

6 months agobge(4): Fix some typos in source code comments
Gordon Bergling [Thu, 22 Feb 2024 19:38:50 +0000 (20:38 +0100)]
bge(4): Fix some typos in source code comments

- s/firwmare/firmware/
- s/recue/reduce/
- s/throughpout/throughput/
- s/hardwares/hardware/

Obtainted from: NetBSD
MFC after: 3 days

6 months agoAdd link from if_iwlwifi(4) to iwlwifi(4)
Li-Wen Hsu [Thu, 22 Feb 2024 18:45:22 +0000 (02:45 +0800)]
Add link from if_iwlwifi(4) to iwlwifi(4)

MFC after: 3 days
Sponsored by: The FreeBSD Foundation

6 months agoacpi: Defer reserving resources for ACPI devices
John Baldwin [Thu, 22 Feb 2024 18:43:43 +0000 (10:43 -0800)]
acpi: Defer reserving resources for ACPI devices

The goal of reserving firmware-assigned resources is to ensure that
"wildcard" resource allocation requests will not claim an address
range that is actually in use even if no attached driver is actively
using that range.  However, the current approach can break in some
cases.

In particular, ACPI can enumerate devices behind PCI bridges that
don't show up in a normal PCI scan, but those device_t objects can end
up as direct children of acpi0.  Reserving resources for those devices
directly from acpi0 ends up conflicting with later attempts to reserve
the PCI bridge windows.

As a workaround, defer reserving unclaimed resources until after the
initial probe and attach scan.  Eventually this pass of reserving
unclaimed resources can be moved earlier, but it requires changes to
other drivers in the tree to permit enumerating devices and reserving
firmware-assigned resources in a depth-first traversal before
attaching devices whose drivers request wildcard allocations.

PR: 272507
Reported by: Justin Tocci <justin@tocci.org>
Reported by: john@feith.com, many others
Tested by: Oleg Sidorkin <osidorkin@gmail.com>, dch

6 months agoarm: Set NEW_PCIB in DEFAULTS rather than a subset of kernel configs
Jessica Clarke [Thu, 22 Feb 2024 18:27:45 +0000 (18:27 +0000)]
arm: Set NEW_PCIB in DEFAULTS rather than a subset of kernel configs

All other architectures set NEW_PCIB in DEFAULTS, with arm being the one
remaining straggler that only sets it for GENERIC and TEGRA124.
ARMADA38X and ARMADAXP contain device pci but don't set NEW_PCIB,
however GENERIC claims to support them and as part of that NEW_PCIB
support was added to mv_pci, so these configs are most likely just
stale. Other than NOTES that just leaves ALPINE as the one kernel with
PCI support not covered by GENERIC, but al_pci is supported by arm64
which enables NEW_PCIB, and it's just a generic_pcie_fdt_driver with
some fixup code to deal with quirks so should support PCI_RES_BUS just
fine. Therefore it is believed that all in-tree kernel configs support
NEW_PCIB in reality, and so let's take a step towards removing all the
non-NEW_PCIB code by having it always-on everywhere.

Reviewed by: emaste, jhb, manu
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D43806

6 months agox86/ucode: add support for early loading of CPU ucode on AMD.
Chuck Silvers [Thu, 22 Feb 2024 18:03:53 +0000 (10:03 -0800)]
x86/ucode: add support for early loading of CPU ucode on AMD.

Sponsored by: Netflix
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D43318

6 months agoAdd missing .endif
Warner Losh [Thu, 22 Feb 2024 17:16:37 +0000 (10:16 -0700)]
Add missing .endif

Last second move from inside the prior block to outside bites me.

Noticed by: jrtc23
Fixes: dcb621efd664
Sponsored by: Netflix

6 months agoloader: Mark BEARSSL broken on powerpc
Warner Losh [Thu, 22 Feb 2024 17:05:40 +0000 (10:05 -0700)]
loader: Mark BEARSSL broken on powerpc

When BEARSSL is enabled, we pull in libsecureboot, which has EFI
dependencies which don't exist on powerpc. This needs to be detangled,
but until then mark it as broken.

Sponsored by: Netflix

6 months agovge(4): Fix a typo in a source code comment
Gordon Bergling [Thu, 22 Feb 2024 16:33:35 +0000 (17:33 +0100)]
vge(4): Fix a typo in a source code comment

- s/embadded/embedded/

MFC after: 3 days

6 months agoloader: These files have no copyrightable material
Warner Losh [Thu, 22 Feb 2024 16:30:59 +0000 (09:30 -0700)]
loader: These files have no copyrightable material

These files have no copyrightable material, and so are in the public
domain.

Sponsored by: Netflix

6 months agolibsa: Remove redundant sys/cdefs.h
Warner Losh [Thu, 22 Feb 2024 15:18:02 +0000 (08:18 -0700)]
libsa: Remove redundant sys/cdefs.h

Sponsored by: Netflix

6 months agoloader: return errors from writing ZFS labels
Warner Losh [Thu, 22 Feb 2024 15:17:56 +0000 (08:17 -0700)]
loader: return errors from writing ZFS labels

vdev_write_bootenv_impl can only return success. Instead, return the
last error.  This will make any write errors more visible. The old code
masked kboot's inability to write bootenv.

Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D44018

6 months agokboot: Implement write support for hostdisk
Warner Losh [Thu, 22 Feb 2024 15:17:48 +0000 (08:17 -0700)]
kboot: Implement write support for hostdisk

Don't assume that strategy is only called for read. Check the passed
flag for F_READ or F_WRITE and fail if it is neither. Open the disks for
writing and call host_read/host_write depending on that flag.

Sponsored by: Netflix
Reviewed by: kevans, gallatin
Differential Revision: https://reviews.freebsd.org/D44016

6 months agoarm64: Tell userspace when BTI is supported
Andrew Turner [Thu, 26 Oct 2023 09:50:28 +0000 (10:50 +0100)]
arm64: Tell userspace when BTI is supported

To allow userspace to decide when to try enabling BTI report if it's
available via the ID register and hwcaps.

Sponsored by: Arm Ltd

6 months agoarm64: Enable BTI in the kernel ELF loader
Andrew Turner [Thu, 2 Nov 2023 09:56:09 +0000 (09:56 +0000)]
arm64: Enable BTI in the kernel ELF loader

Enable BTI in binaries loaded by the kernel. When the ELF file contains
the needed note indicating BTI is supported set the guarded page flag
for all segments.

Reviewed by: markj
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D42441

6 months agoAdd a BTI sysarch
Andrew Turner [Wed, 5 Apr 2023 12:45:19 +0000 (13:45 +0100)]
Add a BTI sysarch

This is used to enable the guard page when an elf binary is built with
BTI instructions.

Reviewed by: markj
Sponsored by: Arm Ltd
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D39453

6 months agoarm64: Add BTI support to pmap
Andrew Turner [Wed, 5 Apr 2023 12:31:41 +0000 (13:31 +0100)]
arm64: Add BTI support to pmap

Add a rangeset to the arm64 pmap to describe which address space needs
the Branch Target Identification (BTI) Guard Page flag set in the page
table.

On hardware that supports BTI the Guard Page flag tells the hardware
to raise an exception if the target of a BR* and BLR* instruction is
not an appropriate landing pad instruction.

To support this in userspace we need to know which address space
should be guarded. For this add a rangeset to the arm64 pmap when the
hardware supports BTI. The kernel can then use pmap_bti_set and
pmap_bti_clear mark and unmark which address space is guarded.

Sponsored by: Arm Ltd
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D42328

6 months agosk(4): Fix a typo in a source code comment
Gordon Bergling [Thu, 22 Feb 2024 16:16:49 +0000 (17:16 +0100)]
sk(4): Fix a typo in a source code comment

- /integeated/integrated/
- s/extented/extended/

Obtained from: NetBSD
MFC after: 3 days

6 months agouath(4): Fix a typo in a source code comment
Gordon Bergling [Thu, 22 Feb 2024 15:55:51 +0000 (16:55 +0100)]
uath(4): Fix a typo in a source code comment

- s/parmeter/parameter/

MFC after: 3 days

6 months agorandom(4): Fix a typo in a source code comment
Gordon Bergling [Thu, 22 Feb 2024 15:54:50 +0000 (16:54 +0100)]
random(4): Fix a typo in a source code comment

- s/parmeter/parameter/

MFC after: 3 days

6 months agox86/xen: use correct printf specifier.
Roger Pau Monné [Thu, 22 Feb 2024 14:26:56 +0000 (15:26 +0100)]
x86/xen: use correct printf specifier.

Use %p instead of wrongly casting to uintptr_t and printing with %lx.

Reported by: bapt
Fixes: 9a687d1fe3af ('x86/xen: introduce a Xen early init function')
Sponsored by: Cloud Software Group

6 months agoumcs(4): Fix two typos in source code comments
Gordon Bergling [Thu, 22 Feb 2024 13:14:08 +0000 (14:14 +0100)]
umcs(4): Fix two typos in source code comments

- s/frequences/frequencies/

MFC after: 3 days

6 months agox86/xen: implement early init hook
Roger Pau Monné [Fri, 2 Feb 2024 10:56:32 +0000 (11:56 +0100)]
x86/xen: implement early init hook

Unify the HVM and PVH early setup, byt making both rely on the hypervisor
initialization hook part of identify_hypervisor().

The current initialization takes care of the hypercall page, the sahred info
page and does any fixup necessary to metadata video console information if
FreeBSD is booted as the initial domain (so the video console is handed from
Xen into FreeBSD).

Note this has the nice side effect of also allowing to use the Xen console on
HVM guests, which allows to get rid of the QEMU emulated uart and still get
a nice text console.

Sponsored by: Cloud Software Group
Reviewed by: markj
Differential revision: https://reviews.freebsd.org/D43764

6 months agox86/cpu: introduce an optional hook for early hypervisor initialization
Roger Pau Monné [Fri, 2 Feb 2024 10:36:52 +0000 (11:36 +0100)]
x86/cpu: introduce an optional hook for early hypervisor initialization

Hypervisor detection is done very early on x86, and so can be used to also do
some very early hypervisor related initialization.  Such initialization is
required when running as a Xen PVH guest, as for example the PIT needs to be
replaced with an hypervisor based timecounter.

Introduce an optional hook that gets called as part of the early hypervisor
detection.

No functional change intended.

Sponsored by: Cloud Software Group
Reviewed by: markj kib
Differential revision: https://reviews.freebsd.org/D43763

6 months agox86/xen: replace xen_cpuid_base with hv_base
Roger Pau Monné [Fri, 2 Feb 2024 11:04:50 +0000 (12:04 +0100)]
x86/xen: replace xen_cpuid_base with hv_base

Where possible, replace the usage of xen_cpuid_base for hv_base in preparation
for removing xen_cpuid_base.

No functional change intended.

Sponsored by: Cloud Software Group
Reviewed by: markj
Differential revision: https://reviews.freebsd.org/D43935

6 months agox86/xen: do video console fixup as part of early initialization
Roger Pau Monné [Fri, 2 Feb 2024 10:29:57 +0000 (11:29 +0100)]
x86/xen: do video console fixup as part of early initialization

When FreeBSD is running as dom0 the video console metadata provided by the
bootloader might not be accurate, as Xen has very likely taken over the console
and possibly changed the mode.

Adjust the video console information in the kernel metadata as part of early
Xen initialization.

Sponsored by: Cloud Software Group
Reviewed by: imp
Differential revision: https://reviews.freebsd.org/D43934

6 months agox86/xen: move shared page setup to early init handler
Roger Pau Monné [Fri, 2 Feb 2024 10:20:33 +0000 (11:20 +0100)]
x86/xen: move shared page setup to early init handler

As done with the hypercall page, move the setup fo the shared info page into
the newly introduced helper, which the aim of having a single helper and call
site used by both HVM and PV in order to setup the basic Xen environment.

Sponsored by: Cloud Software Group
Reviewed by: markj
Differential revision: https://reviews.freebsd.org/D43933

6 months agox86/xen: introduce a Xen early init function
Roger Pau Monné [Fri, 2 Feb 2024 10:00:31 +0000 (11:00 +0100)]
x86/xen: introduce a Xen early init function

Start by moving the hyeprcall setup to such function.

The aim is to have a function that does all the required Xen early
initialization for both HVM and PVH, instead of having it scattered across
different paths.

Sponsored by: Cloud Software Group
Reviewed by: markj
Differential revision: https://reviews.freebsd.org/D43932

6 months agox86/xen: remove parameter from fixup_console()
Roger Pau Monné [Fri, 2 Feb 2024 08:32:15 +0000 (09:32 +0100)]
x86/xen: remove parameter from fixup_console()

And instead fetch the metadata inside of the function.

This is done in preparation for changing the call site of fixup_console(),
which will no longer have the kernel metedata pointer in context.

No functional change intended.

Sponsored by: Cloud Software Group
Reviewed by: markj
Differential revision: https://reviews.freebsd.org/D43931

6 months agox86/xen: fill hypercall page with int3
Roger Pau Monné [Fri, 2 Feb 2024 08:50:16 +0000 (09:50 +0100)]
x86/xen: fill hypercall page with int3

Filling the hypercall page with nops is not helpful from a debugging point of
view, as for example attempting to execute an hypercall before the page is
initialized will result in the execution flow falling through into
xen_start32, making the mistake less obvious to spot.

Instead fill the page with int3 (0xcc) which will result in a #BP trap.

Sponsored by: Cloud Software Group
Reviewed by: markj
Differential revision: https://reviews.freebsd.org/D43930

6 months agox86/cpu: improve hypervisor detection
Roger Pau Monné [Fri, 19 Jan 2024 09:15:17 +0000 (10:15 +0100)]
x86/cpu: improve hypervisor detection

Some hypervisors can expose multiple signatures, for example Xen will expose
both the Xen and the HyperV signatures if Viridian extensions are enabled for
the guest.  Presence of multiple signatures is currently not handled by
FreeBSD, that will exit once a known signature is found in cpuid output.

Exposing the HyperV signature on hypervisors different than HyperV is not
uncommon, this is done so that such hypervisor can expose a (subset) of the
Viridian extensions to Windows guests for performance reasons.  Likely for
compatibility purposes the HyperV signature is always exposed on the first
leaf, and the Xen signature is exposed in the secondary leaf.

Fix the specific case of HyperV by not exiting from the scan if the HyperV
signature is found, and prefer a second signature if one is found.

Note that long term we might wish to convert vm_guest into a bitmap, so that it
can signal detection of multiple hypervisor interfaces.

Fixes: b0165dc4539f ('x86/xen: fix HVM guest hypercall page setup')
PR: 276421
Sponsored by: Cloud Software Group
Reviewed by: markj kib
Differential revision: https://reviews.freebsd.org/D43508

6 months agox86/xen: introduce non-hypercall based emergency print
Roger Pau Monné [Mon, 22 Jan 2024 13:20:25 +0000 (14:20 +0100)]
x86/xen: introduce non-hypercall based emergency print

The current xc_printf() function uses an hypercall in order to send character
buffers to the hypervisor for it to print on the hypervisor console (if the
hypervisor is configured to print such messages).

This requires the hypercall page to be initialized, which is extra work and can
go wrong.

On x86 instead of using the console IO hypercall use the debug console IO port,
also called "port E9 hack".  This allows sending characters to Xen using an
outb instruction, without any initialization required.

Keep the previous hypervisor based implementation by using the weak attribute,
which allows each architecture to provide an alternate (arch-specific)
implementation.

Sponsored by: Cloud Software Group
Reviewed by: markj
Differential revision: https://reviews.freebsd.org/D43929

6 months agox86/xen: fix out of bounds access to the event channel masks on resume
Roger Pau Monné [Mon, 5 Feb 2024 10:47:25 +0000 (11:47 +0100)]
x86/xen: fix out of bounds access to the event channel masks on resume

When resuming from migration or suspension all regular event channels ports are
reset to the INVALID_EVTCHN value, and drivers should re-initialize them
according to the new value provided by the other end of the connection.

However, the driver would first attempt to unbind the event channel handler
before attempting to bind it using the newly provided port.  This unbind uses
the stale event channel port that has been set to INVALID_EVTCHN for some
operations (notably as a result of the handler removal the interrupt subsystem
ends up calling disable intr and source PIC hooks).

This was fine when INVALID_EVTCHN was 0, as then the operation would just
result in pointless setting of the 0 bit in the different event channel related
control arrays (evtchn_{pending,mask} for example).  However with the change to
define INVALID_EVTCHN as ~0 the write is no longer pointless, and we end up
triggering a page-fault, or corrupting random data that happens to be mapped at
the array position + ~0 bits.

In hindsight the change of INVALID_EVTCHN from 0 to ~0 was way more risky than
initially assessed, and I believe has end up resulting in more fragile code for
no real benefit.

Fix the disable intr and source wrappers to check whether the event channel is
valid before attempting to use it.

Also introduce some extra KASSERTs in several array accesses in order to avoid
out of bounds accesses if INVALID_EVTCHN ever reaches those functions.

Fixes: 1797ff962769 ('xen/intr: cleanup event channel number use')
MFC after: 1 week
Sponsored by: Cloud Software Group
Reviewed by: markj
Differential revision: https://reviews.freebsd.org/D43928

6 months agonextboot: check unlink, but only warn on !ENOENT
Warner Losh [Thu, 22 Feb 2024 03:10:45 +0000 (20:10 -0700)]
nextboot: check unlink, but only warn on !ENOENT

Emulate rm -f from the nextboot.sh script: Report all errors, except
ENOENT. This problems show through, except the expected one when
nextboot.conf isn't there.

Sponsored by: Netflix
Reviewed by: rew
Differential Revision: https://reviews.freebsd.org/D44013

6 months agolinux_pwd_onexec: do not abort image activation if emul path does not exist
Konstantin Belousov [Sat, 10 Feb 2024 05:02:18 +0000 (07:02 +0200)]
linux_pwd_onexec: do not abort image activation if emul path does not exist

Instead clear the altroot, if any.

Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D43833

6 months agofdlopen(3): do not create a new object mapping if already loaded
Konstantin Belousov [Thu, 22 Feb 2024 01:18:06 +0000 (03:18 +0200)]
fdlopen(3): do not create a new object mapping if already loaded

This is expected behavior for both dlopen(3) and fdlopen(3).

PR: 277169
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D44019

6 months agobcm5974(4): Properly assign MT-slot on Apple Magic Trackpad
Vladimir Kondratyev [Wed, 21 Feb 2024 20:31:39 +0000 (23:31 +0300)]
bcm5974(4): Properly assign MT-slot on Apple Magic Trackpad

Assign multi-touch slot number based on internal evdev MT state and
reported tracking ID of contact rather than on sequentional number of
contact in report.

Sponsored by: Serenity Cyber Security
Fixes: ef8397c28e98 ("add Magic Trackpad 2 (USB only) support")
MFC after: 1 month

6 months agobcm5974(4): Respect HID_DEBUG option and fix debugging printf
Vladimir Kondratyev [Wed, 21 Feb 2024 20:31:39 +0000 (23:31 +0300)]
bcm5974(4): Respect HID_DEBUG option and fix debugging printf

Sponsored by: Serenity Cyber Security
MFC after: 1 month

6 months agobcm5974(4): Report proper width and depth for Apple Magic Trackpads
Vladimir Kondratyev [Wed, 21 Feb 2024 20:31:38 +0000 (23:31 +0300)]
bcm5974(4): Report proper width and depth for Apple Magic Trackpads

The size of modern Apple Magic Trackpad is about 160x110mm

Sponsored by: Serenity Cyber Security
MFC after: 1 month

6 months agoImport the kernel parts of bhyve/arm64
Andrew Turner [Tue, 9 Jan 2024 15:22:27 +0000 (15:22 +0000)]
Import the kernel parts of bhyve/arm64

To support virtual machines on arm64 add the vmm code. This is based on
earlier work by Mihai Carabas and Alexandru Elisei at University
Politehnica of Bucharest, with further work by myself and Mark Johnston.

All AArch64 CPUs should work, however only the GICv3 interrupt
controller is supported. There is initial support to allow the GICv2
to be supported in the future. Only pure Armv8.0 virtualisation is
supported, the Virtualization Host Extensions are not currently used.

With a separate userspace patch and U-Boot port FreeBSD guests are able
to boot to multiuser mode, and the hypervisor can be tested with the
kvm unit tests. Linux partially boots, but hangs before entering
userspace. Other operating systems are untested.

Sponsored by: Arm Ltd
Sponsored by: Innovate UK
Sponsored by: The FreeBSD Foundation
Sponsored by: University Politehnica of Bucharest
Differential Revision: https://reviews.freebsd.org/D37428

6 months agoarm64: Add TF_LR, it will be used by bhyve asm
Andrew Turner [Wed, 21 Feb 2024 18:24:04 +0000 (18:24 +0000)]
arm64: Add TF_LR, it will be used by bhyve asm

6 months agoarm64: Add a macro to find a VM fault address
Andrew Turner [Wed, 21 Feb 2024 18:17:47 +0000 (18:17 +0000)]
arm64: Add a macro to find a VM fault address

Add a macro to find which bits from far_el2 are needed to be copied
to get the full intermediate physical address (IPA).

The hpfar_el2 register only contains a 4k aligned fault address. We
need to include the lower bits from far_el2 if we need the full
faulting IPA.

6 months agoarm64: Add the TCR_EL2.PS mask
Andrew Turner [Wed, 21 Feb 2024 18:16:43 +0000 (18:16 +0000)]
arm64: Add the TCR_EL2.PS mask

6 months agoarm64: Add ISS_MSR_REG for ESR_ELx.ISS values
Andrew Turner [Wed, 21 Feb 2024 18:10:19 +0000 (18:10 +0000)]
arm64: Add ISS_MSR_REG for ESR_ELx.ISS values

Add a macro to get the ESR_ELx ISS value when we trap accessing a
special register.

6 months agoiicbus/mux/pca954x: add support for PCA9546 I2C Switch
Bjoern A. Zeeb [Wed, 21 Feb 2024 09:10:55 +0000 (09:10 +0000)]
iicbus/mux/pca954x: add support for PCA9546 I2C Switch

Add support for the 4 channel I2C switch from NXP by adding a new
description struct and the list entries.  Compared to x=[2345] which
require code to support the INT, for this one no further changes are
needed.

Tested on: WHLE-LS1088A using a SPF+
MFC after: 1 week
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D44009

6 months agoarm64: Add more spsr_el1 register values
Andrew Turner [Wed, 21 Feb 2024 15:58:20 +0000 (15:58 +0000)]
arm64: Add more spsr_el1 register values

Sponsored by: Arm Ltd

6 months agoloader/efi: Make gcc friendlier by move md_dev
Warner Losh [Wed, 21 Feb 2024 15:50:31 +0000 (08:50 -0700)]
loader/efi: Make gcc friendlier by move md_dev

Move the extern struct devsw md_dev out of the function. gcc is happier
with this arrangemnt often. However, we really should move it to a
header file, but that requires a bit of a rework of md support and
config.

Sponsored by: Netflix
Reviewed by: manu, tsoome
Differential Revision: https://reviews.freebsd.org/D44008

6 months agoloader: Retire CTASSERT
Warner Losh [Wed, 21 Feb 2024 15:48:32 +0000 (08:48 -0700)]
loader: Retire CTASSERT

The project is moving away from CTASSERT in favor of
_Static_assert. Cleanup the few instances in the loader proactively.

Sponsored by: Netflix
Reviewed by: manu, tsoome
Differential Revision: https://reviews.freebsd.org/D44006

6 months agolibsys auxv.c: add fences needed to ensure that flag works
Konstantin Belousov [Wed, 21 Feb 2024 14:12:12 +0000 (16:12 +0200)]
libsys auxv.c: add fences needed to ensure that flag works

Noted by: jrtc27
Sponsored by: The FreeBSD Foundation

6 months agoarm64: Fix the has_hyp check
Andrew Turner [Wed, 21 Feb 2024 12:38:49 +0000 (12:38 +0000)]
arm64: Fix the has_hyp check

boot_el is now the CurrentEL.EL field value. Use the new macros to
implement the has_hyp() check.

Sponsored by: Arm Ltd

6 months agoarm64: Add in_vhe() to find if the kernel is in VHE
Andrew Turner [Thu, 11 Jan 2024 17:01:52 +0000 (17:01 +0000)]
arm64: Add in_vhe() to find if the kernel is in VHE

Add a function to support devices that may need to know if the kernel
has enabled the Armv8.1 Virtulization Host Extensions (FEAT_VHE).
Some devices, e.g. the generic timer, will need to know, e.g. use a
different interrupt.

Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D43973

6 months agoarm64: Use the new CurrentEL macros
Andrew Turner [Thu, 15 Feb 2024 16:13:09 +0000 (16:13 +0000)]
arm64: Use the new CurrentEL macros

Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D43972

6 months agoarm64: Add CurrentEL register definitions
Andrew Turner [Mon, 19 Feb 2024 14:57:34 +0000 (14:57 +0000)]
arm64: Add CurrentEL register definitions

Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D43971

6 months agols.1: Mention CLICOLOR environment variable
Gordon Bergling [Wed, 21 Feb 2024 10:54:58 +0000 (11:54 +0100)]
ls.1: Mention CLICOLOR environment variable

Mention CLICOLOR environment variable in the manual page.

PR: 276556
Submitted by: bsdcode at disroot dot org
Reviewed by: imp
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D43970

6 months agoreboot: Emulate nextboot -D better
Warner Losh [Wed, 21 Feb 2024 06:03:15 +0000 (23:03 -0700)]
reboot: Emulate nextboot -D better

It used to produce no output when the file couldn't be removed. Emulate
that better by unlinking and ignoring errors. It's used at the end of
reboot always, even when the file isn't going to be there.

Sponsored by: Netflix
Fixes: 2c479548119a
6 months agoRevert "rc.d/mountlate: discard output from nextboot"
Robert Wing [Wed, 21 Feb 2024 06:04:15 +0000 (21:04 -0900)]
Revert "rc.d/mountlate: discard output from nextboot"

This reverts commit 4cea0cbcc9d3a6583e5325ca081c09c8a9423172.

Requested by:   imp

6 months agorc.d/mountlate: discard output from nextboot
Robert Wing [Wed, 21 Feb 2024 05:50:43 +0000 (20:50 -0900)]
rc.d/mountlate: discard output from nextboot

silent the warning seen at boot:

    Mounting late filesystems:.
    nextboot: unlink /boot/nextboot.conf: No such file or directory

    Sun Feb 18 23:31:52 AKST 2024

    FreeBSD/amd64 (main) (ttyv0)

    login:

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

6 months agoice_ddp: Update package to 1.3.36.0
Eric Joyner [Tue, 13 Feb 2024 06:39:21 +0000 (22:39 -0800)]
ice_ddp: Update package to 1.3.36.0

This is intended to be used with the upcoming ice 1.39.13-k
driver update, but is still backwards compatible with
previous versions of the driver.

Signed-off-by: Eric Joyner <erj@FreeBSD.org>
MFC after: 3 days
Sponsored by: Intel Corporation

6 months agosys/kern: Remove a few sys/cdefs.h around some elf things
Warner Losh [Wed, 21 Feb 2024 03:40:19 +0000 (20:40 -0700)]
sys/kern: Remove a few sys/cdefs.h around some elf things

These sys/cdefs.h are no longer needed. Remove them in advance of
other work in this area.

Sponsored by: Netflix

6 months agokboot: Fix zfs bootonce protocol
Warner Losh [Wed, 21 Feb 2024 03:26:08 +0000 (20:26 -0700)]
kboot: Fix zfs bootonce protocol

This wasn't updated when the other copies were updated. Make it
identical to efi code. We should likely refactor this (with userboot),
but they are all not quite identical.

Sponsored by: Netflix

6 months agoloader: For the mini-stdio we have for lua, #define them to something else
Warner Losh [Wed, 21 Feb 2024 03:31:50 +0000 (20:31 -0700)]
loader: For the mini-stdio we have for lua, #define them to something else

To make it easier to port lua and some of the lua modules, we have a
series of routines to implement the stdio routines, even though we don't
normally implement them in the boot loader. Add a comment to this effect.

Also, some tools, like sanitizers and static analysis tools, make
unwarranted assumptions about these, so #define them to a different name
so they stop.

Sponsored by: Netflix

6 months agobearssl: Make shared library link
Warner Losh [Wed, 21 Feb 2024 03:31:41 +0000 (20:31 -0700)]
bearssl: Make shared library link

Creating a lua shared library module linking against libbearssl.so won't
load w/o these functions.

Sponsored by: Netflix
Reviewed by: sjg
Differential Revision: https://reviews.freebsd.org/D43982

6 months agoloader/libofw: Fix disk size truncation
Justin Hibbits [Tue, 20 Feb 2024 22:08:54 +0000 (17:08 -0500)]
loader/libofw: Fix disk size truncation

At present OF_ioctl first multiplies, then casts to 64-bit, meaning at
the asm level it truncates the result to 32-bit, then zero-extends it to
64-bit to return.  Cast `n` to 64-bit before multiplying, so that the
correct result is returned.

6 months agobhyve: Add support for XML register definitions
Mark Johnston [Wed, 21 Feb 2024 00:21:29 +0000 (19:21 -0500)]
bhyve: Add support for XML register definitions

This is useful for exposing additional registers to debuggers.  For
instance, control registers are now available on amd64 when using gdb to
debug a guest.

The stub indicates support by including the string
"qXfer:features:read+" in its feature list.  The debugger queries for
target descriptions by sending the query "qXfer:features:read:" followed
by a file path.

The XML definitions are copied from QEMU and installed to
/usr/share/bhyve/gdb.

Note that we currently don't handle the SIMD registers at all, since
that's of somewhat limited utility (for me at least) and since that
requires new ioctls to fetch the register values.

Reviewed by: jhb
MFC after: 2 weeks
Sponsored by: Innovate UK
Differential Revision: https://reviews.freebsd.org/D43666

6 months agolibsys: disable ssp
Konstantin Belousov [Tue, 20 Feb 2024 15:13:26 +0000 (17:13 +0200)]
libsys: disable ssp

Reviewed by: brooks, imp
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D43985

6 months agolibsys: move errno to libsys
Konstantin Belousov [Tue, 20 Feb 2024 15:13:09 +0000 (17:13 +0200)]
libsys: move errno to libsys

Before, the 'errno' itself was defined in libc and was referenced by
libsys, causing undesired dependency.

Reviewed by: brooks, imp
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D43985

6 months agolibsys: remove usage of pthread_once and _once_stub
Konstantin Belousov [Tue, 20 Feb 2024 14:45:29 +0000 (16:45 +0200)]
libsys: remove usage of pthread_once and _once_stub

that existed in auxv.c, use simple bool gate instead. This leaves a
small window if two threads try to call _elf_aux_info(3) simultaneously.
The situation is safe because auxv parsing is really idempotent. The
parsed data is the same, and we store atomic types (int/long/ptr) so
double-init does not matter.

Reviewed by: brooks, imp
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D43985

6 months agolibsys: internalize memcpy, memset, and strlcpy
Konstantin Belousov [Tue, 20 Feb 2024 14:28:37 +0000 (16:28 +0200)]
libsys: internalize memcpy, memset, and strlcpy

Reviewed by: brooks, imp
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D43985

6 months agortld: remove pointless "extern"
Konstantin Belousov [Tue, 20 Feb 2024 14:25:48 +0000 (16:25 +0200)]
rtld: remove pointless "extern"

Reviewed by: brooks, imp
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D43985

6 months agotests/sigsys: initialize parameter passed to sysctlbyname()
Gleb Smirnoff [Tue, 20 Feb 2024 22:37:45 +0000 (14:37 -0800)]
tests/sigsys: initialize parameter passed to sysctlbyname()

6 months agotests/fdgrowtable: remove always true check
Gleb Smirnoff [Tue, 20 Feb 2024 22:31:06 +0000 (14:31 -0800)]
tests/fdgrowtable: remove always true check

We are always the parent in this code path.

6 months agotests/fdgrowtable: open more files in the threaded case
Gleb Smirnoff [Tue, 20 Feb 2024 22:31:06 +0000 (14:31 -0800)]
tests/fdgrowtable: open more files in the threaded case

This should fix the test failing on some machines/conditions/runs.  This
won't fix failures in standalone run, but should fix kyua(1) runs.
Currently with standalone run it will usually fail because the 40-sized
allocation is skipped (see details below).

This matches what forking test does: open 128 files in the parent and 128
in the child.  There should actually be no difference where and when the
files are open, but let's mimic the forking test, and open more files in
the spawned thread.  Also opening from two different contexts adds a bit
more entropy to the test.

What the test does it checks that fdgrowtable() has been called at least
three tmes for the test process, and the old tables are still on the free
list as long as other execution contexts exist.  Under kyua(1) control the
first call grows the table from 20 to 40, but the original table of 20 is
an embedded one, thus is not put on the free list.  Passing 40 open files
the table grows to 128 and first old table lands on the free list. Passing
128 open file the table grows to 256 and a second old table lands on the
free list.  After that the test would pass.  The threaded test was one
open file off before this fix sometimes.

6 months agomd5: Untabify declarations.
Dag-Erling Smørgrav [Tue, 20 Feb 2024 22:04:45 +0000 (23:04 +0100)]
md5: Untabify declarations.

MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: imp, allanjude, markj
Differential Revision: https://reviews.freebsd.org/D43991

6 months agomd5: Fix GNU check mode.
Dag-Erling Smørgrav [Tue, 20 Feb 2024 22:04:40 +0000 (23:04 +0100)]
md5: Fix GNU check mode.

Fixes: 9b20849bc5f1b500f2de7aeca77f0e6556069bbb
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: imp, allanjude, markj
Differential Revision: https://reviews.freebsd.org/D43990

6 months agomd5: Fix Perl mode long options.
Dag-Erling Smørgrav [Tue, 20 Feb 2024 22:04:36 +0000 (23:04 +0100)]
md5: Fix Perl mode long options.

MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: imp, allanjude, markj
Differential Revision: https://reviews.freebsd.org/D43989

6 months agomd5: Add test case for GNU input modes.
Dag-Erling Smørgrav [Tue, 20 Feb 2024 22:04:32 +0000 (23:04 +0100)]
md5: Add test case for GNU input modes.

MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: allanjude, markj
Differential Revision: https://reviews.freebsd.org/D43988

6 months agotests/arp: test arp -s/-S work
Gleb Smirnoff [Tue, 20 Feb 2024 18:32:03 +0000 (10:32 -0800)]
tests/arp: test arp -s/-S work

Install permanent entry, try to modify it, check that
net.link.ether.inet.log_arp_permanent_modify works.

6 months agotests/arp: when checking 'arp -d' check that entry is removed
Gleb Smirnoff [Tue, 20 Feb 2024 18:32:03 +0000 (10:32 -0800)]
tests/arp: when checking 'arp -d' check that entry is removed

Previous check trusted the "entry was deleted" output of the command.
Improved check does additional request to make sure that entry is not
returned.

6 months agoarp: fix arp -s/-S
Gleb Smirnoff [Tue, 20 Feb 2024 18:31:05 +0000 (10:31 -0800)]
arp: fix arp -s/-S

When setting a permanent ARP entry, the route(4) would use
rtm->rtm_rmx.rmx_expire == 0 as a flag for installing a static entry, but
netlink(4) is looking for explicit NTF_STICKY flag in the request.  The
arp(8) utility was adopted to use netlink(4) by default, but it has lots
of route-era guts internally. Specifically there is global variable 'opts'
that shares configuration for both protocols, and it is still initialized
with route(4) specific RTF_xxx flags.  In set_nl() these flags are
translated to netlink(4) parameters. However, RTF_STATIC is a flag that is
never set by default, so attempt to use it as a proxy flag manifesting
-s/-S results in losing it.  Use zero opts.expire_time as a manifest of
-s/-S operation.  This is a minimal fix.  A better one would be to fully
get rid of route(4) legacy.

The change also corrects the logic to set NUD_PERMANENT flag for
consistency.  This flag is ignored by our kernel (now).

Reviewed by: melifaro, tuexen, emaste
PR: 277063
Fixes: 6ad73dbf65048b0950a1ba6ff25607f6708c8954
Differential Revision: https://reviews.freebsd.org/D43983

6 months agoiwm.4: add iwlwifi cross-reference
Ed Maste [Tue, 20 Feb 2024 16:43:00 +0000 (11:43 -0500)]
iwm.4: add iwlwifi cross-reference

iwlwifi(4) supports a superset of the devices supported by iwm(4).  The
latter may be retired in the future (if there is no reason to prefer it
for the set of devices supported by both).

Sponsored by: The FreeBSD Foundation

6 months agomsdosfs: fix potential inode collision on FAT12 and FAT16
Stefan Eßer [Tue, 20 Feb 2024 12:02:24 +0000 (13:02 +0100)]
msdosfs: fix potential inode collision on FAT12 and FAT16

FAT file systems do not use inodes, instead all file meta-information
is stored in directory entries.

FAT12 and FAT16 use a fixed size area for root directories, with
typically 512 entries of 32 bytes each (for a total of 16 KB) on hard
disk formats. The file system data is stored in clusters of typically
512 to 4096 bytes, depending on the size of the file system.

The current code uses the offset of a DOS 8.3 style directory entry as
a pseudo-inode, which leads to inode values of 0 to 16368 for typical
root directories with 512 entries.

Sub-directories use 2 cluster length plus the byte offset of the
directory entry in the data area for the pseudo-inode, which may be
as low as 1024 in case of 512 byte clusters. A sub-directory in
cluster 2 and with 512 byte clusters will therefore lead to a
re-use of inode 1024 when there are at least 32 DOS 8.3 style
filenames in the root directory (or 11 14-character Windows
long file names, each of which takes up 3 directory entries).

FAT32 file systems are not affected by this issue and FAT12/FAT16
file systems with larger cluster sizes are unlikely to have as
many directory entries in the root directory as are required to
cause the collision.

This commit leads to inode numbers that are guaranteed to not collide
for all valid FAT12 and FAT16 file system parameters. It does also
provide a small speed-up due to more efficient use of the vnode cache.

Approved by: mckusick
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D43978

6 months agotools/net80211/wlanwatch: Remove obsolete code.
Joseph Koshy [Mon, 19 Feb 2024 16:46:45 +0000 (16:46 +0000)]
tools/net80211/wlanwatch: Remove obsolete code.

The symbol NI_WITHSCOPEID has not been defined by <netdb.h> since
May 2005 (since SVN r146690).

6 months agonextboot: fix nextboot -k on ZFS
Gleb Smirnoff [Tue, 20 Feb 2024 03:51:22 +0000 (19:51 -0800)]
nextboot: fix nextboot -k on ZFS

zfsbootcfg(1) expects pool name to operate on, not currently mounted
filesystem name.

Fixes: fd6d47375a78fbf0737012b7cc11180291781e8b

6 months agonextboot: fix typo that merged two args into one
Gleb Smirnoff [Tue, 20 Feb 2024 03:51:22 +0000 (19:51 -0800)]
nextboot: fix typo that merged two args into one

Fixes: fd6d47375a78fbf0737012b7cc11180291781e8b

6 months agoEliminate unnecessary UFS1 integrity checks.
Kirk McKusick [Tue, 20 Feb 2024 00:16:07 +0000 (16:16 -0800)]
Eliminate unnecessary UFS1 integrity checks.

The UFS1 integrity checks added in FreeBSD 14 were too aggressive
for UFS1 filesystems created in FreeBSD 4 and 9 systems. This patch
removes those tests which can be done safely since they are not
relevant to the current implementation of UFS1.

This is a follow-on report to bug report 264450 (comments 21-28).

Reported by: slb@sonnet.com
Tested by:   slb@sonnet.com
PR:          264450
MFC after:   1 week

6 months agozlib: use more memory for a small deflate speedup.
Xin LI [Mon, 19 Feb 2024 23:01:04 +0000 (15:01 -0800)]
zlib: use more memory for a small deflate speedup.

The LIT_MEM option uses slightly more memory (for base gzip(1),
about 16kiB; according to the author, about 6% for default deflate
settings) for a small speedup.

The performance gain is more noticeable for input data with higher
entropy and less significant for data that is highly compressible,
such as source code and logs.

MFC after: 1 month

6 months agolib{c,thr}: add DT_RUNPATH for gcc -m32
Brooks Davis [Mon, 19 Feb 2024 22:44:08 +0000 (22:44 +0000)]
lib{c,thr}: add DT_RUNPATH for gcc -m32

To allow gcc -m32 to work, link libc and libthr with --rpath-/usr/lib32.
When called with -m32, gcc is currently unable to communicate to
the bfd linker that it should look in /usr/lib32 to resolve needed (as
opposed to explicitly linked) libraries so we need to provide a hint.

See also: https://sourceware.org/bugzilla/show_bug.cgi?id=31395

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

6 months agolib{c,sys}: move auxargs more firmly into libsys
Brooks Davis [Mon, 19 Feb 2024 22:44:08 +0000 (22:44 +0000)]
lib{c,sys}: move auxargs more firmly into libsys

Continue to filter the public interface (elf_aux_info()), but entierly
relocate the private interfaces (_elf_aux_info(),
__init_elf_aux_vector(), and __elf_aux_vector) to libsys.

This ensures that rtld updates the correct (only) copy of
__elf_aux_vector.  After 968a18975adc9c2a619bb52aa2f009de99fc9e24
updates were confused and __getosreldate was failing, causing
the system to fall back to compat compat12 syscalls in some cases.

Return to explicitly linking libc to libsys and link libthr with libc
and libsys (in that order).

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

6 months agols: Fix -v and associated test
Warner Losh [Mon, 19 Feb 2024 16:48:05 +0000 (09:48 -0700)]
ls: Fix -v and associated test

The cleanup of d854370fa86b7 had a cut and paste error (so f_verssort
was set to 1 and then to 0 rather thame f_timesort being set to 0).

Fixes: d854370fa86b7
Sponsored by: Netflix

6 months agoumtxvar.h: Add missing include
Olivier Certner [Thu, 8 Feb 2024 20:11:17 +0000 (21:11 +0100)]
umtxvar.h: Add missing include

Necessary to have the definition of 'struct timespec'.

No functional change.

Approved by:        markj (mentor)
MFC after:          3 days
Sponsored by:       The FreeBSD Foundation

6 months agosched: sched_switch(): Factorize sleepqueue flags
Olivier Certner [Tue, 16 Jan 2024 09:42:11 +0000 (10:42 +0100)]
sched: sched_switch(): Factorize sleepqueue flags

Avoid duplicating common flags for the preempted and non-preempted
cases, making it clear that they are the same without resorting to
formatting.

No functional change.

Approved by:        markj (mentor)
MFC after:          3 days
Sponsored by:       The FreeBSD Foundation

6 months agocommitters-src: Add bnovkov@ with markj@ and jhb@ as mentors
Bojan Novković [Mon, 19 Feb 2024 15:55:31 +0000 (16:55 +0100)]
committers-src: Add bnovkov@ with markj@ and jhb@ as mentors

Add mentorship information for bnovkov@.

Approved by:  markj (mentor)
Differential Revision: https://reviews.freebsd.org/D43963

6 months agonet80211: Fix two typos in kernel messages
Gordon Bergling [Mon, 19 Feb 2024 11:08:07 +0000 (12:08 +0100)]
net80211: Fix two typos in kernel messages

- s/defered/deferred/

MFC after: 5 days

6 months agoiov.h: Fix a typo in a source code comment
Gordon Bergling [Mon, 19 Feb 2024 11:02:57 +0000 (12:02 +0100)]
iov.h: Fix a typo in a source code comment

- s/subystem/subsystem/

MFC after: 3 days

6 months agougen: fix USB_IFACE_DRIVER_ACTIVE after detaching a driver
Andriy Gapon [Mon, 19 Feb 2024 10:44:00 +0000 (12:44 +0200)]
ugen: fix USB_IFACE_DRIVER_ACTIVE after detaching a driver

Previosuly, USB_IFACE_DRIVER_ACTIVE would report that the driver is
active even after it detached.  That's because a device(9) still
remains.

So, add device_is_alive(9) check for more accurate reporting.

Reviewed by: markj
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D43960

6 months agoscsi_da: add 4K quirks for Samsung SSD 860 and 870
Andriy Gapon [Mon, 19 Feb 2024 10:16:47 +0000 (12:16 +0200)]
scsi_da: add 4K quirks for Samsung SSD 860 and 870

Although the actual flash page size is either 8K or 16K for those
devices (according to different sources of various reliability), they
seem to be optimized for the "industry-standard" emulated 4K block size.

To do: consolidate very similar Samsung SSD entries for 830 - 870
models.

MFC after: 2 weeks

6 months agoata_da: add quirk to disable NCQ TRIM for Samsung 860/870 SSDs
Andriy Gapon [Mon, 19 Feb 2024 10:08:12 +0000 (12:08 +0200)]
ata_da: add quirk to disable NCQ TRIM for Samsung 860/870 SSDs

NCQ TRIM for Samsung 860/870 SSDs results in data corruption on systems
with some SATA controllers.

This can be easily reproduced using ZFS which uses TRIM and is able to
detect block content changes.

Linux bug report for this issue:
 https://bugzilla.kernel.org/show_bug.cgi?id=201693

Since at present we can not limit a quirk based on the contorller / SIM,
apply the quirk in all cases.

Reviewed by: imp
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D43961

6 months agondp(8): increase buffer size in rtsock mode
Boris Lytochkin [Mon, 19 Feb 2024 07:44:52 +0000 (10:44 +0300)]
ndp(8): increase buffer size in rtsock mode

On a router with many connected devices (~10k+) `ndp -an` can fail
with ENOMEM because of some additional NDP records were added
between sysctl() buffer size estimate and data fetch calls.

Allocate more space based on size estimate: 1/64 (~2%) of additional
space, but not less that 4 m_rtmsg structures.

Obtained from: Yandex LLC
MFC after: 2 weeks
Sponsored by: Yandex LLC
Differential Revision: https://reviews.freebsd.org/D43956

6 months agoada: Another NCQ Trim instability drive
Warner Losh [Mon, 19 Feb 2024 05:10:55 +0000 (22:10 -0700)]
ada: Another NCQ Trim instability drive

The Seagate IronWolf 110 SATA SSD drive has been reported to be unstable
with NCQ trim enabled.

PR: 264139
Sponsored by: Netflix