FreeBSD git weekly: 2026-10-05 to 2026-10-11

Introduction

This is a display of mostly-automatically-classified git commits from 2026-10-05 to 2026-10-11.

This report is still in progress.

DEBUG: This version of the report is primarily for checking the classifiers, and therefore contains extra information (in this colour).

Table of contents and commits per category:

(0) Highlighted commits (these are copies, not in stats)
0 0.0% Userland programs
0 0.0% Documentation
6 46.2% Hardware support
3 23.1% Networking
1 7.7% System administration
0 0.0% Libraries
0 0.0% Filesystems
1 7.7% Kernel
1 7.7% Build system
0 0.0% Internal organizational stuff
0 0.0% Testing
1 7.7% Style, typos, and comments
0 0.0% Contrib code
0 0.0% Reverted commits
0 0.0% Unclassified commits
13 100% total
Technical notes about this page

debug: info about the automatic classification

num % num changed stage
1 7.7% 0 01-style
11 84.6% 0 03-filenames_plain1
1 7.7% 0 04-filenames_plain2
0 0.0% 0 Manually-classified commits
0 0.0% 0 Unclassified commits

debug: more stats

num % stage
0 0.0% Misclassified commits
13 100.0% Classified commits, no corrections

debug: groups

0 0.0% num in revert
0 0.0% num in fixes
0 0.0% num in consecutive
0 0.0% Commits in groups

Highlighted commits

For extra visibility, these are copies of commits found in other sections. Most (if not all) come from the commit message containing "Relnotes:", or commits modifying UPDATING.

-- no commits in this category this week --

Userland programs

Commits about commands found in man section 1 (other than networking).

-- no commits in this category this week --

Documentation

Man pages, release notes, etc.

-- no commits in this category this week --

Hardware support

Hardware drivers and architecture-specific code.

powerpc: keep FP, VMX and VSX ownership changes atomic with preemption
trap() and set_mcontext() change the FP/VMX/VSX ownership state in
several steps with preemption enabled.  A context switch in between
leaves the thread computing with another thread's register contents:

- enable_fpu()/enable_vec() set PCB_FPU/PCB_VEC before loading the
  registers, so a switch mid-load saves a half-loaded unit over the PCB.
- set_mcontext() clears the frame's MSR bits and then the PCB flags;
  a switch in between re-enables the unit, and the thread returns to
  user space with it enabled but not owned, so it is neither saved nor
  restored until the next signal.

Both paths run after every sigreturn(2), setcontext(2) and
swapcontext(3).  A POWER9 test that keeps f14-f31 live across a signal,
with other threads using the FPU on the same CPU, saw 283 corrupted
round trips out of 882000; none after this change.

Hold a critical section around both, as amd64 and arm64 do.

Reviewed by:    jhibbits
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D60054
1f1043d550ea2b8282e692019f17a88896212a76 Piotr Kubaj 2026-09-21 12:48:06

debug: classified in 03-filenames_plain1 by 'sys/powerpc/'

igc: Fix the flow control sysctl
dev.igc.N.fc read and wrote a function-static variable shared by every
igc device, so a read returned the last value written to any of them (3
until the first write), not the state of the device.  The softc value
started as 0, which is also the value of "no flow control", while the
hardware was set up for full flow control.  As a result:

- Writing 0 was taken for no change and did nothing, unless another
  value had been written to that device before.
- igc_reset() took a softc value of 0 for "not set", so a device set to
  0 went back to full flow control on the next init.
- With more than one receive queue the driver enabled per-queue drop
  (SRRCTL.DROP_EN), which is meant for a MAC that does not send pause
  frames, although the MAC was told to send them.
- Values out of range were accepted and ignored.

A write only forced the MAC's flow control bits.  The pause bits
advertised to the link partner, the pause thresholds and DROP_EN stayed
as the last init had set them, and the next link event resolved flow
control from the stale advertisement again: a port set to 0 came back
honoring pause frames, for example.

Start the softc value as full, report it, use it as it is in
igc_reset(), reject invalid values, and apply a change by
reinitializing the interface, as the dmac and eee_control sysctls do.

Two things behave differently now.  Changing the mode of a running
interface takes the link down to renegotiate.  And with the default
mode and more than one receive queue DROP_EN is no longer set: a full
receive ring makes the MAC send pause frames, and holds up the other
queues, where it used to drop that queue's packets.  Setting fc to 0 or
1 selects per-queue drop.

Tested on I226-V ports with four receive queues: for each mode, the
flow control bits in CTRL, the pause thresholds and DROP_EN were read
back, and the mode the link partner resolved, also after a down/up.

Reviewed by:            gallatin
Fixes:                  https://cgit.freebsd.org/src/commit/?id=517904de5cca ("igc(4): Introduce new driver for the Intel I225 Ethernet controller.")
MFC after:              2 weeks
Sponsored by:           Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D60363
68386f6b551e64c956c9623b9973be9e462ce1de R. Christian McDonald 2026-10-05 14:01:54

debug: classified in 03-filenames_plain1 by 'sys/dev/'

arm64/gicv5: Use ArmMpidr to find the correct CPU
The GICv5 ACPI code uses CpuInterfaceNumber to as the CPU ID. This a
GICv5 CPU ID and may not be the same as the appropriate FreeBSD value.

It is also possible the target CPU is disabled, e.g. when the hw.ncpu
tunable is uses to limit CPUs. If this is the case we don't want to
enable the CPU in the cpu set as it is offline so cannot handle
interrupts.

Switch to use ArmMpidr to find which pcpu to use when finding which
CPUs the IRS is attached to.

Fixes:  https://cgit.freebsd.org/src/commit/?id=9556306213e1 ("arm64: Add ACPI support to GICv5 driver")
Differential Revision:  https://reviews.freebsd.org/D59993
Sponsored by:   Arm Ltd
412c3a0370491c6745e056266f54ce9aa67017e1 Andrew Turner 2026-10-05 13:31:02

debug: classified in 03-filenames_plain1 by 'sys/arm64/'

arm64: Elide coherent busdma maps
Avoid allocating per-transfer maps for coherent tags that cannot
bounce. Retain maps for cache synchronization, CCA realms, and KMSAN.
These un-used maps carry with them memory and cache miss overheads.

Reviewed by: andrew
Differential Revision: https://reviews.freebsd.org/D60098
Sponsored by: Netflix
16c787fbabb8077df1af3bd3baaddf3b4c0dd8e8 Andrew Gallatin 2026-10-05 14:56:10

debug: classified in 03-filenames_plain1 by 'sys/arm64/'

acpi: Tasks: Remove unnecessary includes
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
2165accd3748c0acb6e82756d71a46509b220fd8 Olivier Certner 2026-10-02 17:11:58

debug: classified in 03-filenames_plain1 by 'sys/dev/'

acpi: Tasks: Document why 'acpi_task_count' is accessed unsynchronized
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
e89c3ac5df58a9eae9d01f325ffc9b34258c4b29 Olivier Certner 2026-10-02 17:14:16

debug: classified in 03-filenames_plain1 by 'sys/dev/'

Networking

Network-related commands, library, and kernel.

netinet6: Fix the OSIOCAIFADDR_IN6 handler
We cannot simply treat a pointer to struct oin6_aliasreq as a pointer to
struct in6_aliasreq: the latter is larger.  In particular, the store to
ifra->ifra_vhid is out of bounds.

Since OSIOCAIFADDR_IN6 does not need to copy data back out, it can
simply use a struct in6_ifaliasreq on the stack.

Reported by:    Andrew <xxx.sys@protonmail.com>
Reviewed by:    pouria
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60184
c109a681456d03fc0737ca83487995e28b759e3b Mark Johnston 2026-10-05 13:13:47

debug: classified in 03-filenames_plain1 by 'sys/netinet6/'

tcp: Preserve borrowed ICMPv6 error mbufs
The TCP-over-UDP ICMP callback receives ip6c_m as a borrowed chain owned
by icmp6_notify_error.  It used m_pulldown() to obtain a contiguous UDP
header even though that API frees the complete chain when the requested
range is unavailable.  The callback could then return without
propagating the lost ownership, leaving raw ICMP delivery to read and
free a stale head.

Validate that the complete UDP header was quoted, copy it through the
chain with m_copydata(), and temporarily advance the parser offset
instead of consuming bytes from the caller-owned packet.

A remote sender can reach the old path when TCP UDP tunneling is enabled
by quoting the configured local UDP source port in an ICMPv6 error and
including only four through seven UDP-header bytes.

Signed-off-by: Andrew Griffiths <andrew@calif.io>

Reviewed by:    pouria, tuexen, markj
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D60143
80af0a32e48bff6ad97e768b16d2dbc01ac8d1c3 Andrew Griffiths 2026-10-05 13:14:38

debug: classified in 03-filenames_plain1 by 'sys/netinet/'

iflib: Do not ring the transmit doorbell when nothing is pending
For a lightly used ring iflib_txd_db_check() may defer zero descriptors,
so its "pending >= limit" test is true even when nothing has been queued
since the last doorbell.  iflib_txq_drain() calls it before, inside and
after its loop, so a sender that drains its own packet wrote the tail
register three times per packet, twice with the value the hardware
already had.

The log of 81be655266fa ("iflib: ensure that tx interrupts enabled and
cleanups") calls skipping the doorbell when db_pending is zero "an
obvious missing optimization"; the comparison against a limit of zero
defeated it.  vmx(4) and mgb(4) have dropped such repeated requests in
the driver since 2019.  Return early when nothing is pending.

Reviewed by:            gallatin
MFC after:              2 weeks
Sponsored by:           Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D60290
4a0ec469934a5de60b9b540689703a698ac44105 R. Christian McDonald 2026-10-05 15:17:13

debug: classified in 03-filenames_plain1 by 'sys/net/'

System administration

Stuff in man section 8 (other than networking).

camcontrol: Add support for firmware uploading on HPE-branded drives
b30e67dc130ea8217e92e0b4c462f189e2268eba Peter Eriksson 2026-10-02 16:45:59

debug: classified in 03-filenames_plain1 by 'sbin/'

Libraries

-- no commits in this category this week --

Filesystems

-- no commits in this category this week --

Kernel

Kernel stuff (other than networking, filesystems, and drivers).

LinuxKPI: Add crc16.h for amdkfd support
Reviewed by:  wulf
Differential Revision:  https://reviews.freebsd.org/D60275
d7e7397c217137c9f2465f60a7faf129c87934ec Sourojeet A 2026-10-05 12:10:41

debug: classified in 04-filenames_plain2 by 'sys/'

Build system

bsd.lib.mk: only ctfmerge if objfiles have a CTF section
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=299013
Reported by:    Trond.Endrestol@ximalas.info
Reviewed by:    emaste
Fixes:          https://cgit.freebsd.org/src/commit/?id=222210c6a822 ("libgcc_s: add libgcc_s_asneeded.so wrapper for gcc 16")
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60252
fdd3f6f78888b02a1bfa69a0572317413dc14a45 Siva Mahadevan 2026-10-02 19:54:55

debug: classified in 03-filenames_plain1 by 'share/mk/'

Internal organizational stuff

-- no commits in this category this week --

Testing

-- no commits in this category this week --

Style, typos, and comments

These could go in other categories, but it's more clear if they're here instead.

acpi: Tasks: Make OsdSchedule.c whitespace clean
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
f0825f75bab8ae7cb8e0ba717f76110b6f1862f3 Olivier Certner 2026-10-02 17:12:46

debug: classified in 01-style by '[wW]hitespace'

Contrib code

-- no commits in this category this week --

Reverted commits

-- no commits in this category this week --

Unclassified commits

Not classified automatically, and waiting for manual attention.

-- no commits in this category this week --

Technical notes

Dates:

Automatic grouping:

Automatic categories:

Source code:


Generated with commits-periodical 0.21 at 2026-10-05 17:32:25+00:00.

This work is supported by Tarsnap Backup Inc.

Alternate version: 2026-10-05 (release)