FreeBSD/src a2ed165sys/dev/e1000 igb_txrx.c if_em.h, sys/modules/em Makefile

igb: Add SR-IOV PF support for 82576 and I350

Add the PCI IOV schema and PF control plane for up to seven VFs with
one hardware queue per pool. Implement VF mailbox handling, MAC and
VLAN assignment, multicast filtering, promiscuity policy,
anti-spoofing, malicious-driver recovery, reset replay, and queue
lifecycle management.

The basic SR-IOV and VMDq PF implementation follows DPDK Intel e1000
code, including PF pool selection, one queue per pool, mailbox
dispatch, and VF enablement. Intel FreeBSD igb-2.5.31 supplies the
older driver baseline. Linux igb and the Intel SDMs clear up lifecycle,
isolation, reset, and family-specific details absent from DPDK.

Enabling IOV requires the PF to attach with one TX and RX queue.
Systems whose defaults select RSS queues must set the documented iflib
queue override tunables before attach.

Only 82576 and I350 support SR-IOV in silicon.  The series has been

    [6 lines not shown]
DeltaFile
+1,819-0sys/dev/e1000/if_igb_iov.c
+330-48sys/dev/e1000/if_em.c
+57-0sys/dev/e1000/if_igb_iov.h
+27-0sys/dev/e1000/if_em.h
+24-1sys/dev/e1000/igb_txrx.c
+2-2sys/modules/em/Makefile
+2,259-511 files not shown
+2,261-517 files

FreeBSD/src 930f2e4sys/kern kern_exec.c

kern_execve(): avoid storing non-VDIR into p_textdvp

Reported by:    Nick Price
Tested by:      pho
Reviewed by:    jah, markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58506
DeltaFile
+36-2sys/kern/kern_exec.c
+36-21 files

FreeBSD/src bf0ffcalib/libsys mknod.2

mknod.2: properly document root requirements

PR:     297082

(cherry picked from commit a3b5937da6159bcdaf4e635a0ad20013d4c3734d)
DeltaFile
+1-1lib/libsys/mknod.2
+1-11 files

FreeBSD/src 361ee19lib/libsys mknod.2

mknod.2: update the man page

PR:     297082

(cherry picked from commit 4090d103b0c31b44b269e0ccf758be5cfba3f60c)
DeltaFile
+16-7lib/libsys/mknod.2
+16-71 files

FreeBSD/src 26cad57share/man/man3 pthread_cond_wait.3

pthread_cond_wait.3: describe spurious wakeups

(cherry picked from commit 3c6f63902b037e36648fae435d4d5f56f9dc389b)
DeltaFile
+14-1share/man/man3/pthread_cond_wait.3
+14-11 files

FreeBSD/src bcb62ecsys/dev/e1000 if_em.c

igb: Guard register dump during queue setup

The register-dump sysctl is installed before iflib allocates the queue
arrays and remains visible while they are freed. Return ENXIO outside
the queue lifetime instead of dereferencing a NULL or stale array.

Sponsored by:   BBOX.io
DeltaFile
+7-0sys/dev/e1000/if_em.c
+7-01 files

FreeBSD/src 7eb7ff6sys/dev/e1000 igb_txrx.c

igbv: Correct I350 loopback VLAN byte order

I350 loopback receive descriptors report VLAN tags byte-swapped for
both PFs and VFs. The receive path handled the PF device types but
omitted e1000_vfadapt_i350, causing an admitted VF VLAN packet to be
delivered untagged to the VF parent.

Include the I350 VF type in the existing correction. This matches the
dedicated IGB_RXQ_FLAG_LB_BSWAP_VLAN handling in DPDK igbvf.

MFC after:      1 week
Sponsored by:   BBOX.io
DeltaFile
+2-1sys/dev/e1000/igb_txrx.c
+2-11 files

FreeBSD/src 8822954stand/efi/libefi efinet.c, stand/i386/libi386 pxe.c

stand: Cleanup use of cached DHCP response packet

 - When cached response is available, actually use xid from one
instead of using its byte-swapped value for BIOS and 1 for UEFI.
 - If cached response is not available, generate pseudo-random xid,
since use of a constant may cause conflicts if two systems are
booting same time, and server sends responses as broadcast.
 - When cached response is available, skip DHCP DISCOVER/OFFER
and just send REQUEST to the DHCP server from the cached response.
We could skip this phase too and just use the cached response, but
we don't know whether firmware requested all of DHCP options we'd
like to get.

Tested on amd64 Supermicro X11DPI-NT for both BIOS and EFI, with
and without cached response packet.
DeltaFile
+105-30stand/libsa/bootp.c
+0-5stand/i386/libi386/pxe.c
+0-1stand/efi/libefi/efinet.c
+105-363 files

FreeBSD/src 100f7b8. UPDATING

UPDATING: Add entry for igbv driver split
DeltaFile
+6-0UPDATING
+6-01 files

FreeBSD/src e6b9ce2sys/dev/e1000 if_em.c, sys/modules/em Makefile

igbv: Split 82576 and I350 VF registration off igb

Register the 82576 and I350 VF PCI IDs under a separate igbv driver
while continuing to share the igb datapath implementation.

Follow the ixv driver split and give the VF context IFLIB_IS_VF so
iflib does not apply the PF SR-IOV detach guard to a child VF. Program
VTIVAR_MISC in the VF low byte so mailbox and reset notifications reach
the VF admin vector.

The split will become increasingly obvious as bug fixes land, trying to
bias everything with if (sc->vf_ifp) everywhere is error prone in two
directions.

This breaks existing naming/configurations and cannot be MFCed as-is.
I have no plans of adapting it to prior branches at the moment but it
may be possible.

Relnotes:       yes
Sponsored by:   BBOX.io
DeltaFile
+85-4sys/dev/e1000/if_em.c
+2-1sys/modules/em/Makefile
+87-52 files

FreeBSD/src 767d5fe. .mailmap

mailmap: Fix Nick Price

Somehow a few commits ended up with "null" appended to Nick's name and
email address.

Reviewed by:    Nick Price <nick at spun.io>
Differential Revision: https://reviews.freebsd.org/D58517
DeltaFile
+1-0.mailmap
+1-01 files

FreeBSD/src da41214. .mailmap

mailmap: Sort

Reviewed by:    markj
Differential Revision: https://reviews.freebsd.org/D58515
DeltaFile
+19-19.mailmap
+19-191 files

FreeBSD/src 621498bsys/dev/pci pci_iov.c

pci_iov: Clear NumVFs when configuration fails

pci_iov_config() programs NumVFs before validating the final VF RID
layout and allocating all generic resources. A subsequent error ran the
driver uninit callback but left the hardware NumVFs register programmed
while the software VF count returned to zero.

Clear NumVFs in the error path after the driver uninit callback,
matching normal SR-IOV teardown ordering. This prevents stale hardware
state after a failed configuration and permits a clean retry.

MFC after:      1 week
Sponsored by:   BBOX.io
DeltaFile
+3-1sys/dev/pci/pci_iov.c
+3-11 files

FreeBSD/src e795a31sys/dev/pci pci_iov.c

pci_iov: Permit non-ARI VFs on a secondary bus

A non-zero VF device number does not always require ARI. The Intel
82576 and I350 [1] explicitly support a non-ARI layout that places VFs
on the next bus.

Check every requested VF RID and reject a non-zero device only when it
is on the PF bus. This retains the ARI guard for invalid same-bus
layouts while permitting the documented second-bus layout.

[1] Intel I350 Datasheet, sections 7.8.2.6.1.2, 9.6.4.6

Sponsored by:   BBOX.io
DeltaFile
+18-3sys/dev/pci/pci_iov.c
+18-31 files

FreeBSD/src fd59498sys/dev/e1000 if_em.c

igb: Address queue registers by hardware queue ID

Use each ring's physical queue index for initialization, MSI-X routing,
register dumps, sysctls, and debug output instead of assuming that its
logical array index is also its hardware index.

This is a no-op for the normal queue layout.  A later SR-IOV change
moves the PF ring to hardware queue num_vfs, so its hardware ID then
differs from logical queue zero.

Sponsored by:   BBOX.io
DeltaFile
+106-55sys/dev/e1000/if_em.c
+106-551 files

FreeBSD/src ac9a6d0sys/dev/e1000 e1000_82575.h e1000_hw.h

e1000: Update shared igb SR-IOV code

Update the shared e1000 PF/VF mailbox interfaces for an in-tree igb
SR-IOV implementation.

Intel FreeBSD igb-2.5.31 and DPDK provide the older PF/VF mailbox
baseline.

The retained PF mailbox read and explicit unlock operation follow a
simple Linux igb parameter addition to make PF mailbox acquisition
nonblocking so the driver can retry outside the shared primitive.

Treating a CTS-less E1000_PF_CONTROL_MSG as a reset follows DPDK.

Sponsored by:   BBOX.io
DeltaFile
+84-23sys/dev/e1000/e1000_mbx.c
+22-7sys/dev/e1000/e1000_vf.c
+3-2sys/dev/e1000/e1000_vf.h
+4-1sys/dev/e1000/e1000_mbx.h
+2-1sys/dev/e1000/e1000_hw.h
+1-1sys/dev/e1000/e1000_82575.h
+116-356 files

FreeBSD/src f8fa2d7sys/net iflib.h iflib.c

iflib: Add restart transactions for IOV reconfiguration

Some devices remap the PF queues when entering or leaving SR-IOV. Add
opt-in PCI IOV helpers that hold the iflib context lock across the
complete stop, driver callback, and restart transaction.

Existing drivers continue to use the non-restarting helpers.

Sponsored by:   BBOX.io
DeltaFile
+53-0sys/net/iflib.c
+2-0sys/net/iflib.h
+55-02 files

FreeBSD/src 23216f6usr.sbin/certctl certctl.c

certctl: Enforce 0444 mode on new files

When writing to a file, call fchmod() to ensure the file mode matches
the intended mode, which is 0444.  This was already done when replacing
an existing file, but not when creating a new file, which meant if the
process umask was 077, the resulting certificates and bundle would be
unreadable by unprivileged users.

MFC after:      1 week
Reviewed by:    des
Differential Revision:  https://reviews.freebsd.org/D58304

(cherry picked from commit 02f174179a538f89185d275b4e64277baf3acc50)
DeltaFile
+4-0usr.sbin/certctl/certctl.c
+4-01 files

FreeBSD/src 8710a12cddl/lib/libdtrace siftr.d

libdtrace: Fix up one more translator

Fixes:  d8bcb13b79b4 ("libdtrace: Fix up translators after struct in_conninfo changes")
DeltaFile
+2-2cddl/lib/libdtrace/siftr.d
+2-21 files

FreeBSD/src 815976esys/kern uipc_ktls.c kern_mbuf.c, sys/sys mbuf.h

ktls: Propagate EPG_FLAG_ANON to mapped mbufs

Otherwise ktls_mbuf_crypto_state() will reject mbufs created by
_mb_unmapped_to_ext(), which arises when transmitting packets through an
interface that doesn't support unmapped mbufs, and the loopback
interface in particular.

PR:             296498
Fixes:          3444414cb463 ("ktls: Don't attempt to modify non-anonymous mbufs on the receive path")
Reviewed by:    gallatin, jhb
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D57557
DeltaFile
+2-1sys/kern/uipc_ktls.c
+3-0sys/kern/kern_mbuf.c
+1-0sys/sys/mbuf.h
+6-13 files

FreeBSD/src 248d537sys/dev/sdhci sdhci_pci.c sdhci.h

sdhci: don't infer a non-removable slot on Apollo Lake SDXC

Intel Apollo Lake SDXC controller reports a Slot Type of
"Embedded Slot for One Device" in SDHCI_CAPABILITIES bits, even
when the slot is a removable card reader.
This caused 48 timeouts before the boot sequence resumed.

Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D58467
DeltaFile
+2-1sys/dev/sdhci/sdhci.c
+2-0sys/dev/sdhci/sdhci.h
+1-0sys/dev/sdhci/sdhci_pci.c
+5-13 files

FreeBSD/src 5f74217share/man/man4 coreboot.4, sys/dev/coreboot coreboot_cbmem.c coreboot_console.c

coreboot: Add coreboot firmware table driver

Nexus-attached driver that discovers and parses coreboot's LBIO tables
from physical memory. Exposes firmware metadata (version, build info,
mainboard, serial config, TSC frequency, CBMEM entries) via sysctl
hw.coreboot.*, the firmware console ring buffer via /dev/coreboot_console,
and structured CBMEM entry access via /dev/cbmem ioctl interface.

Tested on:
- Qotom Q535G6 (Kabylake)
- Intel NUC D54250WYK (Haswell)
- Intel NUC D33217GKE (Ivy Bridge)
- Dell 3100 2-in-1 (Gabbiter)
- Dell 3100 (Fleex)
- Lenovo IdeaPad 320s
- Lenovo ThinkPad T480
- HP Chromebook 11 G4
- HP Chromebook 11 G5
- HP Chromebook 11 G6 EE

    [11 lines not shown]
DeltaFile
+1,502-0sys/dev/coreboot/coreboot.c
+632-0sys/dev/coreboot/coreboot.h
+355-0share/man/man4/coreboot.4
+214-0sys/dev/coreboot/coreboot_timestamps.c
+192-0sys/dev/coreboot/coreboot_console.c
+151-0sys/dev/coreboot/coreboot_cbmem.c
+3,046-08 files not shown
+3,198-214 files

FreeBSD/src ea44c37sys/dev/irdma fbsd_kcompat.h irdma_kcompat.c, sys/ofed/drivers/infiniband/core ib_verbs.c

OFED: Add generic function to extract IB speed from netdev

Reviewed by:    kib
Obtained from:  Linux commit d41861942fc55c14b6280d9568a0d0112037f065
Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D57952
DeltaFile
+0-102sys/dev/irdma/irdma_kcompat.c
+48-0sys/ofed/drivers/infiniband/core/ib_verbs.c
+2-0sys/ofed/include/rdma/ib_verbs.h
+0-1sys/dev/irdma/fbsd_kcompat.h
+50-1034 files

FreeBSD/src ee7258ctools/tools/git Makefile

tools/tools/git: Add git-mfc to Makefile similar to git-arc

Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D58531
DeltaFile
+2-2tools/tools/git/Makefile
+2-21 files

FreeBSD/src ec73badlibexec/rtld-elf map_object.c

rtld: Remove write-only text_end local variable from map_object

Reviewed by:    kib
Fixes:          561991144e42 ("Remove Obj_Entry textsize member.")
Sponsored by:   AFRL, DARPA
Differential Revision:  https://reviews.freebsd.org/D58522
DeltaFile
+0-7libexec/rtld-elf/map_object.c
+0-71 files

FreeBSD/src b9ea73ctools/tools/git git-arc.sh

git-arc: Make git arc patch -r smarter

- Make it work even when git arc isn't run from the root of the repo.
- If the patch fails to apply, let git partially apply the patch and
  generate rej files for inspection.

While here, remove the return value from apply_rev(), it's never
actually used.

Reviewed by:    jhb
Differential Revision:  https://reviews.freebsd.org/D58532
DeltaFile
+5-5tools/tools/git/git-arc.sh
+5-51 files

FreeBSD/src d8bcb13cddl/lib/libdtrace udplite.d udp.d

libdtrace: Fix up translators after struct in_conninfo changes

Fixes:  698402f4f97c ("inpcb: declare struct in_conninfo as a single declaration")
DeltaFile
+2-2cddl/lib/libdtrace/udplite.d
+2-2cddl/lib/libdtrace/udp.d
+2-2cddl/lib/libdtrace/tcp.d
+6-63 files

FreeBSD/src 88f1161sys/opencrypto crypto.c

OCF: Add a fail point to inject EBADMSG decryption errors

Approved by:    so
Security:       FreeBSD-SA-26:52.if_wg
Security:       CVE-2026-58085
Reviewed by:    markj
Sponsored by:   Chelsio Communications
DeltaFile
+16-0sys/opencrypto/crypto.c
+16-01 files

FreeBSD/src 825c6f4etc/mtree BSD.tests.dist, tests/sys/net Makefile

wg(4): Add a test that the driver handles a decryption failure

The test uses a fail point to inject a decryption error in OCF while
sending a ping across the tunnel.  The driver should then fail to
respond to the ping and increment the input error counter on the
interface.

Approved by:    so
Security:       FreeBSD-SA-26:52.if_wg
Security:       CVE-2026-58085
Reviewed by:    markj
Sponsored by:   Chelsio Communications
DeltaFile
+111-0tests/sys/net/wg/if_wg_nojail.sh
+10-0tests/sys/net/wg/Makefile
+2-0etc/mtree/BSD.tests.dist
+1-0tests/sys/net/Makefile
+124-04 files

FreeBSD/src 89a88e4sys/kern imgact_elf.c

coredump: Don't assume that the number of ELF segments is consistent

In an ELF coredump, each dumped vm_map_entry is represented by a
segment.  __elfN(coredump) first computes the number of segments by
looping over the vm_map entries (in each_dumpable_segment()), then
allocates a buffer to hold the ELF header and program headers, then
loops over the entries again to populate the program headers.

each_dumpable_segment() holds the vm_map read lock, but that lock is
dropped between the two calls.  If the map is shared with another
process, via rfork(), then the map can change.  cb_put_phdr() did not
account for this, and so could write out of bounds.

Add a check to prevent this; simply do not write out excess segments.

Approved by:    so
Security:       FreeBSD-SA-26:55.elf
Security:       CVE-2026-58088
Reported by:    Maik Muench of Secfault Security

    [3 lines not shown]
DeltaFile
+19-3sys/kern/imgact_elf.c
+19-31 files