FreeBSD/src f02a539 — sys/powerpc/aim mmu_radix.c

powerpc/radix: include page tables in minidumps

The radix pmap did not implement the minidump pmap callbacks, so radix
minidumps were emitted with an empty pmap section.  Such dumps do not
contain enough information for libkvm to translate kernel virtual
addresses.

Snapshot the 64KB radix root table in the pmap section, add lower-level
page-table pages to the sparse dump, and include pages backing non-DMAP
kernel mappings.  Keep the bulk direct map out of the dump while
retaining the relocated kernel image.

PR:             298532
Reviewed by:    jhb
Approved by:    jhb (mentor)
MFC after:      2 weeks
Sponsored by:   FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59743

(cherry picked from commit a38a698704b0289db3260617116a455fecdd54f6)
DeltaFile
+157-0sys/powerpc/aim/mmu_radix.c
+157-01 files

FreeBSD/src ff904d7 — sys/arm/arm minidump_machdep.c

arm: pad minidump page table

libkvm locates the sparse page array after the page-rounded PTE table
size, but the ARM minidump writer emitted only the unrounded size.  When
the table size was not page-aligned, libkvm therefore read every dumped
physical page at the wrong offset.

The mismatch was introduced when libkvm began rounding ptesize.  It has
affected ARM minidumps since ffdeef323449 ("libkvm: Improve physical
address lookup scaling."). It is exposed when the dumped KVA span is not
a multiple of 4 MiB.

Zero-pad the final PTE page and include the padding in the dump size.

Reviewed by:    jhb
Approved by:    jhb (mentor)
Fixes:          ffdeef323449 ("libkvm: Improve physical address lookup scaling.")
MFC after:      2 weeks
Sponsored by:   FreeBSD Foundation

    [3 lines not shown]
DeltaFile
+4-2sys/arm/arm/minidump_machdep.c
+4-21 files

FreeBSD/src b85a27b — lib/libkvm kvm_powerpc64.h kvm_minidump_powerpc64.c, lib/libkvm/tests kvm_open2_test.c

libkvm: support powerpc64 radix minidumps

PowerPC64 radix minidumps use a 64KB root directory followed by three
levels of 4KB page tables.  Add an MMU backend which walks those tables,
handles large-page leaves, and decodes their always-big-endian entries
on both powerpc64 and powerpc64le.

Reject old radix minidumps whose pmap section is empty with a specific
diagnostic.  Add a synthetic powerpc64le dump test which reads a page
through both its kernel and direct-map addresses.

PR:             298532
Reviewed by:    jhb
Approved by:    jhb (mentor)
MFC after:      2 weeks
Sponsored by:   FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59743

(cherry picked from commit 592ede65bd48f16e5c46a016e92b732ed90094d2)
DeltaFile
+270-0lib/libkvm/kvm_minidump_powerpc64_radix.c
+118-0lib/libkvm/tests/kvm_open2_test.c
+2-1lib/libkvm/Makefile
+2-0lib/libkvm/kvm_powerpc64.h
+2-0lib/libkvm/kvm_minidump_powerpc64.c
+394-15 files

FreeBSD/src 64060ae — . .cirrus.yml, .cirrus-ci pkg-install.sh

ci: Remove Cirrus CI files

Cirrus CI shutted down its service on June 1, 2026 and its CI dashboard
website (https://cirrus-ci.com) is now inaccessible. Since these files
are no longer used, remove them from the repository.

Reviewed by:    brooks, emaste, lwhsu
Approved by:    olce (mentor)
MFC after:      2 weeks
Sponsored by:   FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59858

(cherry picked from commit 8d31b7856f774554ffd5bb382bd2b3f6534817a0)
DeltaFile
+0-220.cirrus.yml
+0-22.cirrus-ci/pkg-install.sh
+0-2422 files

FreeBSD/src a73e8c4 — lib/libkvm kvm_powerpc64.c, lib/libkvm/tests kvm_open2_test.c

libkvm: route powerpc64 minidumps to minidump backend

The regular powerpc64 core probes only checked the kernel ELF and thus
also matched minidumps.  In particular, the powerpc64le probe could
claim a minidump before the minidump backend and then reject it as an
invalid ELF core.

Exclude minidumps from both regular powerpc64 probes and add a
regression test that verifies a powerpc64le minidump reaches the
minidump parser.

Reviewed by:    jhibbits
Approved by:    olce (mentor)
Fixes:          f4eb39ba6bc9 ("[PowerPC64LE] libkvm powerpc64le support.")
MFC after:      2 weeks
Sponsored by:   FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59719

(cherry picked from commit 51b1272fca667ad4c57d94ca24600bf68f29ebd2)
DeltaFile
+67-0lib/libkvm/tests/kvm_open2_test.c
+4-2lib/libkvm/kvm_powerpc64.c
+71-22 files

FreeBSD/src 8135c7e — lib/libkvm kvm_minidump_powerpc64_hpt.c kvm_minidump_powerpc64.c

libkvm: support little-endian powerpc64 minidumps

Reviewed by:    jhibbits
Approved by:    olce (mentor)
MFC after:      2 weeks
Sponsored by:   FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59719

(cherry picked from commit 7b8f3db50cc992a3676e7e5ac207024e073884d4)
DeltaFile
+12-12lib/libkvm/kvm_minidump_powerpc64.c
+2-2lib/libkvm/kvm_minidump_powerpc64_hpt.c
+14-142 files

FreeBSD/src 2465e78 — sys/powerpc/aim mmu_radix.c

powerpc/radix: synchronize temporary kernel mappings

The radix kremove implementation cleared a kernel PTE without
invalidating its TLB entry.  Reusing crashdumpmap could therefore keep
accessing an old physical page, causing minidumps to contain repeated
stale page contents.

Invalidate the removed kernel mapping and synchronize newly installed
kernel PTEs before they are accessed.

Reviewed by:    jhibbits
Approved by:    olce (mentor)
Fixes:          65bbba25d214 ("powerpc64: Implement Radix MMU for POWER9 CPUs")
MFC after:      2 weeks
Sponsored by:   FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59728

(cherry picked from commit 8970a9f2ef781ab4f7d3fa446f7c6ac5eda26cc0)
DeltaFile
+3-0sys/powerpc/aim/mmu_radix.c
+3-01 files

FreeBSD/src 0687bcb — sys/dev/ixl if_ixl.c ixl_txrx.c

ixl: fix big-endian hardware interface handling

Correct the byte order at the driver interfaces that do not operate in
host order. Encode little-endian Admin Queue VSI and MAC/VLAN fields,
and decode firmware-provided queue handles, statistics indices, and
event parameters before using them.

Decode transmit descriptor writeback before examining it, and construct
VLAN descriptor fields in host order for the final descriptor
conversion. Store paged HMC descriptors in little-endian form and retain
the selected field bits when reading HMC contexts.

Keep MMIO values in host order for bus-space accessors and remove the
obsolete le16_to_cpu no-op macro. In particular, retain the atomic
bus_space_read_8() used for 64-bit registers.

On big-endian systems, the unconverted perfect-match filter flag is
presented to firmware as 0x0100 instead of 0x0001. Firmware rejects that
command with EINVAL, leaving receive traffic functional only in

    [9 lines not shown]
DeltaFile
+10-8sys/dev/ixl/ixl_pf_iflib.c
+7-6sys/dev/ixl/ixl_pf_main.c
+4-4sys/dev/ixl/ixl_pf_iov.c
+4-4sys/dev/ixl/i40e_lan_hmc.c
+5-2sys/dev/ixl/ixl_txrx.c
+3-2sys/dev/ixl/if_ixl.c
+33-263 files not shown
+35-309 files

FreeBSD/src 8f93ad7 — sys/dev/iwm if_iwm_pcie_trans.h if_iwmvar.h

iwm: add MSI-X support

This brings over the MSI-X support from OpenBSD.
It's mostly untested at this point.

Locally tested:

* Intel 7260, STA mode (but I don't know yet if it used msi-x)

Obtained from: OpenBSD a6e25c727a2214219715b51ba6af2221d7e0d674

Differential Revision:  https://reviews.freebsd.org/D60079
DeltaFile
+144-11sys/dev/iwm/if_iwm.c
+116-7sys/dev/iwm/if_iwm_pcie_trans.c
+7-0sys/dev/iwm/if_iwmvar.h
+2-0sys/dev/iwm/if_iwm_pcie_trans.h
+269-184 files

FreeBSD/src 7ce6790 — sys/dev/iwm if_iwm_pcie_trans.h if_iwm_pcie_trans.c

iwm: clear persistence bit on 9000 series NICs

From what I've gathered, this is to make sure that the firmware
clears state and is reloaded through hardware bring-up and
suspend/resume.

It may fix instability issues with the 9000 series NICs.
I'll need to test it out first.

Obtained from: OpenBSD a6e25c727a2214219715b51ba6af2221d7e0d674

Differential Revision:  https://reviews.freebsd.org/D60078
DeltaFile
+25-0sys/dev/iwm/if_iwm_pcie_trans.c
+1-0sys/dev/iwm/if_iwm_pcie_trans.h
+26-02 files

FreeBSD/src e6ca3d0 — sys/dev/iwm if_iwm.c

iwm: add thermal cutoff to firmware command support

This is based on firmware capabilities.

Locally tested:

* Intel 7260, STA mode

Obtained from: OpenBSD a6e25c727a2214219715b51ba6af2221d7e0d674

Differential Revision:  https://reviews.freebsd.org/D60077
DeltaFile
+28-0sys/dev/iwm/if_iwm.c
+28-01 files

FreeBSD/src b15ec53 — sys/dev/iwm if_iwm_9000.c if_iwm_config.h

iwm: Intel 9000 series bits from OpenBSD

* Add basic SOC conf firmware command
* Configured with the same xtal latency as used by openbsd

Currently untested; will need to find a device.

Obtained from: OpenBSD a6e25c727a2214219715b51ba6af2221d7e0d674

Differential Revision:  https://reviews.freebsd.org/D60076
DeltaFile
+45-0sys/dev/iwm/if_iwm.c
+3-0sys/dev/iwm/if_iwm_config.h
+1-0sys/dev/iwm/if_iwm_9000.c
+49-03 files

FreeBSD/src 65373e8 — sys/dev/iwm if_iwmvar.h if_iwm.c

iwm: bring in the command table version code from openbsd

Parse the command table; same way as OpenBSD (ie, memcpy()
and not anything endianness happy.)

Nothing is using it yet.

Obtained from: OpenBSD a6e25c727a2214219715b51ba6af2221d7e0d674

Differential Revision:  https://reviews.freebsd.org/D60075
DeltaFile
+31-0sys/dev/iwm/if_iwm.c
+4-0sys/dev/iwm/if_iwmvar.h
+35-02 files

FreeBSD/src b00a90d — sys/dev/iwm if_iwm.c if_iwmvar.h

iwm: bring over placeholder calibration information

Like openbsd at this commit, it's not being used anywhere yet.

Obtained from: OpenBSD a6e25c727a2214219715b51ba6af2221d7e0d674

Differential Revision:  https://reviews.freebsd.org/D60074
DeltaFile
+8-0sys/dev/iwm/if_iwmvar.h
+6-0sys/dev/iwm/if_iwm.c
+14-02 files

FreeBSD/src 1f07bcd — sys/dev/iwm if_iwmreg.h if_iwm_phy_ctxt.c

iwm: placeholders for HT rates, update some FW flags to openbsd

* update a flag to openbsd iwm
* lay down placeholder ht rate / MIMO config routines based on
  openbsd's updated init path

Obtained from: OpenBSD a6e25c727a2214219715b51ba6af2221d7e0d674

Differential Revision:  https://reviews.freebsd.org/D60073
DeltaFile
+36-3sys/dev/iwm/if_iwm.c
+3-0sys/dev/iwm/if_iwm_phy_ctxt.c
+1-1sys/dev/iwm/if_iwmreg.h
+40-43 files

FreeBSD/src b3ef401 — sys/dev/iwm if_iwmvar.h if_iwm.c

iwm: add lock assertion checks

Add lock/unlock assertions to use in current and future code.

Differential Revision:  https://reviews.freebsd.org/D60400
DeltaFile
+4-0sys/dev/iwm/if_iwm.c
+2-0sys/dev/iwm/if_iwmvar.h
+6-02 files

FreeBSD/src edb100a — libexec/rtld-elf rtld.c

rtld: fix indent

(cherry picked from commit 46399049f8876ca877604f51689aed8cf9105722)
DeltaFile
+2-2libexec/rtld-elf/rtld.c
+2-21 files

FreeBSD/src 4c0c1c3 — sys/ufs/ffs ffs_suspend.c

ufssuspend(4): mark non-passable

(cherry picked from commit 499901dd7a0afc77745ede85c4e6ec063d43a84d)
DeltaFile
+1-0sys/ufs/ffs/ffs_suspend.c
+1-01 files

FreeBSD/src 23c33a9 — sys/fs/devfs devfs_vnops.c

devfs_open: do not access dsw after dev_relthread()

(cherry picked from commit 1e595e959f66e11d0490e90270b9fb701cbc6739)
DeltaFile
+3-2sys/fs/devfs/devfs_vnops.c
+3-21 files

FreeBSD/src 10191b8 — sys/fs/devfs devfs_vnops.c, sys/sys conf.h

cdevsw: add D_NONPASSABLE flag

(cherry picked from commit 850d4562928ea9308dd9188d5014bcabe7049938)
DeltaFile
+25-2sys/fs/devfs/devfs_vnops.c
+2-0sys/sys/conf.h
+27-22 files

FreeBSD/src db5459b — sys/arm64/arm64 vfp.c

arm64 vfp: eliminate nested critical sections

At two out of three call sites to vfp_restore_state_common(), the caller
must use critical_{enter,exit}() to prevent preemption between its call
to vfp_restore_state_common() and other actions, notably its call to
sve_enable().  So, it is arguably better to make
vfp_restore_state_common()'s caller responsible for performing
critical_{enter,exit}() and simply perform CRITICAL_ASSERT() inside
vfp_restore_state_common().

(cherry picked from commit 189ee41b6cc3b0d92c291cc854d9781afec23ad4)
DeltaFile
+3-4sys/arm64/arm64/vfp.c
+3-41 files

FreeBSD/src 5180fce — sys/netlink netlink_message_writer.c ktest_netlink_message_writer.c, tests/sys/netlink test_netlink_message_writer.py

netlink: Make room for the unfinished message when growing the buffer

When a message outgrows the writer's buffer, _nlmsg_refill_buffer()
allocates a larger one and moves the unfinished message there.  The new
buffer was sized for the data about to be added alone, so with enough of
the message already written the caller wrote past its end and left it
with datalen > buflen.  A 20-byte message plus an attribute of 8176
bytes got a buffer of 8192 bytes for 8200 bytes of data, and reading it
panicked an INVARIANTS kernel in nl_soreceive().

Size the new buffer for both, and add a ktest for it.

Reviewed by:            glebius
Fixes:                  7e5bf68495cc ("netlink: add netlink support")
MFC after:              1 week
Sponsored by:           Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D60541
DeltaFile
+97-0sys/netlink/ktest_netlink_message_writer.c
+21-0tests/sys/netlink/test_netlink_message_writer.py
+4-3sys/netlink/netlink_message_writer.c
+122-33 files

FreeBSD/src e4ac63e — sys/arm64/arm64 vfp.c

arm64: close a race in SVE register management

While testing an unrelated pmap change, D58708, that dramatically
reduces the number of TLBI instructions performed, and likely the
timing of unrelated events, I started seeing "Storing an invalid VFP
state" panics in vfp_save_state_common().  However, the origin of this
panic is elsewhere, in the else branch of sve_restore_state().
Specifically, my pmap change seems to have increased the likelihood that
the thread executing the else branch would be preempted by another
thread between the critical_exit() inside the else branch's call to
vfp_restore_state_common() and its own call to critical_enter().  Prior
to expanding the scope of the else branch's critical section, the MPASS
added by this change would fire, catching the problem at its source,
rather than later in vfp_save_state_common().

(cherry picked from commit 6fa9c2b1d2824034268646e0744e5e010155ffaf)
DeltaFile
+4-2sys/arm64/arm64/vfp.c
+4-21 files

FreeBSD/src 2409e24 — sys/net80211 DRIVER_REGISTRATION.md

net80211: add driver registration documentation

This is a brief introduction into the top-level newbus
driver methods and net80211 driver registration.

Differential Revision:  https://reviews.freebsd.org/D60503
Reviewed by: ziaee, zi
DeltaFile
+252-0sys/net80211/DRIVER_REGISTRATION.md
+252-01 files

FreeBSD/src e8b5899 — sys/net80211 README.md

net80211: add DRIVER_REGISTRATION to README.md ; fix links

* add the driver registration doc to README.md
* fix the links to resolve correctly with current doxygen
  (1.18.0) with the current file path -> sanity conversion ->
  html path rules.

Differential Revision:  https://reviews.freebsd.org/D60504
Reviewed by: ziaee
DeltaFile
+5-5sys/net80211/README.md
+5-51 files

FreeBSD/src 58a8f10 — libexec/rc safe_eval.sh

safe_eval.sh: safe_set_var use [:space:] if possible

Also use $ssv_extra$ssv_only as the default for $ssv_only has '-'
which must be last in the character class.
DeltaFile
+10-5libexec/rc/safe_eval.sh
+10-51 files

FreeBSD/src 429f2fb — sys/netinet sctputil.c

sctp: hold tcp lock when calling sctp_calc_rwnd()

This was done in all code paths except one. Fix this to avoid
race conditions.

Reported by:    syzbot+2e2dc35c0e24a74663a7 at syzkaller.appspotmail.com
Reviewed by:    tuexen
MFC after:      1 week
MFC to:         stable/14
MFC to:         stable/15
DeltaFile
+14-21sys/netinet/sctputil.c
+14-211 files

FreeBSD/src 7c75c96 — libexec/rc safe_eval.sh

safe_eval.sh: safe_set_var avoid positional args

Use options to set ssv_{allow,only,extra}
Improve the documentation.
Add a test harness for safe_set_var.
DeltaFile
+74-16libexec/rc/safe_eval.sh
+74-161 files

FreeBSD/src 40d42dc — sbin/pfctl pfctl.h pfctl.c

pfctl: remove the prototype of pfr_ina_define()

The function went when DIOCRINADEFINE was converted to netlink; pfctl
calls pfctl_ina_define() from libpfctl instead.  Name that one in the
error message that pfctl_load_tables() prints when it fails.

Fixes:          219ce3063840 ("pf: convert DIOCRINADEFINE to netlink")
Sponsored by:   Rubicon Communications, LLC ("Netgate")
DeltaFile
+0-2sbin/pfctl/pfctl.h
+1-1sbin/pfctl/pfctl.c
+1-32 files

FreeBSD/src 5fc8fe3 — lib/libpfctl libpfctl.c

libpfctl: Fix the counts returned by pfctl_ina_define()

The counts of a table definition were stored only if the caller's
variables already held a non-zero value, and read uninitialised ones
otherwise.  pfctl_ina_define() passes the address of two uninitialised
locals and sums them up.

Reviewed by:            kp
Fixes:                  219ce3063840 ("pf: convert DIOCRINADEFINE to netlink")
Sponsored by:           Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D60614
DeltaFile
+2-2lib/libpfctl/libpfctl.c
+2-21 files