FreeBSD/src fe9e9dcsbin/devd growfs_postboot.conf

growfs_postboot: Invoke via service(8)

Use service(8) rather than invoking /etc/rc.d/growfs_postboot directly.

Requested by:   bapt
Reviewed by:    bapt
MFC after:      2 weeks
Fixes:          5a31987d4c39 ("rc+devd: Add growfs_postboot")
Differential Revision:  https://reviews.freebsd.org/D59145

(cherry picked from commit 475a56a8766ce29af53b99c47c145c7348165e6b)
DeltaFile
+1-1sbin/devd/growfs_postboot.conf
+1-11 files

FreeBSD/src bf2ce3asys/dev/nvme nvme_pci.c

nvme: Add quirk for Amazon EBS NVMe Controller

This controller exhibits QUIRK_EMPTY_NAMESPACE_CHANGED_LOG behaviour.

A bug report has been filed with the vendor.

Reviewed by:    imp
MFC after:      1 week
Sponsored by:   Amazon
Differential Revision:  https://reviews.freebsd.org/D58232

(cherry picked from commit 14f5fd2395e3f1c3fadeee8b95756c142f7dcb0b)
DeltaFile
+2-0sys/dev/nvme/nvme_pci.c
+2-01 files

FreeBSD/src ba004aflibexec/rc rc.conf, libexec/rc/rc.d growfs_postboot

rc+devd: Add growfs_postboot

In VM and cloud environments it is often possible to enlarge virtual
disks; this can be useful, for example, if a system is launched with a
small root disk and it later becomes clear that more space is needed.

On kernels which support run-time resizing of disks (for NVMe, this was
added in November 2025; some other disk types have supported this for
longer) a SIZECHANGE notification is sent to userland via devd.

Add a "nostart" rc.d script (runnable manually but not automatically at
boot time) and a devd script which invokes it when a notification
arrives.  The rc.d script enlarges the "final partition" on partitioned
geoms, or the UFS filesystem or zpool device when triggered on a disk
containing either of those.

Reviewed by:    imp, ziaee
MFC after:      2 weeks
Relnotes:       Disk partitions and filesystems can be enlarged

    [6 lines not shown]
DeltaFile
+116-0libexec/rc/rc.d/growfs_postboot
+69-0share/man/man7/growfs_postboot.7
+8-0sbin/devd/growfs_postboot.conf
+3-0libexec/rc/rc.conf
+1-0share/man/man7/growfs.7
+1-0share/man/man7/Makefile
+198-03 files not shown
+201-09 files

FreeBSD/src cc1658asys/dev/nvme nvme_sysctl.c nvme_sim.c

nvme: add Apple T2 ANS2 NVMe quirks

The Apple T2 (ANS2, PCI 106b:2005) requires several quirks:

- 128-byte submission queue entries (CC.IOSQES = 7)
- Single MSI vector, one IO queue
- Admin and IO queues share a CID table; IO CIDs offset by
  adminq.num_trackers to avoid overlap
- No async event support
- IDENTIFY CNS >= 2 rejected to avoid firmware confusion

Tested-on:
- MacBookPro16,2 (A2251)
- Mac mini 8,1 (A1993)
- Multiple Non-Apple computers

Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D57087

(cherry picked from commit 5e0ba47aa00ed82a4a06cc45f0d1b34b6948e47f)
DeltaFile
+23-9sys/dev/nvme/nvme_qpair.c
+15-0sys/dev/nvme/nvme_pci.c
+14-0sys/dev/nvme/nvme_private.h
+13-0sys/dev/nvme/nvme_ctrlr.c
+9-0sys/dev/nvme/nvme_sim.c
+1-1sys/dev/nvme/nvme_sysctl.c
+75-106 files

FreeBSD/src 7cbc260sys/dev/nvme nvme_private.h nvme_ctrlr.c

nvme: Add quirk for broken namespace-change log

Add a QUIRK_EMPTY_NAMESPACE_CHANGED_LOG quirk which indicates that the
nvme controller may not properly populate the namespace-changed log
page.  If we receive a NVME_LOG_CHANGED_NAMESPACE page for a device
with this quirk and the page is empty, probe all of the namespaces
rather than none of them.

Reviewed by:    imp
MFC after:      1 week
Sponsored by:   Amazon
Differential Revision:  https://reviews.freebsd.org/D58231

(cherry picked from commit 954098103ee287f39ecbf5d3144bcdfd16e7c41d)
DeltaFile
+10-0sys/dev/nvme/nvme_ctrlr.c
+1-0sys/dev/nvme/nvme_private.h
+11-02 files

FreeBSD/src 32878e6sys/arm/broadcom/bcm2835 bcm2835_pwm.c

bcm2835_pwm: Fix dev.pwm.0.ratio2 register

A typo in the sysctl for RPI0 PWM channel 2 was causing it to
write to the wrong register, leaving it misconfigured if used.

PR:                     298301
MFC after:              3 days (problem reported on 14.4)
Reviewed by:            adrian
Reported by:            Attila Kover <attila.kover at guardian.co.uk>
Differential Revision:  https://reviews.freebsd.org/D59644
DeltaFile
+1-1sys/arm/broadcom/bcm2835/bcm2835_pwm.c
+1-11 files

FreeBSD/src 09711ccusr.sbin/bsdconfig/share sysrc.subr, usr.sbin/sysrc sysrc sysrc.subr

Remove source_rc_confs, inlined from defaults/rc.conf

Inlining source_rc_confs broke sysrc_test:A_flag

While here, switch to SPDX, bump version/copyrights, fixup comments.

Prevent common function override when bsdconfig includes new
sysrc.subr that contains inlined commons. Fix non-unique duplicate
header variable incorrectly shared between bsdconfig's sysrc.subr
include and new sysrc.subr include.

Harden RC_DEFAULTS parameter expansion from DoS-via-glob (SC2223).

Move pgm to the correct location to not override bsdconfig's pgm.

Drop _SYSRC_JAILED=1 that is no-longer needed.  Drop i18n from
jail_depend now that messages are inlined to subr.

Reported by:    siva
Fixes:  eaeb5f29bc6f sysrc: make independant from bsdconfig(8)
DeltaFile
+27-79usr.sbin/sysrc/sysrc.subr
+10-50usr.sbin/sysrc/sysrc
+6-7usr.sbin/bsdconfig/share/sysrc.subr
+43-1363 files

FreeBSD/src 302c6d2sys/compat/linuxkpi/common/include/linux string.h

Implement vmemdup_{array}_user

This is what FreeBSD now does for memdup_user and memdup_array_user
(which is wrong for memdup, but correct for vmemdup).

The amdgpu DRM driver started this in Linux ~6.12.86+

Reviewed by:    wulf
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D57444
DeltaFile
+26-0sys/compat/linuxkpi/common/include/linux/string.h
+26-01 files

FreeBSD/src 87c44c0lib/libsys Symbol.sys.map

libsys: Export kexec_load

This was missed when bringing the kexec framework in.

Fixes:          e02c57ff37e ("kern: Introduce kexec system feature (MI)")
Reviewed by:    kib
Sponsored by:   Hewlett Packard Enterprise LP
Differential Revision:  https://reviews.freebsd.org/D59696
DeltaFile
+1-0lib/libsys/Symbol.sys.map
+1-01 files

FreeBSD/src 7f8feeesys/net iflib.c

iflib: Clear simple-TX quiescence before publishing admission

Initialization publishes RUNNING and enables interrupts before clearing
the simple-TX producer barrier. A transmitter admitted in that window
still sees IFLIB_TXQ_QUIESCING and drops its packet with ENETDOWN. A TX
completion task can likewise return without draining deferred packets.

Clear the barrier on every TX queue after driver initialization and RX
buffer setup succeed, before publishing admission. Keep failed init
paths closed and retain the existing stop, interrupt and timer ordering.
This changes only initialization; no work is added to the packet path.

Reviewed by:    iflib (gallatin)
Sponsored by:   BBOX.io
Differential Revision:  https://reviews.freebsd.org/D59690
DeltaFile
+8-6sys/net/iflib.c
+8-61 files

FreeBSD/src ea71fa9sys/dev/e1000 if_em.c

e1000: Express TSO restart policy without OACTIVE

After a link speed change updates TSO capabilities, request a restart
when iflib is running or the interface is administratively up.  Leave
an administratively down, stopped interface to apply the change at its
next initialization.

Do not infer initialization from IFF_DRV_OACTIVE, which also remains
set after stop and failed initialization.  Use iflib_is_running() for
software admission and IFF_UP for intent; iflib retains responsibility
for quiescing any partially initialized queues before restarting.

This also permits a restart request for an administratively up
interface before its first initialization attempt.

Reviewed by:    iflib (gallatin)
MFC after:      2 weeks
Sponsored by:   BBOX.io
Differential Revision:  https://reviews.freebsd.org/D59599
DeltaFile
+6-10sys/dev/e1000/if_em.c
+6-101 files

FreeBSD/src d5ae08fsys/dev/bnxt/bnxt_en bnxt_sysctl.c, sys/dev/e1000 if_em.c

iflib: Use the framework run-state accessor in drivers

Replace direct IFF_DRV_RUNNING reads in igbv, ixgbe, ixv, iavf, ixl,
ice, bnxt Ethernet, aq, enic and the axgbe PCI frontend with
iflib_is_running().  Keep each existing mailbox-ready, fault-state,
link-state and administrative-up condition: framework admission is not
a substitute for device specific readiness.

This covers interrupt admission, operational link publication, VF
mailbox and VLAN replay, and live-configuration decisions.  Remove
ifnet temporaries used only to read the driver flags.

Replace the em and igc debug dumps' RUNNING/OACTIVE text with one
framework admission snapshot.  OACTIVE does not mean that the interface
or hardware is inactive.  Label the result as software admission rather
than link state or proof that DMA has stopped, and retain the queue
head/tail dumps and separate RS diagnostics.  Keep the filter register
and requested interface flags in the axgbe PCI promiscuous-mode trace,
but remove its unrelated legacy driver flags.

    [14 lines not shown]
DeltaFile
+2-10sys/dev/igc/if_igc.c
+2-10sys/dev/e1000/if_em.c
+4-7sys/dev/ixgbe/if_ixv.c
+5-6sys/dev/ixgbe/if_ix.c
+5-5sys/dev/bnxt/bnxt_en/bnxt_sysctl.c
+3-6sys/dev/iavf/if_iavf_iflib.c
+21-449 files not shown
+34-6115 files

FreeBSD/src 4b5e09bshare/man/man9 iflibdi.9, sys/net iflib.h iflib.c

iflib: Separate software admission from legacy driver flags

Publish an atomic software run state snapshot through iflib_is_running().
Use it for iflib traffic admission, queue tasks, timers, debugnet and
live-configuration checks instead of reading the unsynchronized
ifnet driver flags.  Keep admission closed after failed initialization
and close it when a watchdog requests deferred recovery.

Retain the context-locked datapath state for DMA ownership: a closed
admission gate does not establish that the hardware is stopped.  Open
the gate after receive buffer setup and before interrupt enable, at the
existing RUNNING publication point.  Serialize the writers with the
state mutex and continue publishing RUNNING/OACTIVE for network stack
consumers.  The accessor takes no lock and is usable from filters, but
is only a snapshot, not a context reference or a queue-user drain.

Recheck multicast and VFLR admission under the context lock.  Replace
the OACTIVE drain check with the same private admission gate, retaining
the separate per-queue descriptor backpressure policy.  Rename its

    [11 lines not shown]
DeltaFile
+81-48sys/net/iflib.c
+28-1share/man/man9/iflibdi.9
+7-0sys/net/iflib.h
+116-493 files

FreeBSD/src 7fb0040sys/net iflib.c

iflib: Use private lifecycle state for control work

Use the context-locked datapath state for netmap initialization results,
resume completion and administrative work eligibility.  Keep stopped
and failed interfaces eligible for link and mailbox recovery without
using IFF_DRV_OACTIVE as an implicit indication that initialization has
been attempted.  Evaluate media and deferred admin eligibility under
the context lock rather than from an earlier IFF_DRV_ flag snapshot.

Always pass through iflib_stop() before an IOV-init callback which
changes the PF queue layout, as the IOV-uninit counterpart already does.
Neither administrative down nor a cleared IFF_DRV_RUNNING proves that
queue DMA is stopped.  The private lifecycle state decides whether the
hardware stop is necessary; IFF_UP only decides whether to initialize
again afterward.

Reviewed by:    iflib (gallatin)
MFC after:      2 weeks
Sponsored by:   BBOX.io
Differential Revision:  https://reviews.freebsd.org/D59597
DeltaFile
+27-24sys/net/iflib.c
+27-241 files

FreeBSD/src 47b02acsbin/ipfw nat64clat.c

ipfw: guard against NULL deref with clat/plat prefixes without length

Found with:     Claude Code Sonnet 5
MFC after:      2 weeks
DeltaFile
+3-0sbin/ipfw/nat64clat.c
+3-01 files

FreeBSD/src 6ac7152sys/sys videoio.h

video(4): add extended controls and remaining V4L2 compat symbols

Add the extended control interface

Values match the reference ABI; the new struct layouts are pinned
with static assertions.

Reported by:    thierry

Reviewed by:    adrian, thierry
Differential Revision:  https://reviews.freebsd.org/D59496
DeltaFile
+162-1sys/sys/videoio.h
+162-11 files

FreeBSD/src 8e5e2c3share/man/man4 hfsts.4, sys/amd64/conf NOTES

intel: add hfsts debug-probe driver for Intel ME/HECI firmware status

Add an amd64-only, Intel-only diagnostic driver that reads ME Host
Firmware Status registers from PCI configuration space without mapping the messaging BAR.

Select the HFS register count per device generation, decode sparse
HFS1 state, mode, and error fields, and expose raw and summarized
status via sysctl. Register an ISA-side hfstsfd probe for supported
RCBA/FD2 generations so firmware-hidden HECI functions can be diagnosed.

Reviewed by:    kbowling, adrian
Differential Revision:  https://reviews.freebsd.org/D58863
DeltaFile
+564-0sys/dev/intel/hfsts.c
+237-0sys/dev/intel/hfsts_isa.c
+219-0share/man/man4/hfsts.4
+12-0sys/dev/intel/hfsts.h
+11-0sys/modules/hfsts/Makefile
+3-0sys/amd64/conf/NOTES
+1,046-03 files not shown
+1,052-09 files

FreeBSD/src 592ae60sbin/devmatch devmatch.c

devmatch(8): Preserve const qualifier on strchr(3) and strstr(3) results

Reviewed by:    fuz, dteske
Approved by:    fuz (mentor), dteske (mentor)
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59667
DeltaFile
+4-3sbin/devmatch/devmatch.c
+4-31 files

FreeBSD/src d10e39dbin/ps ps.c

ps(1): Preserve const qualifier on strchr(3) result

Reviewed by:    fuz, dteske
Approved by:    fuz (mentor), dteske (mentor)
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59666
DeltaFile
+2-1bin/ps/ps.c
+2-11 files

FreeBSD/src 63786b0sys/dev/cxgbe/iw_cxgbe cq.c

iw_cxgbe: Remove unused return value from destroy_cq

Part of the original Linux commit was already applied during a prior
OFED update in commit b633e08c705fe43180567eae26923d6f6f98c8d9, but
this portion of the changes to the Linux iw_cxgb4 driver were not
included.

Obtained from:  Linux commit a52c8e2469c30cf7ac453d624aed9c168b23d1af
DeltaFile
+7-8sys/dev/cxgbe/iw_cxgbe/cq.c
+7-81 files

FreeBSD/src e29dcccsys/dev/cxgbe/iw_cxgbe iw_cxgbe.h qp.c

iw_cxgbe: Fix qpid leak

Add await in destroy_qp() so that all references to qp are dereferenced
and qp is freed in destroy_qp() itself.  This ensures freeing of all QPs
before invocation of dealloc_ucontext(), which prevents loss of in use
qpids stored in the ucontext.

Obtained from:  Linux commit f70baa7ee3d1b5a9e66ac7549e31641a656f23c1
Sponsored by:   Chelsio Communications
DeltaFile
+18-32sys/dev/cxgbe/iw_cxgbe/qp.c
+2-2sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h
+20-342 files

FreeBSD/src 0505738sys/dev/cxgbe/iw_cxgbe iw_cxgbe.h t4.h

iw_cxgbe: Miscellaneous changes from the iw_cxgb4 driver

These include changes to use newer APIs, cosmetic changes to reduce
diffs between the two drivers, and other minor fixes.

Sponsored by:   Chelsio Communications
Co-authored-by: Arjun V <arjun at chelsio.com>
Co-authored-by: Krishnamraju Eraparaju <krishna2 at chelsio.com>
Co-authored-by: Vishal Kulkarni <vishal at chelsio.com>
DeltaFile
+26-29sys/dev/cxgbe/iw_cxgbe/cm.c
+12-11sys/dev/cxgbe/iw_cxgbe/cq.c
+8-6sys/dev/cxgbe/iw_cxgbe/qp.c
+5-2sys/dev/cxgbe/iw_cxgbe/provider.c
+1-1sys/dev/cxgbe/iw_cxgbe/t4.h
+0-1sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h
+52-506 files

FreeBSD/src 9f2a288sys/dev/cxgbe/iw_cxgbe qp.c cq.c

iw_cxgbe: Remove unneeded memset

Obtained from:  Linux commit 4c44d4634b5c90993fccca9f155347221df6f877
DeltaFile
+0-1sys/dev/cxgbe/iw_cxgbe/qp.c
+0-1sys/dev/cxgbe/iw_cxgbe/cq.c
+0-22 files

FreeBSD/src 3968a87contrib/ofed/libcxgb4 t4.h dev.c, sys/dev/cxgbe/iw_cxgbe device.c t4.h

iw_cxgbe/libcxgb4: Pass ftid_base to libcxgb4 through status page

While here, fix incorrect frees in error paths in c4iw_alloc_context().

Sponsored by:   Chelsio Communications
DeltaFile
+2-2contrib/ofed/libcxgb4/dev.c
+1-1sys/dev/cxgbe/iw_cxgbe/t4.h
+1-1contrib/ofed/libcxgb4/t4.h
+1-0sys/dev/cxgbe/iw_cxgbe/device.c
+5-44 files

FreeBSD/src a83be0bsys/dev/cxgbe/iw_cxgbe mem.c

iw_cxgbe: Do not dma memory off of the stack

Obtained from:  Linux commit 3840c5b78803b2b6cc1ff820100a74a092c40cbb
DeltaFile
+17-11sys/dev/cxgbe/iw_cxgbe/mem.c
+17-111 files

FreeBSD/src 0d63508sys/dev/cxgbe t4_main.c, sys/dev/cxgbe/common common.h

cxgbe: Enable RDMA WRITE_CMPL work requests if the firmware supports them

This work request permits combining RDMA WRITE and SEND_INV commands
into a single work request.

Sponsored by:   Chelsio Communications
DeltaFile
+5-0sys/dev/cxgbe/t4_main.c
+2-0sys/dev/cxgbe/common/common.h
+7-02 files

FreeBSD/src e03c2c0contrib/ofed/libcxgb4 qp.c

libcxgb4: remove update_qp_state()

Remove it because it is not needed. If we're flushing the qp, it is
because we've had a fatal error, so just set the user qp state to ERR
and continue on.

Sponsored by:   Chelsio Communications
DeltaFile
+1-15contrib/ofed/libcxgb4/qp.c
+1-151 files

FreeBSD/src b78f8facontrib/ofed/libcxgb4 libcxgb4.h t4.h, sys/dev/cxgbe/iw_cxgbe device.c t4.h

iw_cxgbe/libcxgb4: Support for RDMA WRITE_COMPL work requests

To optimize NVME-oF READ IOPs, use a specialized work request that
combines a RDMA WRITE and SEND_INV chain into a single request.

Sponsored by:   Chelsio Communications
Co-authored-by: Potnuri Bharat Teja <bharat at chelsio.com>
DeltaFile
+167-10contrib/ofed/libcxgb4/qp.c
+146-1sys/dev/cxgbe/iw_cxgbe/qp.c
+7-2contrib/ofed/libcxgb4/t4.h
+5-1sys/dev/cxgbe/iw_cxgbe/t4.h
+2-0sys/dev/cxgbe/iw_cxgbe/device.c
+1-0contrib/ofed/libcxgb4/libcxgb4.h
+328-141 files not shown
+329-147 files

FreeBSD/src f9076bdsys/dev/cxgbe/iw_cxgbe cq.c device.c

iw_cxgbe: Use XArray instead of IDR

Obtained from:  Linux commit 52e124c27e7bfb78980189bdfec049594d7612be
Obtained from:  Linux commit 2f43129127e62b25f56ff82a37c40b42c0e6f883
Obtained from:  Linux commit 7a268a93973c07f93e952d96c2faa88df8ed38d8
Sponsored by:   Chelsio Communications
Co-authored-by: Potnuri Bharat Teja <bharat at chelsio.com>
DeltaFile
+5-64sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h
+9-8sys/dev/cxgbe/iw_cxgbe/ev.c
+8-8sys/dev/cxgbe/iw_cxgbe/mem.c
+9-7sys/dev/cxgbe/iw_cxgbe/qp.c
+6-7sys/dev/cxgbe/iw_cxgbe/device.c
+3-3sys/dev/cxgbe/iw_cxgbe/cq.c
+40-976 files

FreeBSD/src 054db35contrib/ofed/libcxgb4 cq.c qp.c, contrib/ofed/libibverbs verbs.h

libcxgb4: Support for RDMA SEND_WITH_INV requests

Sponsored by:   Chelsio Communications
DeltaFile
+27-8contrib/ofed/libcxgb4/qp.c
+22-3contrib/ofed/libcxgb4/cq.c
+4-1contrib/ofed/libibverbs/verbs.h
+53-123 files