FreeBSD/src 704ec5esbin/ipfw15 ipfw2.c ipfw.8, sbin/ipfw15/include15/netinet ip_fw15.h

ipfw: add ability to run ipfw(8) binary with 15.0+ kernel module

After D46183 the KBI was changed and this made the upgrade procedure
to 15.0+ version a bit difficult, because the old binary can not load
firewall rules when the new kernel is loaded.

This commit adds the sbin/ipfw15 binary that uses new KBI, and then
original sbin/ipfw can detect new KBI and run the new binary instead.

PR:             291562
Reviewed by:    jhb, glebius
Fixes:          4a77657cbc01
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D54763
DeltaFile
+6,129-0sbin/ipfw15/ipfw2.c
+5,094-0sbin/ipfw15/ipfw.8
+2,096-0sbin/ipfw15/tables.c
+2,016-0sbin/ipfw15/dummynet.c
+1,196-0sbin/ipfw15/nat.c
+1,172-0sbin/ipfw15/include15/netinet/ip_fw15.h
+17,703-017 files not shown
+24,049-023 files

FreeBSD/src f19cb3csys/modules/rtw89 Makefile

rtw89: module Makefile add USB bus attachments

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
DeltaFile
+30-13sys/modules/rtw89/Makefile
+30-131 files

FreeBSD/src 9e17556sys/modules/rtw88 Makefile

rtw88: Add bus attachments to the module Makefile

In addition to PCIe we will support USB and also prepare for SDIO (still
disabled locally).  The module SRCS are split up into a common part,
which we always add.  All three bus parts are guarded by a local
variable in the Makefile.
In addition the PCI parts require PCI to be compiled into the kernel.
We add that check in case of, e.g., SoCs with SDIO but no PCI, which
may not have PCI in the kernel config and thus the module would fail
to attach.
USB has no additional check as it is fully loadable and does not have
to be in a kernel config.
SDIO depends on an MMCCAM-enabled kernel but is otherwise loadable.

While we could, we are not splitting the various bus attachments into
individual modules as we generally do not do that in FreeBSD. [1]

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days

    [3 lines not shown]
DeltaFile
+61-25sys/modules/rtw88/Makefile
+61-251 files

FreeBSD/src 7fc5c8dsys/contrib/dev/rtw89 pci.c debug.c

rtw89: harmonize all MODULE_DEPEND to rtw89

rtw89 came like rtw88 was done.  Given rtw88 once was split up rtw89
got modelled the same way.  Clean this up too.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
DeltaFile
+0-8sys/contrib/dev/rtw89/pci.c
+5-0sys/contrib/dev/rtw89/debug.c
+5-0sys/contrib/dev/rtw89/core.c
+3-0sys/contrib/dev/rtw89/usb.c
+13-84 files

FreeBSD/src 57b8396sys/contrib/dev/rtw89 debug.c fw.h

rtw89: cleanup static_assert() calls

These days we can use static_assert() without trouble so remove the
FreeBSD-specific rtw89_static_assert implementation.  This reduces
the diff to upstream and will ease future driver updates.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
DeltaFile
+0-12sys/contrib/dev/rtw89/debug.c
+0-8sys/contrib/dev/rtw89/fw.h
+0-8sys/contrib/dev/rtw89/phy.c
+0-6sys/contrib/dev/rtw89/rtw8851b.c
+0-6sys/contrib/dev/rtw89/core.h
+0-6sys/contrib/dev/rtw89/rtw8852c.c
+0-463 files not shown
+0-589 files

FreeBSD/src 49c1b38sys/contrib/dev/rtw88 pci.c usb.c

rtw88: harmonize all MODULE_DEPEND to rtw88

From the time I used to split up the driver into a core part and
bus attachment sub-drivers the various bus attachments had their own
module name but all is "rtw88" now.

Core functionality depends on linuxkpi, linuxkpi_wlan, and for debug.c
lindebugfs.
Each bus attachment then depends on its own parent layer if needed:
PCI gets pull in through linuxkpi, USB: depends on [the future] linuxkpi_usb,
and SDIO: depends on [the future] linuxkpi_sdio.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Differential Revision: https://reviews.freebsd.org/D55021
DeltaFile
+0-8sys/contrib/dev/rtw88/pci.c
+1-4sys/contrib/dev/rtw88/usb.c
+5-0sys/contrib/dev/rtw88/main.c
+4-0sys/contrib/dev/rtw88/debug.c
+10-124 files

FreeBSD/src c2f799dsys/net ifdi_if.m iflib.c

iflib: Add support for SIOCGIFDOWNREASON ioctl

This change adds native support for the SIOCGIFDOWNREASON ioctl in iflib.

When ifconfig issues SIOCGIFDOWNREASON, the request is now routed through a
new driver callback (IFDI_GET_DOWNREASON). iflib allocates the ifdownreason
structure, calls the driver to fill the down-reason message, and then
returns the data back to ifconfig for display.

Without this change, iflib-based drivers cannot implement link-down reason
reporting even if the hardware provides the information.

No functional change for existing drivers unless they implement the new
IFDI_GET_DOWNREASON method. Existing drivers continue to behave as before.

Reviewed by: gallatin, erj, kgalazka, ssaxena, #iflib
Differential Revision: https://reviews.freebsd.org/D54045
MFC After: 1 week
DeltaFile
+11-0sys/net/ifdi_if.m
+5-0sys/net/iflib.c
+16-02 files

FreeBSD/src feb0a7esys/dev/pci pci_iov.c

pci_iov: Reuse downstream bridge bus window if it already covers VF bus

If the parent bridge's [secondary, subordinate] window already covers
the VF bus (e.g., programmed by BIOS or a prior PF), skip allocating
PCI_RES_BUS. This avoids a duplicate rman allocation in the multi-PF
case while still allocating when growth is actually needed.

Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D52163
MFC After: 1 week
DeltaFile
+20-9sys/dev/pci/pci_iov.c
+20-91 files

FreeBSD/src 10f91d9sys/contrib/dev/rtw89 core.c phy.c

rtw89: update Realtek's rtw89 driver

This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7 ( tag: v6.19-rc6 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
PR:             285228
DeltaFile
+820-93sys/contrib/dev/rtw89/core.c
+503-38sys/contrib/dev/rtw89/phy.c
+377-113sys/contrib/dev/rtw89/pci.c
+106-340sys/contrib/dev/rtw89/cam.h
+423-1sys/contrib/dev/rtw89/debug.c
+290-63sys/contrib/dev/rtw89/fw.c
+2,519-64852 files not shown
+4,650-1,10058 files

FreeBSD/src bf603dbsys/dev/mfi mfi.c

dev/mfi: include sys/abi_compat.h unconditionally

not only for COMPAT_FREEBSD32 case.  The driver uses INPTR() for
non-compat32 code.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+0-2sys/dev/mfi/mfi.c
+0-21 files

FreeBSD/src 5f3192bsys/amd64/acpica acpi_wakeup.c

amd64/acpica/acpi_wakeup.c: do not store to WARMBOOT_OFF in efi_boot case

Split acpi_wakeup_cpus() into acpi_wakeup_cpus_bios() and
acpi_wakeup_cpus_efi().  The former needs to manipulate zero page and
CMOS state, the later does not.

Referenced commit left the write to WARMBOOT_OFF in case of
acpi_wakeup_ap() failed.

Fixes:  e99255c8a6cae324aeede7f5013d080a2d361e3f
Reviewed by:    imp
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55205
DeltaFile
+35-21sys/amd64/acpica/acpi_wakeup.c
+35-211 files

FreeBSD/src 30c0439contrib/blocklist/bin blacklistd.c run.c, contrib/blocklist/port popenve.c

Adapt changes from blocklist 2026-02-07 (10a907f)

Also apply the fix from PR 258411.

This is a direct commit to stable/14, as blacklist has been renamed to
blocklist upstream.
DeltaFile
+37-34contrib/blocklist/port/popenve.c
+15-14contrib/blocklist/bin/blacklistd.c
+7-6contrib/blocklist/bin/run.c
+2-2contrib/blocklist/bin/blacklistd.conf.5
+0-1contrib/blocklist/bin/support.c
+61-575 files

FreeBSD/src 26fcc4acontrib/blacklist/bin blacklistd.c run.c, contrib/blacklist/port popenve.c

Adapt changes from blocklist 2026-02-07 (10a907f)

Also apply the fix from PR 258411.

This is a direct commit to stable/13, as blacklist has been renamed to
blocklist upstream.
DeltaFile
+37-34contrib/blacklist/port/popenve.c
+15-14contrib/blacklist/bin/blacklistd.c
+7-6contrib/blacklist/bin/run.c
+2-2contrib/blacklist/bin/blacklistd.conf.5
+0-1contrib/blacklist/bin/support.c
+61-575 files

FreeBSD/src ecadac7sys/dev/mfi mfi.c, sys/sys abi_types.h abi_compat.h

sys/event.h: reduce namespace pollution from sys/abi_compat.h

Split out types definitions into sys/abi_types.h, and only include
abi_types.h into sys/event.h.

Tested and reviewed by: bz
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55202
DeltaFile
+39-0sys/sys/abi_types.h
+1-29sys/sys/abi_compat.h
+3-2sys/dev/mfi/mfi.c
+1-1sys/sys/event.h
+44-324 files

FreeBSD/src 1864a03contrib/blocklist/bin blacklistd.c blacklistd.conf.5

blocklist: blacklist: Chase recent upstream changes

MFC after:      3 days

(cherry picked from commit a25b12c6ce63be1fefb31d14daca332682fd31fc)
DeltaFile
+14-14contrib/blocklist/bin/blacklistd.c
+3-3contrib/blocklist/bin/blacklistd.conf.5
+17-172 files

FreeBSD/src d73fac0contrib/blocklist/bin blocklistd.c run.c, contrib/blocklist/port popenve.c

MFV: Import blocklist 2026-02-07 (10a907f)

Merge commit 'a39ba5e2935176fe982235556e46ba3f51178187'

Changes:

https://github.com/zoulasc/blocklist/compare/8a4b011...10a907f

MFC after:      3 days

(cherry picked from commit 56c94c76432b1aafcc9b099398e674f0ae87623c)
DeltaFile
+39-36contrib/blocklist/port/popenve.c
+14-14contrib/blocklist/bin/blocklistd.c
+9-8contrib/blocklist/bin/run.c
+3-3contrib/blocklist/bin/blocklistd.conf.5
+2-3contrib/blocklist/bin/support.c
+67-645 files

FreeBSD/src db20376sys/contrib/dev/athk/ath10k mac.c htt_rx.c, sys/modules/ath10k Makefile

ath10k: cleanup some bits no longer FreeBSD-specific

We have since I did this port in 2023 added ACPI support to LinuxKPI, so
we can use it.  Also there is a linux/of.h header so we no longer need
to guard the #include.

MFC after:      3 days
DeltaFile
+1-35sys/contrib/dev/athk/ath10k/mac.c
+2-3sys/contrib/dev/athk/ath10k/htt_rx.c
+1-3sys/contrib/dev/athk/ath10k/core.c
+1-0sys/modules/ath10k/Makefile
+5-414 files

FreeBSD/src 32efafdsys/modules/ath10k Makefile

ath10k: modules Makefile bus attachments

Given USB in theory compiles add it to the Makefile.  The upstream
support was never finished and I see little chances it ever will be
so keep USB disabled by default.

MFC after:      3 days
DeltaFile
+12-0sys/modules/ath10k/Makefile
+12-01 files

FreeBSD/src ca83c36sys/contrib/dev/athk/ath10k usb.c

ath10k: usb: make compile using [a future] linuxkpi_usb

Make ath10k usb code compile just to gather more USB bits.

Currently (and likely forever) it is useless as the ath10k USB
implementation never got finished.
At the moment it lacks an entry for the USB bus attachment in
core.c ath10k_hw_params_list[].

ath10k_usb0 on uhub1
ath10k_usb0: <Qualcomm Atheros USBWLAN, rev 2.01/92.10, addr 6> on usbus0
ath10k_usb0: Warning: ath10k USB support is incomplete, don't expect anything to work!
ath10k_usb0: Unsupported hardware version: 0x5020001
ath10k_usb0: could not get hw params (-22)
ath10k_usb0: could not probe fw (-22)

There is another possible hardware [1] which was also never merged
upstream.
[1] https://lists.infradead.org/pipermail/ath10k/2024-August/016037.html

    [3 lines not shown]
DeltaFile
+22-0sys/contrib/dev/athk/ath10k/usb.c
+22-01 files

FreeBSD/src c45b60csys/contrib/dev/athk/ath10k pci.c core.c

ath10k: harmonize all MODULE_DEPEND to ath10k

With theoretically multiple bus attachements (unclear if we will ever
support anything but PCI) rename the module name to "ath10k" and use
it consistently.  Move the common depends to core.c and lindebugfs
and usb to their respective files.

MFC after:      3 days
DeltaFile
+0-9sys/contrib/dev/athk/ath10k/pci.c
+6-0sys/contrib/dev/athk/ath10k/core.c
+6-0sys/contrib/dev/athk/ath10k/debug.c
+3-0sys/contrib/dev/athk/ath10k/usb.c
+15-94 files

FreeBSD/src d3c4e89sys/contrib/dev/rtw88 rtw8812au.c rtw8814au.c

rtw88: set .bsddriver.name for USB chipsets

We use the FreeBSD-specifc bsddriver.name to get the device name;
set it everywere consistently.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Differential Revision: https://reviews.freebsd.org/D55020
DeltaFile
+3-0sys/contrib/dev/rtw88/rtw8812au.c
+3-0sys/contrib/dev/rtw88/rtw8814au.c
+3-0sys/contrib/dev/rtw88/rtw8821au.c
+1-1sys/contrib/dev/rtw88/rtw8723du.c
+1-1sys/contrib/dev/rtw88/rtw8821cu.c
+1-1sys/contrib/dev/rtw88/rtw8822bu.c
+12-31 files not shown
+13-47 files

FreeBSD/src 717240csys/contrib/dev/athk/ath10k fwlog.c

ath10k: add sysctl to turn on/off fwlog

FWLOG, if compiled in, was on by default without a way to stop it from
printing everything to the console.  Add a modparam to enable it with
it being disabled by default if available.

MFC after:      3 days
DeltaFile
+17-0sys/contrib/dev/athk/ath10k/fwlog.c
+17-01 files

FreeBSD/src 6387c11sys/contrib/dev/athk/ath10k pci.c bmi.c

ath10k: fix a schedule() call

Using kern_yield does not seem ideal either for polling here;  use a
schedule_timeout() call from LinuxKPI instead and use about 100
iterations per second.

Improve an error message to include the error code so we have a better
idea of what happens.

MFC after:      3 days
DeltaFile
+5-2sys/contrib/dev/athk/ath10k/pci.c
+5-0sys/contrib/dev/athk/ath10k/bmi.c
+10-22 files

FreeBSD/src 3139381sys/compat/linuxkpi/common/include/linux cleanup.h spinlock.h

LinuxKPI: add scoped_guard(), spinlock guard support

The "cleanup.h" implementation got a bit more complicated.

For one we now use a macro to concatenate a prefix, the name, and a
suffix for variable and function declarations.  This was triggered
by the fact that the "guard_" prefix we used was confusing.  We now
use a generic "cleanup_" which is only encoded in the single place
rather than all over the file.

As already indicated by the comment the DEFINE_LOCK_GUARD_0()
macro got split up and a _1 version which also takes a type got
implemented and is used for a spinlock variant used by rtw89(4)
via the new scoped_guard() bits.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D54808
DeltaFile
+103-32sys/compat/linuxkpi/common/include/linux/cleanup.h
+10-0sys/compat/linuxkpi/common/include/linux/spinlock.h
+113-322 files

FreeBSD/src 020ff5esys/compat/linuxkpi/common/include/linux mod_devicetable.h

LinuxKPI: mod_devicetable, add comment about [future] LinuxKPI USB

USB structures are defined with the native USB implementation.
Just leave a comment why they are not here.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D54991
DeltaFile
+6-0sys/compat/linuxkpi/common/include/linux/mod_devicetable.h
+6-01 files

FreeBSD/src 1f4fbcfsys/compat/linuxkpi/common/include/linux module.h pci.h

LinuxKPI: move MODULE_DEVICE_TABLE from pci.h to module.h

Move the MODULE_DEVICE_TABLE macro to module.h where it belongs
in preparation for different bus (e.g., USB, SDIO) support.
The various struct <bus>_device_id, if not elsewhere, should be
defined in mod_devicetable.h.

This is the next step after 2f5666c1727c.

No functional changes.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    emaste, dumbbell
Differential Revision: https://reviews.freebsd.org/D54900
DeltaFile
+18-0sys/compat/linuxkpi/common/include/linux/module.h
+0-18sys/compat/linuxkpi/common/include/linux/pci.h
+18-182 files

FreeBSD/src 1f19fc2sys/compat/linuxkpi/common/src linux_pci.c

LinuxKPI: pci: make sure a tailq and lock are initialized

Move the initializations of the tailq and lock from
linux_pci_attach_device() into lkpifill_pci_dev() so that they are
initialized in all cases we create a device (see all the possible
callers of lkpifill_pci_dev()).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    emaste, dumbbell
Differential Revision: https://reviews.freebsd.org/D54861
DeltaFile
+3-4sys/compat/linuxkpi/common/src/linux_pci.c
+3-41 files

FreeBSD/src b615b48sys/compat/linuxkpi/common/src linux_pci.c

LinuxKPI: expand dma_sync_single_for_cpu() in lkpi_dma_unmap()

In case lkpi_dma_unmap() would call dma_sync_single_for_cpu() we get
into a lock recursion which will trigger a panic with debug kernels.

It would be hard to provide an internal "locked" version for
dma_sync_single_for_cpu().  In the old days this would not have
been a problem but (long before we added the missing sync calls)
some locks got folded into one in a6619e8d9c1a3.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Observed with:  iwlwifi mld
Reviewed by:    dumbbell
Differential Revision:  https://reviews.freebsd.org/D54841
DeltaFile
+19-2sys/compat/linuxkpi/common/src/linux_pci.c
+19-21 files

FreeBSD/src 840f478sys/net80211 ieee80211_freebsd.c

net80211: in net80211_vap_printf() also use vprintf()

While everything else uses vprintf() and net80211_vap_printf()
vlog() the debug output of wlandebug sessions can be weird.
For consistency use vprintf() everywhere to have homogeneous logging.

Sponosred by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    adrian
Differential Revision: https://reviews.freebsd.org/D54795
DeltaFile
+4-6sys/net80211/ieee80211_freebsd.c
+4-61 files

FreeBSD/src a2eb089. UPDATING, sys/netinet6 nd6_rtr.c

sys/netinet6: switch net.inet6.ip6.use_stableaddr to on by default

This change switches to using RFC 7217 algorithm as the default to
generate SLAAC addresses for IPv6 interfaces configured with
accept_rtadv.

Reviewed by:            pouria, glebius, zlei
Approved by:            zlei
Relnotes:               yes
Differential Revision:  https://reviews.freebsd.org/D55138
DeltaFile
+9-0UPDATING
+1-1sys/netinet6/nd6_rtr.c
+10-12 files