Commit Graph

306631 Commits

Author SHA1 Message Date
Enji Cooper b78806b156 Remove additional libtpool and libuutil-related files
This change removes additional library files and tests orphaned in the
commit referenced below.

MFC with:	8b78d412a
Fixes: 8b78d412a ("zfs: world changes after 89f729dcc merge")
2026-02-03 23:33:04 -08:00
Brad Smith 3f3cc6fd69 if_rge: sync with up to date OpenBSD code
e574c2d36cbcacf2556088879be336775e80154b
Add support for RTL8125D revision 0x6890000

Reviewed by:	adrian
Differential Revision:	https://reviews.freebsd.org/D54922
MFC after: 2 weeks
2026-02-03 22:29:10 -08:00
Kristof Provost fe9e4eb6f3 pf: fix use of uninitialised variable
In pf_match_rule() we attempt to append matching rules to the end of
'match_rules'. We want to preserve the order to make the multiple
pflog entries easier to understand. So we keep track of the last added
rule item in 'rt'. However, that assumed that 'match_rules' was only
ever added to in that one call to pf_match_rules(). This isn't always
the case, for example if we have match rules in different anchors.
In that case we'd end up using the uninitialised 'rt' variable in the
SLIST_INSERT_AFTER call.

Instead track the match rules and the last matching rule (to enable
easy appending) in the struct pf_test_ctx.
This also allows us to reduce the number of arguments for some
functions, because we passed a ctx to most functions that needed
'match_rules'.

While here also make pf_match_rules() static, because it's only ever
used in pf.c

Add a test case to exercise the relevant code path.

MFC after:	2 weeks
Sponsored by:	Rubicon Communications, LLC ("Netgate")
2026-02-03 23:51:28 +01:00
Olivier Certner 895e1c6567 sysctl(9): Booleans: Fix old value length discovery
When calling sysctl(3) with a null 'oldp', i.e., length discovery mode,
'oldix' can be equal to 'oldlen', and we should not fail.

More generally, let SYSCTL_OUT() and SYSCTL_IN() handle corner cases,
simply removing the comparisons between 'oldidx' and 'oldlen' and
'newidx' and 'newlen' done by hand as the test just after is an equality
that does not require to know if 'idx' is smaller than 'len'.

PR:             292917
Reported by:    cy
Fixes:          406da392ef ("sysctl(9): Booleans: Accept integers to ease knob conversion")
Sponsored by:   The FreeBSD Foundation
2026-02-03 23:43:49 +01:00
Bjoern A. Zeeb 8df7af9c9e LinuxKPI: string_choices.h: use ternary operator
Switch from using if () else to a direct return (?:) code.
No functional changes.

Suggested by:	kib (D55029)
Sponosred by:	The FreeBSD Foundation
MFC after:	3 days
Reviewed by:	emaste (before removing more () as suggested by him)
Differential Revision: https://reviews.freebsd.org/D55088
2026-02-03 20:00:12 +00:00
Mark Johnston 2d0564b9da vmm: Remove an unneeded NULL pointer check
sc->vm is unconditionally dereferenced earlier in this function.  No
functional change intended.

Reviewed by:	bnovkov
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D55069
2026-02-03 19:09:44 +00:00
Mark Johnston 8cfa6ddcee vmm: Fix a resource leak in an error path
vmmdev_create() increments the VM count as its last step and calls
vmmdev_destroy() if it fails.  However, vmmdev_destroy() unconditionally
decrements the count.

Correct this bug by reordering operations.

Fixes:		1092ec8b33 ("kern: Introduce RLIMIT_VMM")
Reviewed by:	bnovkov
Differential Revision:	https://reviews.freebsd.org/D55068
2026-02-03 19:09:28 +00:00
Bjoern A. Zeeb 6ea242cc30 LinuxKPI: add str_read_write()
Needed by a wireless driver.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
Reviewed by:	kib, emaste
Differential Revision: https://reviews.freebsd.org/D55029
2026-02-03 18:39:30 +00:00
Warner Losh cbb7441245 nvmecontrol: Pass 1 to uint8_t arg
The rae arg is uint8_t (which we then shift over to the right bit. Pass
'1' instead of 'true' here to match the interface. While true is
promoted to (uint8_t)1, we don't use it as a bool in read_logpage().

Fixes:			5322eec86ae4 ("nvmecontrol: Always set the RAE bit on telemetry-log requests")
Sponsored by:		Netflix
Reviewed by:		chs
Differential Revision:	https://reviews.freebsd.org/D55060
2026-02-03 10:34:36 -07:00
Andrew Turner a4f0e93c51 arm64/vmm: Set and use the fine-grained traps
Set the Fine-grained trap registers to trap any features we don't
support. These are expected to be more useful when we support nested
virtualisation, so for now just the base features and GICv3 are not
trapped.

As nested virtualisation will require VHE we only set the fine-grained
trap registers when VHE is used.

Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D54687
2026-02-03 17:14:44 +00:00
Andrew Turner 095a7871f4 arm64/vmm: Add HYP_FEAT_FGT{,2}
Add the macros and detection for Fine-grained traps (FEAT_FGT and
FEAT_FGT2).

Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D54686
2026-02-03 17:14:26 +00:00
Andrew Turner 4f82ce5191 arm64: Add the Fine-Grained Trap registers
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D54685
2026-02-03 17:14:03 +00:00
Andrew Turner 2f3f5055e7 virtio_p9fs: Use VIRTIO_SIMPLE_PNPINFO
This allows us to also use the common VIRTIO_SIMPLE_PROBE and to have
devmatch load the driver when detected.

Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D54684
2026-02-03 17:13:35 +00:00
Andrew Turner 32d1f18865 libc/aarch64: Add memset for a 64 byte dc zva
On arm64 we can use the "dc zva" instruction to zero memory. The CPU
tells software if the instruction is implemented, and if so the size
and alignment it will use.

When the size is 64-bytes the Arm Optimized Routines implementation of
memset can use dc zva to zero memory, and has a build flag to skip
checking.

Use this flag to build a version of memset that will be used when this
assumption is true.

Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D54776
2026-02-03 17:11:51 +00:00
Andrew Turner f0516ed465 libc/aarch64: Split out the MOPS functions
This allows static binaries to only include the functions they
reference.

Reviewed by:	imp
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D54775
2026-02-03 17:11:50 +00:00
Andrew Turner 00f6839213 libc/aarch64: Add a Makefile.inc dependency
If we update Makefile.inc it may be to change the contents of these
files.

Reviewed by:	imp
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D54774
2026-02-03 17:11:50 +00:00
Olivier Certner e401e6d3fc acpi: 'hw.acpi.s4bios' sysctl: Change type to bool, expand description
Another boolean, indicating hardware support, will be introduced in next commit.

Thanks to the previous commit modifying sysctl_handle_bool(), this
change is backwards-compatible with old programs using an integer in and
out of sysctl(3).

Reviewed by:    obiwac
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D54626
2026-02-03 18:19:08 +01:00
Olivier Certner 7f031c9f6b acpi: Move sysctl tree set up at end of initialization
Setting up the sysctl tree later:
1. Fixes not de-registering sysctl knobs on failure to attach.
2. Avoids having inconsistent knob values exposed during a brief moment.

Reviewed by:    imp, obiwac
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D54926
2026-02-03 18:19:08 +01:00
Olivier Certner 406da392ef sysctl(9): Booleans: Accept integers to ease knob conversion
In sysctl_handle_bool(), if the output buffer (for the old value) has
room for exactly 4 bytes (sizeof(int)), then output the current boolean
value as an integer rather than a 'uint8_t'.  Conversely, if 4 bytes
exactly remain in the input buffer (for the new value), treat them as an
integer and derive the new boolean value from it.

Doing so allows to convert existing integer syscstl knobs that are
interpreted as a boolean into true boolean ones while staying
backwards-compatible.

That brings no drawback as no code currently uses sysctl_handle_bool()
as part of a series of calls to sysctl_handle_*() functions for
(de)serialization of some compound structure.  If that case ever
materializes, it can be easily solved, e.g., by creating
a sysctl_handle_bool_strict() variant.

In the future, we might want to go further and generally be more liberal
in the external type of integers we accept and output, by tolerating any
kind of supported integers (8-bit to 64-bit), enabling integer type
changes of knob's internal representations without breaking the ABI for
consumers hardcoding the passed integers (instead of relying on sysctl
knob type information).

Reviewed by:    jhb
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D54925
2026-02-03 18:19:07 +01:00
Olivier Certner 53bb02015f amd64: parse_memmap(): Move comment about size at proper place
While here, declare 'size' only in the relevant block.

No functional change (intended).

MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
2026-02-03 18:19:00 +01:00
Gleb Smirnoff 64f7e3c9c1 sockets: let protocols be responsible for socket buffer mutexes
Sockets that implement their own socket buffers (marked with PR_SOCKBUF)
are now also responsible for initialization of socket buffer mutexes in
pr_attach and for destruction in pr_detach (or pr_close).

This removes a big bunch of reported LORs, as now WITNESS is able to see
that tcp(4) socket buffer mutex and netlink(4) socket buffer mutex are two
different things.  Distinct names also improve diagnostics for blocked
threads.

This also removes a hack from unix(4), where we used to mtx_destroy().
Also removes an innocent bug from unix(4) where for accept(2)-ed socket
soreserve() was called twice.  This one was innocent since first call to
soreserve() was asking for 0 bytes of space.

This slightly increased amount of pasted code in TCP's syncache_socket().
The problem is that while for sockets created with socket(2) it is
pr_attach responsible for call to soreserve() (including !PR_SOCKBUF
protocols), but for the sockets created with accept(2) it was
solisten_clone() doing soreserve(), combined with the fact that for
accept(2) TCP completely bypasses pr_attach. This all should improve once
TCP has its own socket buffers.

Reviewed by:		markj
Differential Revision:	https://reviews.freebsd.org/D54984
2026-02-03 09:09:49 -08:00
John Baldwin dbe9fa0be1 Makefile.inc1: Don't mark GCC broken for riscv64
Reviewed by:	mhorne
Differential Revision:	https://reviews.freebsd.org/D54969
2026-02-03 11:56:44 -05:00
Artem Bunichev 9555d80066 sh.1: Fix rendering error due to redundant .El
Due to this all the rest of the items in the Built-in Commands section
were not rendered at all.

Fixes: 2711852bd9 ("sh.1: Provide detailed job control documentation")
MFC after:		3 days
Reviewed by:		emaste, ziaee
Differential Revision:	https://reviews.freebsd.org/D55080
2026-02-03 11:20:26 -05:00
Ali Mashtizadeh c215eef345 libpmc: Fix the L3 counters for AMD Zen 1-4
On AMD processors libpmc was using the topic field (based on filename) to
determine the counter's subclass.  Unfortunately, the JSON definitions for
AMD Zen 1-4 have the L3 counters in files shared with other counters.

This change has libpmc to use the pmu field (which is derived from the Unit
field in JSON) to determine the correct counter subclass.

Reviewed by:	mhorne
MFC after:	2 weeks
Sponsored by:	Netflix
Pull Request:	https://github.com/freebsd/freebsd-src/pull/1984
2026-02-03 11:21:50 -04:00
Justin Hibbits 9345091308 powerpc/pmap: Use a constant for HPT superpage shift
There are no plans to allow multiple sizes of HPT superpages, so just use a
constant for it.

MFC after:	3 weeks
Fixes:		1bc75d77e9 ("powerpc/pmap/oea64: Make PV_LOCK superpage sized")
2026-02-03 10:15:24 -05:00
Aymeric Wibo 9d4bad45e2 EVENTHANDLER.9: EVENTHANDLER_REGISTER never fails
Since ecdf4409f9 ("Rework the eventhandler locking [...]"),
EVENTHANDLER_REGISTER() can never return NULL.

Suggested by:	olce
Reviewed by:	olce, ziaee, zlei
Approved by:	olce, zlei
Fixes:	ecdf4409f9 ("Rework the eventhandler locking [...]")
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D55014
2026-02-03 15:56:40 +01:00
Jean-Sébastien Pédron 465ba08bb5 vm_phys: Check RB_FIND() return value in case it is NULL
When trying to unregister a fictitious range in
`vm_phys_fictitious_unreg_range()`, the function checks the properties
of the looked up segment, but it does not check if a segment was found
in the first place.

This can happen with the amdgpu DRM driver which could call
`vm_phys_fictitious_unreg_range()` without a fictitious range registered
if the initialisation of the driver failed (for example because
firmwares are unavailable).

The code in the DRM driver was improved to avoid that, but
`vm_phys_fictitious_unreg_range()` should still check the return value
of `RB_FIND()` before trying to dereference the segment pointer and
panic with a page fault.

Reviewed by:	emaste
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55076
2026-02-03 15:44:55 +01:00
Dag-Erling Smørgrav d70b9eb74f libc/tests: Clean up *dir() tests
Mainly, avoid reusing the name of one of the functions we should be
testing (but aren't) for local variables.

Sponsored by:	Klara, Inc.
Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D55054
2026-02-03 15:39:32 +01:00
Olivier Certner 9ae367d11d hwpstate_amd(4): Rename CPPC register macros
To be closer to AMD's official terminology, except for the "Lowest
Non-Linear Performance" field which we label as 'EFFICIENT_PERF' closer
to Intel's ("Most Efficient Performance"), and to clear possible
confusion.

No functional change (intended).

Reviewed by:    aokblast
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D54998
2026-02-03 15:03:02 +01:00
Olivier Certner 4b0e09a918 hwpstate_amd(4): Fix BITS_WITH_VALUE()/SET_BITS_VALUE() to obey the mask
While here, rename an argument of BITS_VALUE() to be consistent with the
other macros.

Reviewed by:    aokblast
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D54997
2026-02-03 15:03:02 +01:00
Olivier Certner e5f8cbb86d x86: x86_msr_op(): MSR_OP_LOCAL: Disable interrupts on atomic ops
On MSR_OP_LOCAL and non-naturally-atomic operations (MSR_OP_ANDNOT and
MSR_OP_OR), there is no guarantee that we are not interrupted between
reading and writing the MSR, and that interruption could actually
perform some operation on that MSR, which would be lost.

Prevent that problem by temporarily disabling interrupts around MSR
manipulation.

Reviewed by:    kib
Discussed with: markj
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D54996
2026-02-03 15:03:01 +01:00
Olivier Certner a1a8bcdfde x86: x86_msr_op(): Simplify assertions
Simplify them by moving them into more natural places, i.e., default
cases of 'switch' statements.

No functional change (intended).

Reviewed by:    kib
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D54996
2026-02-03 15:03:01 +01:00
Olivier Certner 7acd7ac638 x86: x86_msr_op(): Move setting mode up, delineate logical blocks
No functional changes (intended).

Reviewed by:    kib
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D54996
2026-02-03 15:02:55 +01:00
Konstantin Belousov cd8d44173a unmount(2): do not allow MNT_DEFERRED or MNT_RECURSE flags from userspace
Repprted and tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2026-02-03 12:25:47 +02:00
Enji Cooper e1f36b9db9 usr.bin/tftp: remove tests when MK_TFTP=no
These tests require the tftp client, which is not installed when
`MK_TFTP=no`. Remove them when that's not true.

MFC after:	1 week
2026-02-02 21:44:47 -08:00
Enji Cooper 7baa76c30c usr.bin/factor: remove tests when MK_GAMES=no
factor(1) is only installed when MK_GAMES != no. Ergo, remove the tests
when that's not true.

MFC after:	1 week
2026-02-02 21:42:03 -08:00
Enji Cooper 1ccee516ed tftpd: remove tests when MK_TFTP=no
MFC after:	1 week
2026-02-02 21:24:33 -08:00
Enji Cooper fd6217075e tftpd tests: clean trailing whitespace
No functional change intended.

MFC after:	1 week
2026-02-02 21:19:08 -08:00
Enji Cooper 51509500ac Remove bsnmpd tests when MK_BSNMP == no
MFC after:	1 week
2026-02-02 21:12:25 -08:00
Kyle Evans e6fa918c4a tpm: crb: add support for the Pluton startmethod
The Pluton startmethod uses a simple doorbell mechanism to wakeup the
TPM unit after we've issued various forms of state change, with the
registers to use specified in the startmethod-specific segment of the
TPM2 table (up to 12 bytes after the StartMethod).

At the very least, this is the kind of TPM in use by my AMD Zen 4-based
Minisforum machine.

Differential Revision:	https://reviews.freebsd.org/D53683
2026-02-02 22:48:32 -06:00
Justin Hibbits 1bc75d77e9 powerpc/pmap/oea64: Make PV_LOCK superpage sized
HPT superpages are 16MB, not 2MB.  Taking 8 locks to lock a super page
almost defeats the purpose of using the super page.  Expanding the
PV_LOCK scope to cover 16MB (24 bit shift) reduces this to a single
lock.

MFC after:	3 weeks
2026-02-02 23:33:36 -05:00
Justin Hibbits 7f885581d5 powerpc/pmap: Mark more CPUs as lockless TLBIE
Add POWER10 and POWER11 to the list of lockless TLBIE capable CPUs.
According to Linux, anything POWER5 and later should be able to do this,
but that hasn't been tested with FreeBSD.  POWER10 and POWER11, being
derived after the POWER9, implicitly have this capability per the ISA
spec.

MFC after:	1 week
2026-02-02 23:33:20 -05:00
Abdelkader Boudih ed3a2469a7 uart: fix sleeping while holding mutex in uart_tty_detach()
Move swi_remove() call before acquiring the tty lock. swi_remove() calls
intr_event_remove_handler() which may sleep via msleep(), causing a lock
order violation when called with the tty mutex held.

The software interrupt handler removal operates on the interrupt event
structure independently and does not require the tty lock. This matches
the pattern used in other drivers such as tcp_hpts.c where swi_remove()
is called without holding other locks.

Reviewed by:	imp, kevans
MFC after:	3 days
Differential Revision:	https://reviews.freebsd.org/D54953
2026-02-02 21:21:43 -06:00
Kyle Evans d3f21856aa rc: run the zfs rc script before tmp
The tmp rc script has much the same problem that the var does: it wants
to test if /tmp is writable, and mount a tmpfs if it's not.  This means
that we actually want our zfs datasets mounted first, because we might
have a /tmp dataset that changes the story.

The ordering problem is particularly noticable with a r/o zfs root,
since the write test will fail and we'll mount a tmpfs that later gets
covered by our /tmp dataset.  If that /tmp dataset inherited readonly,
then we're still in trouble.

This also fixes `tmpmfs=yes`, which would again get covered by a zfs
dataset with the existing ordering.

Reviewed by:	des
Differential Revision:	https://reviews.freebsd.org/D54995
2026-02-02 21:21:42 -06:00
Konstantin Belousov 120ca8d74b Re-introduce kern.sched.topology_spec
Move it back from kern.sched.ule.topology_spec.
Make it scheduler-agnostic.
Provide trivial report for UP kernels.

Apparently the MIB is used by some third-party software.  Obviously it
did not worked on UP or 4BSD configs.

PR:	292574
Reviewed by:	olce
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D55062
2026-02-03 04:43:18 +02:00
Abdelkader Boudih 052a791b00 acpi: add Darwin OSI quirk for Apple Mac hardware
Mac firmware hides the Intel integrated GPU (iGPU) on dual GPU x86
systems, i.e., with AMD/NVIDIA dGPUs, when the Darwin OSI is not
installed via ACPI.

Prior to this change, FreeBSD always used the dGPU. This is fine in
practice, but consumed more power than when the iGPU is used,
resulting in reduced battery life.

Linux handles this in `drivers/acpi/osi.c` by detecting Apple
hardware via DMI, disabling all Windows OSI strings, and
by explicitly installing the Darwin OSI ACPI handler. This change
applies equivalent logic to the acpi(4) driver on FreeBSD.

This feature can be enabled/disabled using the
`hw.acpi.apple_darwin_osi` tunable. Setting this tunable to `0`
restores the previous behavior by explicitly disabling the added
support.

Reviewed by:	obiwac, ngie, adrian
Differential Revision:	https://reviews.freebsd.org/D54762
2026-02-02 17:51:37 -08:00
Aymeric Wibo fedc9746bd acpi_spmc: Register SPMC suspend/resume routines
SPMC suspend runs after the device tree is suspended using the
acpi_post_dev_suspend eventhandler, and SPMC resume runs before the
device tree is resumed using the acpi_pre_dev_suspend eventhandler.

Reviewed by:	olce
Approved by:	olce
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D48735
2026-02-03 00:51:17 +01:00
Aymeric Wibo 4a71fc3b5c acpi: Post/pre device suspend/resume eventhandlers
These eventhandlers are called after suspending the device tree and
before resuming it. This is useful for PMC (power management controller)
drivers.

Reviewed by:	olce
Approved by:	olce
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D48735
2026-02-03 00:51:17 +01:00
Rick Macklem 4bfb7cfb70 runat: Add -h to manipulate a symlink's named attribute dir
Lionel Cons <lionelcons1972@gmail.com> requested
that a new option be added to runat(1) so that it could
be used to manipulate named attributes associated with
a symbolic link and not the file the symbolic link refers to).

This patch adds the option -h/--nofollow to do this.

Requested by:	Lionel Cons <lionelcons1972@gmail.com>
Reviewed by:	kib
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D55023
2026-02-02 14:38:13 -08:00
Marius Strobl b941d1c64e sym(4): Map HCB memory as uncacheable also on x86
As part of making the chip-specific mix and match of different accesses
(DMA/bus space) work as desired, the intent is to map the HCB memory as
uncacheable. Prior to VM_MEMATTR_*, the !x86 way of indicating this to
bus_dmamem_alloc(9) was BUS_DMA_COHERENT. Then later on in 2db99100a4,
BUS_DMA_NOCACHE was hooked up to VM_MEMATTR_UNCACHEABLE for x86. As it
turns out, still as of today bus_dmamem_alloc(9) differs in this regard
across architectures. On arm, it still supports BUS_DMA_COHERENT only
for requesting uncacheable DMA and x86 still uses BUS_DMA_NOCACHE only.
On arm64 and riscv, BUS_DMA_COHERENT seems to effectively be an alias
for BUS_DMA_NOCACHE.

Thus, allocate the HCB memory with BUS_DMA_COHERENT | BUS_DMA_NOCACHE,
so we get uncacheable memory on all architectures including x86 and so
loads and stores from/to HCB won't get reordered. However, even on x86
we still need to use at least compiler barriers to achieve the desired
program order.

This change should also fix panics due to out-of-sync data seen with
FreeBSD VMs on top of OpenStack and HBAs of type lsiLogic as a result
of loads and stores getting reordered. [1]

While at it:
- Nuke the unused SYM_DRIVER_NAME macro.
- Remove unused/redundant HCB members and correct a comment typo.

PR:		270816 [1]
MFC after:	3 days
2026-02-02 22:57:56 +01:00