<freeStyleBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='org.jenkinsci.plugins.parameterizedscheduler.ParameterizedTimerTriggerCause'><shortDescription>Started by timer with parameters: {BUILD_CFG_TARGET_DEV=WR8750N/WR9500N/WG600HP (AR9344)}</shortDescription></cause></action><action _class='hudson.model.ParametersAction'><parameter _class='hudson.model.BooleanParameterValue'><name>BUILD_CFG_DISTCLEAN</name><value>true</value></parameter><parameter _class='hudson.model.BooleanParameterValue'><name>BUILD_CFG_DIFFCONFIG</name><value>true</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BUILD_CFG_TARGET_DEV</name><value>WR8750N/WR9500N/WG600HP (AR9344)</value></parameter></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>500</buildNumber><marked><SHA1>43ec1e56b4d031854f9c76957e985417304b8846</SHA1><branch><SHA1>43ec1e56b4d031854f9c76957e985417304b8846</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>43ec1e56b4d031854f9c76957e985417304b8846</SHA1><branch><SHA1>43ec1e56b4d031854f9c76957e985417304b8846</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>43ec1e56b4d031854f9c76957e985417304b8846</SHA1><branch><SHA1>43ec1e56b4d031854f9c76957e985417304b8846</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/openwrt/openwrt</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://taiha.net/jenkins/job/OpenWrt-master-NEC-BSD-Aterm/500/artifact</artifactsUrl><changesUrl>https://taiha.net/jenkins/job/OpenWrt-master-NEC-BSD-Aterm/changes</changesUrl><displayUrl>https://taiha.net/jenkins/job/OpenWrt-master-NEC-BSD-Aterm/500/</displayUrl><testsUrl>https://taiha.net/jenkins/job/OpenWrt-master-NEC-BSD-Aterm/500/testReport</testsUrl></action><building>false</building><description>diffconfig: true, device: WR8750N/WR9500N/WG600HP (AR9344)</description><displayName>#500</displayName><duration>34508</duration><estimatedDuration>1655647</estimatedDuration><fullDisplayName>OpenWrt (master) for NEC Aterm (NetBSD based) #500</fullDisplayName><id>500</id><inProgress>false</inProgress><keepLog>false</keepLog><number>500</number><queueId>65</queueId><result>FAILURE</result><timestamp>1790811600461</timestamp><url>https://taiha.net/jenkins/job/OpenWrt-master-NEC-BSD-Aterm/500/</url><builtOn>home-slave02_taihasv</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/kernel/mac80211/patches/rtl/001-wifi-rtw88-TX-report-with-long-timeout-for-non-PCIE-devices.patch</affectedPath><affectedPath>package/kernel/mac80211/Makefile</affectedPath><commitId>3ee349d4c6e45d4e20b0f0c6a194d952a35c6123</commitId><timestamp>1790580290000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>mac80211: realtek: use long TX report timeout for non-PCIe

Several rtw88 USB and SDIO chips do not always report the TX status of a
frame within RTW_TX_PROBE_TIMEOUT (500 ms). The driver then drops the
tracking skbs and warns

    rtw_8822bu 3-1:1.0: failed to get tx report from firmware

every one to three seconds on an access point serving clients that use
power save. mac80211 never learns the ACK status of those frames, which
hostapd uses to tell whether a polled station is still there.

Add the pending upstream patch that uses the 2500 ms timeout, so far
applied only to RTL8723DU, for every USB and SDIO device and keeps
500 ms for PCIe. It is adapted to backports 7.2, which does not have
the RTL8723BS condition yet.

Pending upstream, submitted to rtw-next:
https://lore.kernel.org/linux-wireless/20260924004637.9958-1-pkshih@realtek.com/

Tested with backports 6.12.96 on a TP-Link Archer T4U v3 (RTL8812BU,
handled by rtw_8822bu) as a 2.4 GHz AP with six associated clients.

Signed-off-by: Josef Schlehofer &lt;pepe.schlehofer@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25303
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-28 09:24:50 +0200</date><id>3ee349d4c6e45d4e20b0f0c6a194d952a35c6123</id><msg>mac80211: realtek: use long TX report timeout for non-PCIe</msg><path><editType>edit</editType><file>package/kernel/mac80211/Makefile</file></path><path><editType>add</editType><file>package/kernel/mac80211/patches/rtl/001-wifi-rtw88-TX-report-with-long-timeout-for-non-PCIE-devices.patch</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/ipq806x/dts/qcom-ipq8068-mr42.dts</affectedPath><affectedPath>target/linux/ipq806x/dts/qcom-ipq8068-ap3935.dts</affectedPath><affectedPath>target/linux/ipq806x/dts/qcom-ipq8065-nbg6817.dts</affectedPath><affectedPath>target/linux/ipq806x/dts/qcom-ipq8064-unifi-ac-hd.dts</affectedPath><affectedPath>target/linux/ipq806x/dts/qcom-ipq8068-ap-32x.dts</affectedPath><affectedPath>target/linux/ipq806x/dts/qcom-ipq8062-wg2600hp3.dts</affectedPath><affectedPath>target/linux/ipq806x/dts/qcom-ipq8065-nighthawk.dtsi</affectedPath><affectedPath>target/linux/ipq806x/dts/qcom-ipq8068-ss-w2-ac2600.dts</affectedPath><affectedPath>target/linux/ipq806x/dts/qcom-ipq8064-ap161.dts</affectedPath><affectedPath>target/linux/ipq806x/dts/qcom-ipq8068-ecw5410.dts</affectedPath><affectedPath>target/linux/ipq806x/dts/qcom-ipq8068-mr52.dts</affectedPath><affectedPath>target/linux/ipq806x/dts/qcom-ipq8065-ac400i.dts</affectedPath><commitId>313b5621815fff4600f7a9ac0ae7c2e36d52e035</commitId><timestamp>1790591653000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>ipq806x: remove unused mdiobus property

The property dates back to the CAF snps_gmac driver, where it told the
MAC which MDIO bus its PHY was on, and has been carried over from device
to device since the driver was replaced by upstream stmmac in 2015.
Nothing in the tree parses it anymore.

The MDIO bus a PHY lives on is taken from the bus the phy node itself was
registered on, so the phy-handle references do not need the extra hint and
nothing changes functionally by dropping it.

Signed-off-by: Rosen Penev &lt;rosenp@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25453
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</comment><date>2026-09-28 12:34:13 +0200</date><id>313b5621815fff4600f7a9ac0ae7c2e36d52e035</id><msg>ipq806x: remove unused mdiobus property</msg><path><editType>edit</editType><file>target/linux/ipq806x/dts/qcom-ipq8064-ap161.dts</file></path><path><editType>edit</editType><file>target/linux/ipq806x/dts/qcom-ipq8068-ap3935.dts</file></path><path><editType>edit</editType><file>target/linux/ipq806x/dts/qcom-ipq8068-ecw5410.dts</file></path><path><editType>edit</editType><file>target/linux/ipq806x/dts/qcom-ipq8062-wg2600hp3.dts</file></path><path><editType>edit</editType><file>target/linux/ipq806x/dts/qcom-ipq8064-unifi-ac-hd.dts</file></path><path><editType>edit</editType><file>target/linux/ipq806x/dts/qcom-ipq8065-nighthawk.dtsi</file></path><path><editType>edit</editType><file>target/linux/ipq806x/dts/qcom-ipq8068-mr42.dts</file></path><path><editType>edit</editType><file>target/linux/ipq806x/dts/qcom-ipq8065-nbg6817.dts</file></path><path><editType>edit</editType><file>target/linux/ipq806x/dts/qcom-ipq8068-ss-w2-ac2600.dts</file></path><path><editType>edit</editType><file>target/linux/ipq806x/dts/qcom-ipq8068-ap-32x.dts</file></path><path><editType>edit</editType><file>target/linux/ipq806x/dts/qcom-ipq8068-mr52.dts</file></path><path><editType>edit</editType><file>target/linux/ipq806x/dts/qcom-ipq8065-ac400i.dts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/ipq806x/base-files/etc/board.d/02_network</affectedPath><commitId>72bb125aecad576df538cd81945ab9364ec830ba</commitId><timestamp>1790591739000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>ipq806x: fix typos in network setup

The second parameter of ucidef_set_interface_lan is a mode setting like
dhcp, not an interface name. ucidef_set_interfaces_lan_wan should be
used.

Signed-off-by: Rosen Penev &lt;rosenp@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25455
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</comment><date>2026-09-28 12:35:39 +0200</date><id>72bb125aecad576df538cd81945ab9364ec830ba</id><msg>ipq806x: fix typos in network setup</msg><path><editType>edit</editType><file>target/linux/ipq806x/base-files/etc/board.d/02_network</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/boot/arm-trusted-firmware-mediatek/Makefile</affectedPath><commitId>ff0c88e6c545508c9640ca6686e3e8cc6f31c470</commitId><timestamp>1790597016000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>arm-trusted-firmware-mediatek: update to latest upstream HEAD

Two real commits since the previous pin:

mediatek: mt7622: move PMIC init before PLL/DRAM stage
  Fixes a hang in DRAM calibration on reboot when cpufreq had lowered
  Vcore before the reset, by moving PMIC init earlier so it no longer
  depends on the Vcore level left over from the previous boot.

mediatek: mt7981, mt7986, mt7987, mt7988: add SMCCC TRNG support
  Implements the standard SMCCC TRNG interface (upstream U-Boot
  doesn't support the MTK-specific one, our uboot-mediatek does).
  Tested on MT7981 by upstream; not yet verified on the other three
  SoCs by upstream.

Mirror hash verified via an independent fresh clone of the pinned
commit.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-28 13:03:36 +0100</date><id>ff0c88e6c545508c9640ca6686e3e8cc6f31c470</id><msg>arm-trusted-firmware-mediatek: update to latest upstream HEAD</msg><path><editType>edit</editType><file>package/boot/arm-trusted-firmware-mediatek/Makefile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/mkimage/patches/030-allow-to-use-different-magic.patch</affectedPath><commitId>cec4e5acae22da72eee22f66fa582f7eb6ac5f38</commitId><timestamp>1790597562000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>tools: mkimage: refresh patches

Refresh mkimage patches, so that CI is happy.

Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</comment><date>2026-09-28 14:12:42 +0200</date><id>cec4e5acae22da72eee22f66fa582f7eb6ac5f38</id><msg>tools: mkimage: refresh patches</msg><path><editType>edit</editType><file>tools/mkimage/patches/030-allow-to-use-different-magic.patch</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/qualcommax/patches-6.18/0092-v7.3-pinctrl-qcom-ipq5018-add-missing-pwm3-function-on-gpio13.patch</affectedPath><affectedPath>target/linux/qualcommax/patches-6.18/0305-pinctrl-qcom-IPQ5018-update-pwm-groups.patch</affectedPath><commitId>a1583148fc5092be7c6418e89ef5d96205fd77de</commitId><timestamp>1790598098000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>qualcommax: ipq50xx: add missing pwm3 function on gpio13

The pinctrl driver leaves GPIO13's fourth function slot empty, so PWM3
cannot be routed there. The GL.iNet GL-X2000 drives its fan from PWM3 on
GPIO13, and the stock firmware muxes the pin with select value 4:

  gpio13 : out low  func4 8mA no pull
  pin 13 (GPIO_13): 1941010.pwm function pwm3 group gpio13

Select value 4 corresponds to the empty slot, so add pwm3 there and list
gpio13 in pwm3_groups.

Accepted upstream via pinctrl-qcom/for-current, so this can be dropped
once the kernel is bumped to 7.3 or later. The backport carries the
upstream diff unchanged; 0305, which adds gpio30 to pwm3_groups
downstream, is refreshed to apply on top of it.

Link: https://patch.msgid.link/20260921093419.2870168-1-gilbertorconde@gmail.com

Signed-off-by: Gilberto Conde &lt;gilbertorconde@gmail.com&gt;
</comment><date>2026-09-28 14:21:38 +0200</date><id>a1583148fc5092be7c6418e89ef5d96205fd77de</id><msg>qualcommax: ipq50xx: add missing pwm3 function on gpio13</msg><path><editType>add</editType><file>target/linux/qualcommax/patches-6.18/0092-v7.3-pinctrl-qcom-ipq5018-add-missing-pwm3-function-on-gpio13.patch</file></path><path><editType>edit</editType><file>target/linux/qualcommax/patches-6.18/0305-pinctrl-qcom-IPQ5018-update-pwm-groups.patch</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>include/image-commands.mk</affectedPath><affectedPath>target/linux/qualcommax/image/glinet_qsdk.bootscript</affectedPath><affectedPath>target/linux/qualcommax/image/ipq50xx.mk</affectedPath><affectedPath>target/linux/qualcommax/image/glinet_gl-b3000.bootscript</affectedPath><commitId>20b25487f72b5132744f0c0879a7dabc7f9a7f3d</commitId><timestamp>1790598098000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>qualcommax: ipq50xx: share GL.iNet factory bootscript

The U-Boot script embedded in the GL.iNet QSDK factory image hardcodes
the GL-B3000 flash layout. Replace the UBI offset and size with
placeholders filled in by the gl-qsdk-factory recipe, so other GL.iNet
boards with a different layout can use the same script.

The script is copied under a per-device name, which keeps the FIT
description unchanged and avoids devices overwriting each other's
substituted copy in KDIR_TMP.

Signed-off-by: Gilberto Conde &lt;gilbertorconde@gmail.com&gt;
</comment><date>2026-09-28 14:21:38 +0200</date><id>20b25487f72b5132744f0c0879a7dabc7f9a7f3d</id><msg>qualcommax: ipq50xx: share GL.iNet factory bootscript</msg><path><editType>edit</editType><file>target/linux/qualcommax/image/ipq50xx.mk</file></path><path><editType>delete</editType><file>target/linux/qualcommax/image/glinet_gl-b3000.bootscript</file></path><path><editType>edit</editType><file>include/image-commands.mk</file></path><path><editType>add</editType><file>target/linux/qualcommax/image/glinet_qsdk.bootscript</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/qualcommax/ipq50xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata</affectedPath><affectedPath>target/linux/qualcommax/ipq50xx/base-files/etc/board.d/03_set_oem_name</affectedPath><affectedPath>target/linux/qualcommax/ipq50xx/base-files/etc/board.d/02_network</affectedPath><affectedPath>target/linux/qualcommax/ipq50xx/base-files/lib/upgrade/platform.sh</affectedPath><affectedPath>target/linux/qualcommax/dts/ipq5018-gl-x2000.dts</affectedPath><affectedPath>package/firmware/ipq-wifi/Makefile</affectedPath><affectedPath>target/linux/qualcommax/ipq50xx/base-files/etc/board.d/01_leds</affectedPath><affectedPath>package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq50xx</affectedPath><affectedPath>target/linux/qualcommax/image/ipq50xx.mk</affectedPath><commitId>9e15f1f49353d57011649c91eb4f9659107d6422</commitId><timestamp>1790598098000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>qualcommax: ipq50xx: add support for GL.iNet GL-X2000

GL.iNet GL-X2000 (Spitz Plus) is a dual-SIM 4G LTE Wi-Fi 6 router.

Specifications:
  SoC:      Qualcomm IPQ5018, dual-core Cortex-A53 @ 1.0 GHz
  RAM:      512 MiB DDR3
  Flash:    128 MiB SPI NAND (Winbond W25N01GWZEIG)
  WLAN:     IPQ5018 2x2 2.4 GHz, QCN6122 2x2 5 GHz (802.11ax)
  Ethernet: 1x GbE WAN (IPQ5018 internal GE PHY)
            1x GbE LAN (Atheros AR8031, SGMII)
  WWAN:     Quectel EG120K-EA, LTE Cat.12, USB 3.0 SuperSpeed
  USB:      1x USB 2.0 host behind an internal hub
  Buttons:  reset
  LEDs:     power, internet, 2.4G, 5G, 4x signal strength
  Serial:   3v3 TTL, 115200 8N1; 4-pin header labelled GND/RX/TX/3V3 on
            the mainboard, under the Quectel module in the top right
            corner. The case opens after pulling the four rubber feet
  Power:    DC 9-35 V, shipped with a 12 V 2.5 A supply
  Misc:     PWM fan, dual SIM slots (muxed inside the modem)

The base MAC address is stored at offset 0x6 of the 0:art partition; the
first six bytes are erased, which is why U-Boot reports the ART address as
invalid. WAN uses the base address (this is the one on the label), LAN
base+1, the 2.4 GHz radio base+2 and the 5 GHz radio base+3. The ethernet
addresses come from nvmem cells. The board deliberately has no ethernetN
aliases: GL.iNet's U-Boot uses them to write its own mac-address
properties into both GMAC nodes (a placeholder for WAN, the base address
for LAN), which of_get_mac_address() would prefer over the nvmem cells.

The modem enumerates at SuperSpeed and therefore requires the IPQ5018 USB3
UNIPHY, so both usbphy0 and usbphy1 are enabled. uqmi cannot communicate
with this modem, so modemmanager has to be installed separately to use it.

The QCN6122 is wired to the second radio instance, so wifi@b00b040 with
userpd3 is enabled rather than wifi@b00a040: the stock device tree enables
wifi2@/userpd3 and leaves wifi1@/userpd2 disabled. That instance places
its BDF and M3 dump above the default q6 region, so the reserved region
is grown accordingly.

Board data for the two radios is submitted separately to
firmware_qca-wireless. It is taken from the stock firmware's wifi_fw
partition, which is a squashfs image: bdwlan.b24 for the IPQ5018 2.4 GHz
radio and qcn6122/bdwlan.b60 for the QCN6122 5 GHz radio, matching the
qcom,board_id values of 0x24 and 0x60 that the stock device tree assigns
to the respective radios. The two radios require distinct board data;
sharing a single BDF leaves the front-end misconfigured and the affected
radio unable to transmit or receive at usable power.

The device tree started from the initial port by Hostle, was largely
rewritten by georgem83 and further reworked by Andreas Boeckler, published
in the OpenWrt forum thread linked below. It is carried here with fixes for
the WLAN board data, the QCN6122 radio instance, the U-Boot environment
partition and the fan cooling map.

Link: https://forum.openwrt.org/t/plain-openwrt-on-gl-x2000/231554

Installation:
  Interrupt the bootloader over serial (115200 8N1) by typing "gl", then
  TFTP the initramfs image and boot it:

    tftpboot 0x44000000 openwrt-qualcommax-ipq50xx-glinet_gl-x2000-initramfs-uImage.itb
    bootm 0x44000000

  Then flash the factory image with sysupgrade.

Signed-off-by: Gilberto Conde &lt;gilbertorconde@gmail.com&gt;
</comment><date>2026-09-28 14:21:38 +0200</date><id>9e15f1f49353d57011649c91eb4f9659107d6422</id><msg>qualcommax: ipq50xx: add support for GL.iNet GL-X2000</msg><path><editType>edit</editType><file>package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq50xx</file></path><path><editType>edit</editType><file>target/linux/qualcommax/ipq50xx/base-files/lib/upgrade/platform.sh</file></path><path><editType>edit</editType><file>target/linux/qualcommax/ipq50xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata</file></path><path><editType>add</editType><file>target/linux/qualcommax/dts/ipq5018-gl-x2000.dts</file></path><path><editType>edit</editType><file>target/linux/qualcommax/image/ipq50xx.mk</file></path><path><editType>edit</editType><file>target/linux/qualcommax/ipq50xx/base-files/etc/board.d/01_leds</file></path><path><editType>edit</editType><file>target/linux/qualcommax/ipq50xx/base-files/etc/board.d/02_network</file></path><path><editType>edit</editType><file>target/linux/qualcommax/ipq50xx/base-files/etc/board.d/03_set_oem_name</file></path><path><editType>edit</editType><file>package/firmware/ipq-wifi/Makefile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/mediatek/dts/mt7986a-asus-rt-ax59u.dts</affectedPath><commitId>152eac73c566174b4e9a555c9cfa96ba364e6042</commitId><timestamp>1790600049000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>mediatek: increase SPI-NAND frequency for ASUS RT-AX59U

Increase the spi-max-frequency from 20MHz to 52MHz for the SPI-NAND flash
on the ASUS RT-AX59U. The underlying Winbond W25N01KV chip natively
supports up to 104MHz, and the MediaTek MT7986A SoC safely handles 52MHz.

It's also 52 MHz in the stock U-Boot:
...
spi-max-frequency = &lt;0x3197500&gt;;
...

Testing with 'dd' reading 16MB from /dev/mtd1 shows a significant
performance improvement (~48% reduction in read time):

Before (20MHz):
256+0 records in
256+0 records out
real    0m 2.86s

After (52MHz):
256+0 records in
256+0 records out
real    0m 1.50s

Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25278
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</comment><date>2026-09-28 14:54:09 +0200</date><id>152eac73c566174b4e9a555c9cfa96ba364e6042</id><msg>mediatek: increase SPI-NAND frequency for ASUS RT-AX59U</msg><path><editType>edit</editType><file>target/linux/mediatek/dts/mt7986a-asus-rt-ax59u.dts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/mediatek/dts/mt7986a-asus-rt-ax59u.dts</affectedPath><commitId>9da1e7bee3a376a3502a530f3f1cf67962dfe531</commitId><timestamp>1790600049000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>mediatek: fix UBI_DEV partition size for ASUS RT-AX59U

Correct the UBI_DEV partition size from 252MB (0xfc00000) to 124MB
(0x7c00000). The previous value exceeded the physical limits of the
device, which features a 128MB flash chip.

Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25278
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</comment><date>2026-09-28 14:54:09 +0200</date><id>9da1e7bee3a376a3502a530f3f1cf67962dfe531</id><msg>mediatek: fix UBI_DEV partition size for ASUS RT-AX59U</msg><path><editType>edit</editType><file>target/linux/mediatek/dts/mt7986a-asus-rt-ax59u.dts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/mediatek/dts/mt7986a-asus-rt-ax59u.dts</affectedPath><commitId>5484b15e870e945b25b6cb33fec3a7735191d8a9</commitId><timestamp>1790600049000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>mediatek: add wireless pre-calibration data for ASUS RT-AX59U

Define the factory pre-calibration data partition at offset 0x1010 and
pass it to the wifi node via nvmem-cells. This ensures the mt7986
wireless hardware can properly utilize factory-calibrated RF settings.

Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25278
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</comment><date>2026-09-28 14:54:09 +0200</date><id>5484b15e870e945b25b6cb33fec3a7735191d8a9</id><msg>mediatek: add wireless pre-calibration data for ASUS RT-AX59U</msg><path><editType>edit</editType><file>target/linux/mediatek/dts/mt7986a-asus-rt-ax59u.dts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/boot/arm-trusted-firmware-mediatek/Makefile</affectedPath><commitId>446eef3ac2d1011595a536d490442069321acb7d</commitId><timestamp>1790600049000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>arm-trusted-firmware-mediatek: refactor UBI start address

Refactor how OVERRIDE_UBI_START_ADDR is passed to the TF-A build system.
Instead of using hardcoded string matches against the $(PLAT) variable
inside global make flags, move the UBI start address directly into
target-specific definition blocks using a new UBI_START_ADDR variable.

This aligns the UBI partition boundary setup with how FIP_OFFSET and
FIP_SIZE are cleanly tracked across different MediaTek SoCs.

Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25278
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</comment><date>2026-09-28 14:54:09 +0200</date><id>446eef3ac2d1011595a536d490442069321acb7d</id><msg>arm-trusted-firmware-mediatek: refactor UBI start address</msg><path><editType>edit</editType><file>package/boot/arm-trusted-firmware-mediatek/Makefile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/boot/arm-trusted-firmware-mediatek/Makefile</affectedPath><commitId>2acfe884ccd5874f41ffa703c4cdf4b249b40458</commitId><timestamp>1790600049000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>arm-trusted-firmware-mediatek: add mt7986 UBI 1MB offset target

Add a new Trusted Firmware-A (TF-A) build profile for the MediaTek
MT7986 SoC named 'mt7986-spim-nand-ubi-1m-ddr4'.

This profile reduces the UBI starting address (UBI_START_ADDR) from
0x200000 (2MB) down to 0x100000 (1MB). This layout adjustment matches
devices like the ASUS RT-AX59U factory partition offsets and frees up
flash space for the main operating system layout.

Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25278
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</comment><date>2026-09-28 14:54:09 +0200</date><id>2acfe884ccd5874f41ffa703c4cdf4b249b40458</id><msg>arm-trusted-firmware-mediatek: add mt7986 UBI 1MB offset target</msg><path><editType>edit</editType><file>package/boot/arm-trusted-firmware-mediatek/Makefile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/boot/uboot-mediatek/Makefile</affectedPath><affectedPath>package/boot/uboot-mediatek/patches/411-add-asus-rt-ax59u.patch</affectedPath><commitId>4c932beea5b462f0cfc9437c2307329939f95e92</commitId><timestamp>1790600049000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>uboot-mediatek: add ASUS RT-AX59U (UBI) support

This commit adds OpenWrt U-Boot for ASUS RT-AX59U (UBI layout).

Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25278
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</comment><date>2026-09-28 14:54:09 +0200</date><id>4c932beea5b462f0cfc9437c2307329939f95e92</id><msg>uboot-mediatek: add ASUS RT-AX59U (UBI) support</msg><path><editType>edit</editType><file>package/boot/uboot-mediatek/Makefile</file></path><path><editType>add</editType><file>package/boot/uboot-mediatek/patches/411-add-asus-rt-ax59u.patch</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/boot/uboot-tools/uboot-envtools/files/mediatek_filogic</affectedPath><commitId>756704524fc1142d48a13121d9d3c176bc290127</commitId><timestamp>1790600049000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>uboot-tools: add ASUS RT-AX59U to mediatek_filogic

This commit adds ASUS RT-AX59U support to mediatek_filogic.

Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25278
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</comment><date>2026-09-28 14:54:09 +0200</date><id>756704524fc1142d48a13121d9d3c176bc290127</id><msg>uboot-tools: add ASUS RT-AX59U to mediatek_filogic</msg><path><editType>edit</editType><file>package/boot/uboot-tools/uboot-envtools/files/mediatek_filogic</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac</affectedPath><affectedPath>target/linux/mediatek/dts/mt7986a-asus-rt-ax59u-ubi.dts</affectedPath><affectedPath>target/linux/mediatek/dts/mt7986a-asus-rt-ax59u.dts</affectedPath><affectedPath>target/linux/mediatek/dts/mt7986a-asus-rt-ax59u-common.dtsi</affectedPath><affectedPath>target/linux/mediatek/image/filogic.mk</affectedPath><affectedPath>target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh</affectedPath><affectedPath>target/linux/mediatek/filogic/base-files/etc/board.d/02_network</affectedPath><commitId>3619b280060f4b1ab07005d9d572bb04d7f0475a</commitId><timestamp>1790600049000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>mediatek: add OpenWrt UBI layout for ASUS RT-AX59U

This commit implements the OpenWrt UBI layout for the ASUS RT-AX59U. The
primary goal is get working Kernel Address Space Layout Randomization
(KASLR). Additionally, this layout frees up ~6MB of extra storage space
for package installation.

Preparation
------------
Make a backup (from OpenWrt for stock bootloader):
* Backup partitions:
   apk update &amp;&amp; apk add nand-utils
   nanddump /dev/mtd0 | gzip -1 -c &gt; /tmp/mtd0_u-boot.bin.gz
   nanddump /dev/mtd1 | gzip -1 -c &gt; /tmp/mtd1_UBI_DEV.bin.gz

* Backup nvram, Factory and Factory2 volumes:
   cat /dev/ubi0_0 &gt; /tmp/nvram.bin
   cat /dev/ubi0_1 &gt; /tmp/Factory.bin
   cat /dev/ubi0_2 &gt; /tmp/Factory2.bin

* Copy backup from the /tmp dir on your router to a safe place using scp

Installation
------------
* Attach UART (see 'UART' section for details)

* Run mtkuartboot (see 'mtkuartboot recovery' section for details), exit
  the boot menu, and run:
   mtd erase ubi

* Run mtkuartboot again and write ubi bl2 and fip via the network, then
  reboot.

  Default tftp server ip: 192.168.1.254
  Default router ip:      192.168.1.1

* Load the ubi initramfs image via tftpboot and execute sysupgrade to
  write OpenWrt to spi-nand.

* Copy Factory backup to your router:
   scp -O Factory.bin root@192.168.1.1:/tmp

* Check factory volume index:
   ubinfo -a

* Prepare and write new factory ubi volume (substitute X with your
  factory volume index):
   dd if=/tmp/Factory.bin of=/tmp/factory.bin bs=1 count=$((0x65000))
   ubiupdatevol /dev/ubi0_X /tmp/factory.bin

UART
----
UART pins are silkscreened on PCB. Connection parameters:
115200, 8N1, 3.3V

U-Boot tftp recovery
--------------------
* Place OpenWrt ubi-initramfs-recovery.itb image on the tftp server (IP:
  192.168.1.254)

* Press reset button and power on the router. After ~10 sec release the
  button.

* Use OpenWrt initramfs system for recovery (for example, run sysupgrade)

mtkuartboot recovery
--------------------
Use mtk_uartboot and UART connetion for the installation or if BL2 or FIP
in UBI is destroyed:

Link: https://github.com/981213/mtk_uartboot

Start script:
'''
sudo ./mtk_uartboot \
  -p mt7986-ram-ddr4-bl2.bin \
  --aarch64 \
  -f openwrt-mediatek-filogic-asus_rt-ax59u-ubi-preloader.bin \
  -s /dev/ttyUSB0
picocom -b 115200 /dev/ttyUSB0
'''

Notes
-----
1. A simple installation without serial console is also possible using a
   fork of Daniel's UBI Installer (requires adaptation)
Link: https://github.com/dangowrt/owrt-ubi-installer

Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25278
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</comment><date>2026-09-28 14:54:09 +0200</date><id>3619b280060f4b1ab07005d9d572bb04d7f0475a</id><msg>mediatek: add OpenWrt UBI layout for ASUS RT-AX59U</msg><path><editType>add</editType><file>target/linux/mediatek/dts/mt7986a-asus-rt-ax59u-ubi.dts</file></path><path><editType>edit</editType><file>target/linux/mediatek/dts/mt7986a-asus-rt-ax59u.dts</file></path><path><editType>edit</editType><file>target/linux/mediatek/filogic/base-files/etc/board.d/02_network</file></path><path><editType>edit</editType><file>target/linux/mediatek/image/filogic.mk</file></path><path><editType>edit</editType><file>target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac</file></path><path><editType>edit</editType><file>target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh</file></path><path><editType>add</editType><file>target/linux/mediatek/dts/mt7986a-asus-rt-ax59u-common.dtsi</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/rtl931x_nand/config-6.18</affectedPath><affectedPath>target/linux/realtek/rtl931x/config-6.18</affectedPath><commitId>e9e3e8c0ce4b5990a4f67753543387b35516e4e0</commitId><timestamp>1790600348000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: disable realtek thermal on rtl931x

Ensure REALTEK_THERMAL is disabled on rtl931x as the driver
is not supported on rtl931x.
This is needed as the build system asks if it should be enabled
during the kernel build phase.

Signed-off-by: Erik Larsson &lt;who+github@cnackers.org&gt;
Link: https://github.com/openwrt/openwrt/pull/25431
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-28 14:59:08 +0200</date><id>e9e3e8c0ce4b5990a4f67753543387b35516e4e0</id><msg>realtek: disable realtek thermal on rtl931x</msg><path><editType>edit</editType><file>target/linux/realtek/rtl931x_nand/config-6.18</file></path><path><editType>edit</editType><file>target/linux/realtek/rtl931x/config-6.18</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/base-files/etc/board.d/02_network</affectedPath><affectedPath>target/linux/realtek/dts/rtl8380_netgear_gs310tp-v1.dts</affectedPath><affectedPath>target/linux/realtek/image/rtl838x.mk</affectedPath><commitId>220a7ac9905230fc6b51de268fb60e1cea9afd9a</commitId><timestamp>1790603912000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: gs310tp: use the PSE MCU driver over I2C

The GS310TP's PoE MCU (Nuvoton M05xx in front of a BCM59121) is not on
UART1 as the device tree assumed: nothing is received on UART and
realtek-poe logs "No response from PoE controller" every 2 s. The
vendor firmware talks to the MCU over bit-banged I2C on SoC GPIO 4
(SCL) and 5 (SDA), slave address 0x20 (board_conf.ko: poeSmiConf and
its boardI2c entry; ski.ko: poe_bcm59121_* over drv_i2c_*), and a
get-system-info frame sent that way is answered: mode "Auto I2C", 8
ports, device id 0xe121, gen1 dialect.

Describe that bus and the MCU with the realtek-pse-mcu SMBus transport,
map the eight copper PHYs to its PIs like the GS110TPP, and replace
realtek-poe and its board.d PoE budget with the kernel modules. UART1,
where nothing answers, goes back to disabled. The enable line on RTL8231
pin 10 moves from a gpio hog to the driver's disable-ports-gpios, so the
ports are released once the MCU has answered, as the vendor firmware
does.

Signed-off-by: Paul Tobias &lt;openwrt-commits@tobias.pt&gt;
Link: https://github.com/openwrt/openwrt/pull/25451
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-28 15:58:32 +0200</date><id>220a7ac9905230fc6b51de268fb60e1cea9afd9a</id><msg>realtek: gs310tp: use the PSE MCU driver over I2C</msg><path><editType>edit</editType><file>target/linux/realtek/base-files/etc/board.d/02_network</file></path><path><editType>edit</editType><file>target/linux/realtek/image/rtl838x.mk</file></path><path><editType>edit</editType><file>target/linux/realtek/dts/rtl8380_netgear_gs310tp-v1.dts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l2.c</affectedPath><commitId>9b53790e2f6321faacb97bab78c0c5a7e587d8a4</commitId><timestamp>1790606146000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: dsa: bound the trunk id in the L2 table dump

The L2 table dump prints the members and the primary port of a trunk
entry by indexing lags_port_members[] and lag_primary[] with the trunk
id read from the table. Both arrays have MAX_LAGS (16) entries, while
the RTL930x and RTL931x fill functions take the id from a 6-bit and an
8-bit field. The driver should never program an id that large, but a
row carrying one would make the dump read past both arrays.

Print only the id when it is out of range.

Compile-tested. On an RTL9303 the dump still works, but no trunk rows
were present, so neither branch of the check ran on hardware.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Gennaro Cimmino &lt;gcimmino@rayonra.net&gt;
Link: https://github.com/openwrt/openwrt/pull/25448
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-28 16:35:46 +0200</date><id>9b53790e2f6321faacb97bab78c0c5a7e587d8a4</id><msg>realtek: dsa: bound the trunk id in the L2 table dump</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l2.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/dsa.c</affectedPath><commitId>061397968df2f89b2aa2157c74c7cadd651a48f7</commitId><timestamp>1790606146000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: dsa: walk the whole RTL931x L2 table for the FDB

rtldsa_port_fdb_dump() walks fib_entries rows of the hash table and 64
rows of the CAM, and rtldsa_find_l2_cam_entry() searches 64 CAM rows.
On RTL931x otto_table.c maps the hash table with 32768 rows and the
CAM with 128, but fib_entries stays at 16384 there. So bridge fdb show
misses the entries of the second hash block, which starts at row
16384, and the CAM search never uses rows 64 to 127.

Take the row counts from otto_table_rows() on l2_uc_tbl and
l2_cam_tbl, as the debugfs dump does. The bounds do not change on
RTL838x, RTL839x and RTL930x. On RTL931x the FDB add path can now place
entries in CAM rows 64 to 127. fib_entries itself is left alone, since
it also sizes l2_uc_map.

Compile-tested. On an RTL9303, where the bounds do not change, bridge
fdb show still listed every unicast row of the hardware table. Not
tested on RTL931x hardware.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Gennaro Cimmino &lt;gcimmino@rayonra.net&gt;
Link: https://github.com/openwrt/openwrt/pull/25448
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-28 16:35:46 +0200</date><id>061397968df2f89b2aa2157c74c7cadd651a48f7</id><msg>realtek: dsa: walk the whole RTL931x L2 table for the FDB</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/dsa.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/ethernet/realtek/rtl838x_eth.h</affectedPath><affectedPath>target/linux/realtek/files-6.18/drivers/net/ethernet/realtek/rtl838x_eth.c</affectedPath><commitId>248601f492e7ccac2ecef9ff364685dd4c971851</commitId><timestamp>1790615818000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: eth: rtl838x: ignore STP state on CPU transmit

The switch applies the egress spanning-tree port state to frames the
CPU sends to a port, so a port that is not forwarding drops them:
kernel STP cannot announce a designated port during the forward
delay, user-space RSTP cannot send proposals from a discarding port,
and LLDP stays silent on blocked ports.

Set BP_FLTR2 in the TX CPU tag. It bypasses the egress spanning-tree
port state and egress VLAN filtering, as IGNORE_STP does when
transmitting on RTL93xx. Skipping the VLAN filter does not widen
where frames go: the CPU names each frame's single destination port
(AS_DPM).

Signed-off-by: Paul Tobias &lt;openwrt-commits@tobias.pt&gt;
Link: https://github.com/openwrt/openwrt/pull/25442
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-28 19:16:58 +0200</date><id>248601f492e7ccac2ecef9ff364685dd4c971851</id><msg>realtek: eth: rtl838x: ignore STP state on CPU transmit</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/ethernet/realtek/rtl838x_eth.c</file></path><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/ethernet/realtek/rtl838x_eth.h</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/boot/uboot-mediatek/patches/473-add-bpi-r4-pro-4e.patch</affectedPath><affectedPath>package/boot/uboot-mediatek/Makefile</affectedPath><commitId>91f65610c9b837f15bd86a44b4dc1399a7158795</commitId><timestamp>1790619077000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>uboot-mediatek: add support for BananaPi BPi-R4 Pro 4E

The BPi R4 Pro 4E can boot from microSD, SPI-NAND and eMMC. Add support
for each storage option.

NVME (via pcie3) works in uboot, but bootloader only supports spi and mmc.

Patches are taken from R4Pro 8X and modified for 4E variant.

Co-authored-by: Andrew LaMarche &lt;andrewjlamarche@gmail.com&gt;
Signed-off-by: Frank Wunderlich &lt;frank-w@public-files.de&gt;
</comment><date>2026-09-28 19:11:17 +0100</date><id>91f65610c9b837f15bd86a44b4dc1399a7158795</id><msg>uboot-mediatek: add support for BananaPi BPi-R4 Pro 4E</msg><path><editType>add</editType><file>package/boot/uboot-mediatek/patches/473-add-bpi-r4-pro-4e.patch</file></path><path><editType>edit</editType><file>package/boot/uboot-mediatek/Makefile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/mediatek/filogic/base-files/etc/board.d/01_leds</affectedPath><affectedPath>package/boot/uboot-tools/uboot-envtools/files/mediatek_filogic</affectedPath><affectedPath>target/linux/mediatek/base-files/etc/uci-defaults/99_fwenv-store-ethaddr.sh</affectedPath><affectedPath>target/linux/mediatek/patches-6.18/971-arm64-dts-mediatek-mt7988a-add-support-for-bpi-r4-pro-4e.patch</affectedPath><affectedPath>target/linux/mediatek/patches-6.18/972-arm64-dts-mediatek-mt7988a-bpi-r4-pro-add-aliases.patch</affectedPath><affectedPath>target/linux/mediatek/image/filogic.mk</affectedPath><affectedPath>target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh</affectedPath><affectedPath>target/linux/mediatek/filogic/base-files/etc/board.d/02_network</affectedPath><commitId>7a29a6bf6b8c6c6962d1795221637c16a0c9145e</commitId><timestamp>1790619077000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>mediatek: add support for BananaPi BPi-R4 Pro 4E

The BPi-R4 Pro 4E is a Wi-Fi 7 router board based on the MT7988A SoC.

Difference to 8X is that board has only 4GB RAM and does not contain
the Aeonsemi 10G phys.
Wan port uses MT7988 internal 2.5GBit/s phy with no ethmux chip between
so it need overlays to switch between this wan-phy and SFP-Slot.

Specification
-------------

- SoC:          Mediatek MT7988A (4x Cortex-A73 @1.8GHz)
- RAM:          4GB DDR4
- Flash:        256MB SPI-NAND, 8GB eMMC, microSD Slot
- Switch:       MT7988A built-in switch, MxL86252C
- Ports:        9 ports, 8 usable simultaneously
        * 2x 1G RJ45 LAN
        * 4x 2.5G RJ45 LAN
        * 1x SFP (LAN)
        * 1x 2.5G RJ45/SFP Combo (WAN)
- Buttons:      Reset, WPS
- LEDs:         Power
- USB:          On-board VIA VL822 USB3.2/USB2.0 hub
        * 1x USB-A 2.0 connector
        * 1x USB-A 3.2 connector
        * 3x NGFF-KEYB
- PCIe:
        * 2x mini-PCIe slots with PCIe 3.0 2-lane interface
        * 2x M.2 M-Key slots with PCIe 3.0 1-lane interface (switchable
          PCIe signal with M.2 B-Key)
- Debug:        USB Type-C console port
- Power:        USB Type-C PD 20V or DC barrel connector

Note: This device comes without a MAC address programmed from the
factory. The randomly generated MAC is stored in the U-Boot env on first
boot and used persistently afterwards.

Installation
------------

Uncompress *sdcard.img.gz and write to microSD card, eg. using 'dd'. Use
bootloader menu on the serial console to install SPI-NAND once installed
to SPI-NAND you can used the bootloader menu to install to eMMC. See
instructions for BananaPi R4 for details.

Description is taken from 8X patch and changed to 4E variant.

R4Pro needed a patch for adding aliases to ensure right probe order so add
this here too.

Co-authored-by: Wilfried Teiken &lt;wteiken@teiken.org&gt;
Signed-off-by: Frank Wunderlich &lt;frank-w@public-files.de&gt;
</comment><date>2026-09-28 19:11:17 +0100</date><id>7a29a6bf6b8c6c6962d1795221637c16a0c9145e</id><msg>mediatek: add support for BananaPi BPi-R4 Pro 4E</msg><path><editType>edit</editType><file>target/linux/mediatek/filogic/base-files/etc/board.d/01_leds</file></path><path><editType>edit</editType><file>target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh</file></path><path><editType>edit</editType><file>package/boot/uboot-tools/uboot-envtools/files/mediatek_filogic</file></path><path><editType>add</editType><file>target/linux/mediatek/patches-6.18/971-arm64-dts-mediatek-mt7988a-add-support-for-bpi-r4-pro-4e.patch</file></path><path><editType>add</editType><file>target/linux/mediatek/patches-6.18/972-arm64-dts-mediatek-mt7988a-bpi-r4-pro-add-aliases.patch</file></path><path><editType>edit</editType><file>target/linux/mediatek/filogic/base-files/etc/board.d/02_network</file></path><path><editType>edit</editType><file>target/linux/mediatek/image/filogic.mk</file></path><path><editType>edit</editType><file>target/linux/mediatek/base-files/etc/uci-defaults/99_fwenv-store-ethaddr.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/base-files/etc/board.d/02_network</affectedPath><affectedPath>target/linux/realtek/image/rtl931x.mk</affectedPath><affectedPath>target/linux/realtek/dts/rtl9313_ubnt_usw-pro-xg-10-poe.dts</affectedPath><commitId>8635eeedc38cbd49fe228442880097ebbdb2f01b</commitId><timestamp>1790619861000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: add support for Ubiquiti USW Pro XG 10 PoE

Add support for RTL9313-based Ubiquiti UniFi USW Pro XG 10 PoE switch
with 10x 10G RJ45 and 2x SFP+ ports.

Hardware
========

  - RTL9313 switch SoC
  - 512 MiB RAM
  - 32 MiB SPI-NOR flash
  - 10x 100M/1G/2.5G/5G/10G RJ45 ports via RTL8264B and RTL8261BE
  - PoE: 10x 802.3bt, 90W per port, 400W total budget
  - 2x 1G/2.5G/10G SFP+ ports
  - Buttons: 1x Reset
  - LEDs:
    - System LED white/blue
    - RGBW LED per port
  - Console: TTL 3.3V, 115200 8N1, populated 4-pin header J19,
    front to back: VCC, RX, TX and GND
    (device must be opened to access header)
  - Etherlighting feature (lighting patterns and color control)
  - Vendor firmware: U-Boot + LEDE-based Ubiquiti OS

MAC address
===========

Single MAC address in EEPROM partition, applied to all ports.

Known issues
============

  - Etherlighting not controllable, driver WIP. Port LEDs for link work
    though. By default, the controller keeps the LEDs in a breathing
    state, gated by the link state delivered by the Realtek SoC.

Disclaimer
==========

Stock firmware uses a dual-bank layout (kernel0/kernel1, ~15 MiB each).
OpenWrt replaces both banks with a single contiguous firmware partition.
Flashing OpenWrt overwrites both stock kernel slots; U-Boot remains
intact and can be used for recovery.

Installation
============

1. Enable SSH on the stock UniFi OS and log in with user account.

(at this stage you may make backups of the flash, just to be sure)

2. Copy the OpenWrt sysupgrade image to /tmp on the switch (e.g. via
   scp).

3. Adjust IMG below to point at the copied file, then run the block as a
   whole. It writes kernel0, splits into kernel1 if the image is larger
   than that slot (otherwise invalidates kernel1 so U-Boot cannot pick
   a stale bank), and reboots:

   IMG=/tmp/openwrt-realtek-rtl931x-ubnt_usw-pro-xg-10-poe-squashfs-sysupgrade.bin
   K0_BLOCKS=$((0xec0000 / 0x10000))

   dd if="$IMG" of=/dev/mtdblock2 bs=64k count=$K0_BLOCKS conv=fsync
   if [ "$(wc -c &lt; "$IMG")" -gt $((0xec0000)) ]; then
       dd if="$IMG" of=/dev/mtdblock3 bs=64k skip=$K0_BLOCKS conv=fsync
   else
       dd if=/dev/zero of=/dev/mtdblock3 bs=64k count=1 conv=fsync
   fi
   sync
   reboot

   Then it comes up in OpenWrt.

   You may also install the image in any other way, just make sure to
   write it to the kernel0 partition and if the image is larger than
   15,104 kiB, write the rest to the kernel1 partition, otherwise invalidate
   it so U-Boot cannot boot from the second bank.

4. It is recommended to modify the bootcmd to speedup the boot and prevent
   any issues due to the dual-boot selection. Since U-Boot by default
   uses bootubnt which does a lot of (unneeded) RTK initialization,
   quite some time passes until Linux is started. Additionally, the
   U-boot logic fiddles with some bits on flash which causes JFFS2
   errors in OpenWrt. While this doesn't seem to cause issues yet, be
   defensive and set the bootcmd to:

     bootm 0xb4150000

   This directly boots the uImage from flash, without doing all the
   initialization. OpenWrt is able to bootstrap the networking completely
   on its own.

It does not matter which bank stock booted from when the dd block
runs: both banks are touched in the same pass (kernel0 written, kernel1
either written or invalidated). With kernel1 invalidated, U-Boot's
internal fallback kicks in and permanently switches to kernel0 on the
next boot, so the device stays on OpenWrt as long as kernel0 is
bootable.

Recovery
========

Since the installation procedure invalidates or partially overwrites
the second bank, recovery requires serial console access (see Hardware
above for pinout).

1. Interrupt U-Boot autoboot by spamming the Escape key during early
   boot to drop into the U-Boot prompt.

2. Bring up networking:

   rtk network on

3. Transfer an OpenWrt initramfs image via TFTP and boot it:

   setenv ipaddr &lt;switch-ipaddr&gt;
   setenv serverip &lt;tftpserver-ipaddr&gt;
   setenv bootfile openwrt-realtek-rtl931x-ubnt_usw-pro-xg-10-poe-initramfs-kernel.bin
   tftpboot
   bootm

4. From the running initramfs OpenWrt, do a sysupgrade to reflash
   OpenWrt or whatever you want to recover. There is no need for the
   complicated procedure from installation since OpenWrt sees the
   firmware partition already as a whole.

Return to stock firmware
========================

There is no fully-supported revert path. The stock firmware blob is a
Ubiquiti UBNT archive (header + parts, see firmware-utils' fw.h) that
embeds a u-boot and a kernel0 uImage payload; only the latter is
relevant when writing back to the kernel partitions.

The snippet below extracts the kernel0 uImage from such a blob by
locating the uImage offset and size using binwalk. It is provided as a
best-effort starting point; verify the result before flashing,
otherwise you're on your own:

   BLOB=US3.rtl93xx_7.4.1+X.Y.Z.bin
   binwalk $BLOB | grep uImage &gt; uimage-info.txt
   OFF=$(cut -d\  -f1 uimage-info.txt)
   SIZE=$(sed -nE 's/^.*image size: ([0-9]+) bytes,.*/\1/p' uimage-info.txt)
   dd if="$BLOB" of=kernel0.uImage bs=1 skip="$OFF" count="$SIZE"

Once you have a clean uImage, it can be written to the kernel partition
from within OpenWrt. If you adjusted the bootcmd during installation,
make sure to restore it to the default "bootcmd=bootubnt". After a reboot,
Ubiquiti's firmware should boot.

Or, if you did backups of the flash before, just write the backup to the
flash.

(lightly modified from Jonas commit adding support for usw-pro-8-poe)

Signed-off-by: Russell Senior &lt;russell@personaltelco.net&gt;
Link: https://github.com/openwrt/openwrt/pull/25425
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-28 20:24:21 +0200</date><id>8635eeedc38cbd49fe228442880097ebbdb2f01b</id><msg>realtek: add support for Ubiquiti USW Pro XG 10 PoE</msg><path><editType>edit</editType><file>target/linux/realtek/image/rtl931x.mk</file></path><path><editType>add</editType><file>target/linux/realtek/dts/rtl9313_ubnt_usw-pro-xg-10-poe.dts</file></path><path><editType>edit</editType><file>target/linux/realtek/base-files/etc/board.d/02_network</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/ath79/dts/ar9344_pcs_cr5000.dts</affectedPath><commitId>9df055123c216df0be7ecb7655f5455355ef865d</commitId><timestamp>1790630898000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>ath79: pcs,cr5000: remove ports and aliases nodes

swconfig,port is used in only two places, here and ramips. This stuff is
already handled in userspace. No need for it here.

This aliases node is not only in the wrong location, it serves no
purpose. Remove.

Signed-off-by: Rosen Penev &lt;rosenp@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25406
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-28 23:28:18 +0200</date><id>9df055123c216df0be7ecb7655f5455355ef865d</id><msg>ath79: pcs,cr5000: remove ports and aliases nodes</msg><path><editType>edit</editType><file>target/linux/ath79/dts/ar9344_pcs_cr5000.dts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/generic/pending-6.18/737-02-net-phylink-introduce-internal-phylink-PCS-handling.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/706-net-phy-populate-host_interfaces-when-attaching-PHY.patch</affectedPath><affectedPath>target/linux/generic/backport-6.18/737-01-v7.3-net-phylink-allow-PHYs-to-be-attached-in-802.3z-inba.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/737-01-net-phylink-keep-and-use-MAC-supported_interfaces-in.patch</affectedPath><affectedPath>target/linux/generic/backport-6.18/707-v7.3-net-phylink-record-the-PHY-only-once-bringup-cannot-.patch</affectedPath><commitId>5dcf6a3b3da3cf9cfb2a0e73cbeac9a656a58cf6</commitId><timestamp>1790632728000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>generic: backport phylink fix for a PHY recorded before bringup fails

phylink_bringup_phy() stores the PHY in pl-&gt;phydev before its last
step that can fail. If that step fails, the pointer outlives the
failed connect: a later phylink_connect_phy() gets a permanent -EBUSY,
the SFP path is left with a pointer to a freed phy_device, and a
disconnect detaches the same PHY twice. The fix publishes the pointer
only after the last call that can fail.

It is also the base the pending phylink late-PHY series relies on:
retrying a connect after a failed bringup is what makes this window
reachable.

The fix is in net:
https://git.kernel.org/netdev/net/c/a940003f44e7

The phylink patches that apply on top of it are refreshed for hunk
offsets.

Assisted-by: LLM
Signed-off-by: Aleksei Sviridkin &lt;f@lex.la&gt;
Link: https://github.com/openwrt/openwrt/pull/25459
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-28 23:58:48 +0200</date><id>5dcf6a3b3da3cf9cfb2a0e73cbeac9a656a58cf6</id><msg>generic: backport phylink fix for a PHY recorded before bringup fails</msg><path><editType>edit</editType><file>target/linux/generic/pending-6.18/737-02-net-phylink-introduce-internal-phylink-PCS-handling.patch</file></path><path><editType>add</editType><file>target/linux/generic/backport-6.18/707-v7.3-net-phylink-record-the-PHY-only-once-bringup-cannot-.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/737-01-net-phylink-keep-and-use-MAC-supported_interfaces-in.patch</file></path><path><editType>edit</editType><file>target/linux/generic/backport-6.18/737-01-v7.3-net-phylink-allow-PHYs-to-be-attached-in-802.3z-inba.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/706-net-phy-populate-host_interfaces-when-attaching-PHY.patch</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/generic/backport-6.18/439-v7.4-mtd-spi-nor-macronix-Restore-fallback-parameters-for.patch</affectedPath><commitId>d9f8ecc394dd30537d7136963fa4f6891b59c1ee</commitId><timestamp>1790636508000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/hauke</absoluteUrl><fullName>hauke</fullName></author><authorEmail>hauke@hauke-m.de</authorEmail><comment>kernel: backport fix for Macronix MX25L128xx series Flash

We need this patch to fix support for the early generation MX25L128xx
series Flash as it doesn't have SFDP.

Link: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=01739ccea21b69818dc071096a249e6f84a6b13d
Signed-off-by: Shiji Yang &lt;yangshiji66@outlook.com&gt;
Link: https://github.com/openwrt/openwrt/pull/24735
Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
</comment><date>2026-09-29 01:01:48 +0200</date><id>d9f8ecc394dd30537d7136963fa4f6891b59c1ee</id><msg>kernel: backport fix for Macronix MX25L128xx series Flash</msg><path><editType>add</editType><file>target/linux/generic/backport-6.18/439-v7.4-mtd-spi-nor-macronix-Restore-fallback-parameters-for.patch</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/elfutils/patches/001-fix-backport-iquote-include.patch</affectedPath><affectedPath>tools/elfutils/patches/013-backport-mips-support-elflint.patch</affectedPath><affectedPath>tools/elfutils/Makefile</affectedPath><affectedPath>tools/elfutils/patches/101-shared-conditional.patch</affectedPath><affectedPath>tools/elfutils/patches/012-backport-mips-support-readelf.patch</affectedPath><affectedPath>tools/elfutils/patches/100-portability.patch</affectedPath><affectedPath>tools/elfutils/patches/110-objects-manifest.patch</affectedPath><commitId>a5bc79c39b3ddec0115984ad22e71659eedf55ff</commitId><timestamp>1790666860000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>tools/elfutils: update to 0.196

To reduce the size of the downloaded source files, the version of tools library
has been aligned with the version used in the packages.

Release notes: https://inbox.sourceware.org/elfutils-devel/CAJDtP-QXj15OOpBxLdU+V1PZKM8YmnsE1eVy-R2R5xbE7Shk5A@mail.gmail.com/T/#u

Manually rebased patches:
 - 012-backport-mips-support-readelf.patch
 - 100-portability.patch

Removed patches:
 - 001-fix-backport-iquote-include.patch - fixed in [1]
 - 110-objects-manifest.patch - upstreamed

Include new submodule 'libdwfl_stacktrace' in makefile.
Changes from 8f920d2 are rolled back after fix [1]

1. https://sourceware.org/bugzilla/show_bug.cgi?id=33103

Fixes: https://github.com/openwrt/openwrt/commit/8f920d2f94b0878e9b4291ffa18cfc9e02828f77
Signed-off-by: Ivan Pavlov &lt;AuthorReflex@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25388
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</comment><date>2026-09-29 09:27:40 +0200</date><id>a5bc79c39b3ddec0115984ad22e71659eedf55ff</id><msg>tools/elfutils: update to 0.196</msg><path><editType>edit</editType><file>tools/elfutils/Makefile</file></path><path><editType>edit</editType><file>tools/elfutils/patches/012-backport-mips-support-readelf.patch</file></path><path><editType>edit</editType><file>tools/elfutils/patches/101-shared-conditional.patch</file></path><path><editType>edit</editType><file>tools/elfutils/patches/013-backport-mips-support-elflint.patch</file></path><path><editType>delete</editType><file>tools/elfutils/patches/001-fix-backport-iquote-include.patch</file></path><path><editType>delete</editType><file>tools/elfutils/patches/110-objects-manifest.patch</file></path><path><editType>edit</editType><file>tools/elfutils/patches/100-portability.patch</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/devel/kselftests-bpf/Makefile</affectedPath><commitId>8694449c7a90edbd94e8da5038631bce433f81bc</commitId><timestamp>1790666949000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>kselftests-bpf: isolate target userspace compiler flags

Passing target flags through EXTRA_CFLAGS leaks them into kernel
module builds on Linux 6.6 and 6.12, causing ARM hard-float ABI
mismatches in generated module objects. Linux 6.18 also forwards
these flags to host tools, where the host compiler rejects them.

Reuse SAN_CFLAGS, normally used for sanitizer options, to pass
target flags to both userspace selftests and their target libbpf
builds on Linux 6.6, 6.12 and 6.18. Host tools and kernel modules
do not consume this variable. USERCFLAGS would only cover the
selftests, leaving their libbpf builds without the target flags.

This covers the targets built by this package; CROSS_BPFTOOL
does not consume SAN_CFLAGS.

Signed-off-by: Tianling Shen &lt;cnsztl@immortalwrt.org&gt;
Link: https://github.com/openwrt/openwrt/pull/25345
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</comment><date>2026-09-29 09:29:09 +0200</date><id>8694449c7a90edbd94e8da5038631bce433f81bc</id><msg>kselftests-bpf: isolate target userspace compiler flags</msg><path><editType>edit</editType><file>package/devel/kselftests-bpf/Makefile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/ipq806x/dts/qcom-ipq8064-fap-421e.dts</affectedPath><commitId>3f1de27621fcbc06ece334c3e9eafd3e89d968d2</commitId><timestamp>1790668760000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>ipq806x: fix Fortinet FAP-421E LAN1 not transmitting

gmac0 used a fixed-link with no phy-handle, so the AR8035 was never
attached and never configured. The PHY comes out of reset with the
RGMII RX delay enabled and the TX delay disabled, and the IPQ8064 MAC
has no internal RGMII delay of its own, so nothing ever enables it and
LAN1 receives but never transmits when booting from flash. Booting via
tftpboot + bootm masked this, as U-Boot leaves the PHY configured.

Point gmac0 at phy1 on mdio0 and use rgmii-id, which is the mode that
makes the at803x driver enable both delays. The fixed-link has to go,
as phylink does not attach a PHY for fixed-link MACs, which also means
the port now autonegotiates instead of being pinned to 1000/full.

Signed-off-by: Rosen Penev &lt;rosenp@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25452
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</comment><date>2026-09-29 09:59:20 +0200</date><id>3f1de27621fcbc06ece334c3e9eafd3e89d968d2</id><msg>ipq806x: fix Fortinet FAP-421E LAN1 not transmitting</msg><path><editType>edit</editType><file>target/linux/ipq806x/dts/qcom-ipq8064-fap-421e.dts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/common.c</affectedPath><affectedPath>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/rtl-otto.h</affectedPath><affectedPath>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</affectedPath><commitId>138fabb79f8d68d65e40c8b8d0c0494b19053d0f</commitId><timestamp>1790669079000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: l3: do not invent an L2 entry for a next hop

When a route is programmed while the switch holds no L2 entry for the
gateway, rtldsa_l2_nexthop_add() invents one carrying the don't-care
port priv-&gt;r-&gt;port_ignore. Observed on an RTL9303: with such a next hop
the destination receives every forwarded frame twice, once from the
switch and once from the Linux stack. Where the route entry can trap,
do not invent the row, and trap the route to the CPU instead, which is
what otto_l3_fib_add_v4() already does for a host route with no
gateway.

The invented row is written static, so it does not age, and the software
bridge offers no replacement: dsa_user_fdb_event() drops an address
learned on an offloaded port before the driver sees it. Leaving the slot
to the address lets the switch learn it from the traffic the CPU routes,
and a later neighbour update programs a real port. From the code, not
tested: a gateway held as a permanent or NOARP neighbour produces no
such update, so its route stays in software. A route that only claims
entries the switch learned never clears the route count of the entry it
claims: that count may still hold routes forwarding through the entry.

Tested on an RTL9303 (Hasivo S1100W-8XGT-SE) against pristine main,
same board and same rig (main at 19ff245b92; this patch on c09e3f28ba,
which only adds an SPI backport): two hosts on one bridge port, one
untagged in VLAN 1 and one tagged in VLAN 3, a /32 route to each,
programmed after 340 s of neighbour silence so the gateways' L2 entries
have aged out. On main both get a static next hop with the don't-care
port, and five pings collect twelve duplicates: tcpdump at the
destination shows each echo request twice with the same IP id, once at
ttl 64 and once at ttl 63, and the entry is still static afterwards.
With this patch both routes are trapped and the five pings cross in
software without loss or duplicates, each request once at ttl 63. A
trapped route stays trapped while nothing crosses it (ten readings 30 s
apart); the pings let the switch learn the address, and after them the
route is back in hardware on a learned, dynamic entry with the real
port. Programmed while the neighbours are fresh, both kernels behave the
same: a real port and no duplicates. A /24 through the same gateway,
which lands in the prefix table rather than the host one, is trapped the
same way, and its five pings cross at ttl 63 without duplicates.

Not changed here, and the same on both kernels: an entry that ages
while a route already forwards through it keeps its next-hop bit with
the don't-care port, so after 340 s of silence the first of five pings
drew one duplicate before the switch learned the address again.

RTL838x and RTL931x never reach this code: their otto_l3_config carries
no .setup, and both notifiers return early without one, as does an
RTL930x built without CONFIG_NET_DSA_RTL83XX_RTL930X_L3_OFFLOAD. RTL839x
reaches it, but routes through a PIE rule rather than a route entry with
an action, and what its switch does with a route rule that no longer
forwards is not something I could find in the SDK or test. The change is
therefore keyed on use_l3_tables: RTL839x still gets the invented entry
and a PIE rule forwarding through it, exactly as before. Whether it
shows the duplicates too was not tested.

Assisted-by: Claude:claude-opus-5
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Gennaro Cimmino &lt;gcimmino@rayonra.net&gt;
Link: https://github.com/openwrt/openwrt/pull/25353
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-29 10:04:39 +0200</date><id>138fabb79f8d68d65e40c8b8d0c0494b19053d0f</id><msg>realtek: l3: do not invent an L2 entry for a next hop</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/rtl-otto.h</file></path><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/common.c</file></path><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</affectedPath><commitId>4ec7b59613a1c69e5d19d653d9bc39f7b29cb71b</commitId><timestamp>1790683085000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: l3: do not read a nexthop array that is not there

A route through a nexthop object keeps its nexthops in that object, and
the fib_info behind it is allocated with none of its own: for a route
carrying an nhid, fib_create_info() sets the nexthop count to zero and
sizes the structure by it, then points fi-&gt;nh at the object
(net/ipv4/fib_semantics.c). fib_info_nh() says the same by warning when
it is asked for a nexthop of such a route, before handing back the
address where the array would have started.

The IPv4 FIB handler reads that address in the variable initialisers of
three of its functions, ahead of every test any of them makes, so
"ip route add ... nhid N" on a switch whose L3 setup is in place takes
the warning and then dereferences whatever follows the allocation as a
net_device. The RTL839x carries that setup outside any config symbol, so
a stock build gets there.

Leave the route alone where the notifier already screens the IPv4 events
it cannot use, which is ahead of all three reads. Leaving it alone
rather than refusing it, as the check on the next line does for an IPv6
gateway, is deliberate: the kernel still installs the route, and an
error returned from this notifier would come back out of
register_fib_notifier(), which replays the routes that already exist -
so one such route present at probe would cost the switch its whole L3
offload rather than that one entry.

Assisted-by: Claude:claude-opus-5
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Gennaro Cimmino &lt;gcimmino@rayonra.net&gt;
Link: https://github.com/openwrt/openwrt/pull/25310
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-29 13:58:05 +0200</date><id>4ec7b59613a1c69e5d19d653d9bc39f7b29cb71b</id><msg>realtek: l3: do not read a nexthop array that is not there</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</affectedPath><commitId>279b4d763cc5c3dbbac20e1716248ccd22aec331</commitId><timestamp>1790683085000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: l3: take out a route a nexthop object replaces

The previous commit leaves a route through a nexthop object out of the
offload. "ip route replace &lt;dst&gt; nhid N" reaches the notifier as a
FIB_EVENT_ENTRY_REPLACE for the new route alone, with no delete for the
route it replaces (fib_table_insert() in net/ipv4/fib_trie.c). If &lt;dst&gt;
was offloaded, its hardware entry stayed programmed with the old
gateway, and nothing took it out afterwards.

Let add, replace and append events for such a route through to
otto_l3_fib_add_v4(). There, before the first nexthop read, which moves
out of the variable initialisers, take out an entry offloaded for the
same table and destination with the otto_l3_route_find() and
otto_l3_route_teardown() pair its replace path already uses, then
return. The teardown cannot sit in the notifier itself: the FIB
notifier chain is atomic, and the teardown takes the table mutex.

A delete for such a route still stops in the notifier: the route was
never offloaded, and otto_l3_fib_del_v4() reads the nexthop array.

Tested on an RTL9303 (Hasivo S1100W-8XGT-SE) with the L3 offload on,
this series on main at 248601f492. A /24 and a /32 through a gateway
each get a hardware entry; replacing either with "nhid 17" takes the
entry out while the kernel keeps the route, replacing it back through
the other gateway programs an entry again, and deleting it afterwards
leaves none. A replace between two gateways without a nexthop object
still leaves exactly one entry. No warning or oops in the log. The
stale entry this commit removes was read from the code, not reproduced.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Gennaro Cimmino &lt;gcimmino@rayonra.net&gt;
Link: https://github.com/openwrt/openwrt/pull/25310
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-29 13:58:05 +0200</date><id>279b4d763cc5c3dbbac20e1716248ccd22aec331</id><msg>realtek: l3: take out a route a nexthop object replaces</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</affectedPath><commitId>bfb985894411647c61d48f92946c6b2fc775f83a</commitId><timestamp>1790683085000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: l3: trap a host route through a nexthop object

A route through a nexthop object is left out of the offload, but the
switch still looks its destination up. When an offloaded shorter prefix
covers it, the switch forwards that traffic through the prefix's
gateway, and the route the kernel holds never sees a packet.

Where the host table can hold the route, write a trap entry for it, the
way otto_l3_fib_add_v4() already does for a host route with no gateway:
the lookup stops there and the CPU forwards by the kernel's route. A
delete for such a route now reaches the worker as well, and takes that
entry out with the same otto_l3_route_find() and
otto_l3_route_teardown() pair the replace uses.

A prefix route through a nexthop object still gets no entry: here the
prefix table only takes a route once its gateway resolves. Neither does
a host route on a family without a host table.

Tested on an RTL9303 (Hasivo S1100W-8XGT-SE) with the L3 offload on,
this series on main at 248601f492. With 10.99.0.0/16 offloaded through
one host and 10.99.1.1/32 through a nexthop object to the same host,
the /32 gets a trap entry in the host table. Five pings from a second
host reach the first with ttl 63 for 10.99.1.1, forwarded by the CPU,
and with ttl 64 for 10.99.2.2, which only the /16 covers: on this tree
the hardware path leaves the ttl alone. A replace through a gateway
turns the entry into a forwarding one, a replace back makes it a trap
again, and the delete takes it out. A /24 through the nexthop object
gets no entry. No warning or oops in the log.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Gennaro Cimmino &lt;gcimmino@rayonra.net&gt;
Link: https://github.com/openwrt/openwrt/pull/25310
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-29 13:58:05 +0200</date><id>bfb985894411647c61d48f92946c6b2fc775f83a</id><msg>realtek: l3: trap a host route through a nexthop object</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/generic/backport-6.12/802-v7.4-801-v7.4-net-phy-mxl-gpy-add-2.5G-for-MXL86211C.patch</affectedPath><affectedPath>target/linux/generic/backport-6.18/801-v7.4-net-phy-mxl-gpy-add-2.5G-for-MXL86211C.patch</affectedPath><commitId>a83663424db975384e2807040887980662448e74</commitId><timestamp>1790685107000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName></author><authorEmail>robimarko@gmail.com</authorEmail><comment>generic: backport MXL86211C 2.5G support

If SGMII with in-band is used on MX86211C then 2.5G will be missing.

Solve it by backporting upstream switch to gpy21x_config_init that also
advertises 2500Base-X.

Signed-off-by: Robert Marko &lt;robert.marko@sartura.hr&gt;
</comment><date>2026-09-29 14:31:47 +0200</date><id>a83663424db975384e2807040887980662448e74</id><msg>generic: backport MXL86211C 2.5G support</msg><path><editType>add</editType><file>target/linux/generic/backport-6.12/802-v7.4-801-v7.4-net-phy-mxl-gpy-add-2.5G-for-MXL86211C.patch</file></path><path><editType>add</editType><file>target/linux/generic/backport-6.18/801-v7.4-net-phy-mxl-gpy-add-2.5G-for-MXL86211C.patch</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/generic/backport-6.18/895-v7.2-Bluetooth-btusb-Add-Mercusys-MA530-for-Realtek-RTL87.patch</affectedPath><commitId>3ee26fd4178e680d3ddc54d26251d4cbadac8623</commitId><timestamp>1790690882000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>generic: backport the btusb ID for the Mercusys MA530

The Mercusys MA530 dongle (2c4e:0115) is a Realtek RTL8761BUV, but the
6.18 btusb quirks table does not list the ID, so the controller comes up
without its firmware patch: HCI works, yet LE discovery never reports a
single device. Backport the v7.2 commit that adds the ID with the
Realtek and wideband speech flags.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:08:02 +0100</date><id>3ee26fd4178e680d3ddc54d26251d4cbadac8623</id><msg>generic: backport the btusb ID for the Mercusys MA530</msg><path><editType>add</editType><file>target/linux/generic/backport-6.18/895-v7.2-Bluetooth-btusb-Add-Mercusys-MA530-for-Realtek-RTL87.patch</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/system/procd/Makefile</affectedPath><affectedPath>package/system/procd/files/hotplug.json</affectedPath><affectedPath>package/system/procd/files/hotplug-preinit.json</affectedPath><commitId>ffbd82ed6c45e7dce6590737c874853b321d46da</commitId><timestamp>1790692183000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>procd: include hotplug rule fragments from drop-in dirs

The hotplug rules live in a single /etc/hotplug.json, so a package
that needs a device node named, owned or grouped its own way has no
way to contribute one; the alternatives are patching the shared file
or falling back to a shell script under /etc/hotplug.d.

Load /etc/hotplug.json.d/*.json from inside the device node branch,
ahead of the built-in name rules, and /etc/hotplug-preinit.json.d/*
at the end of the preinit script. Fragments are run in sorted order.
A fragment that creates a node keeps it: the generic rule below still
runs, but its mknod() fails with EEXIST and leaves the node alone.

This is done in preparation for deprecating some of the subtarget-wide
FEATURES flags, instead introducing feature-umbrella packages such as
`video-support` and `audio-support` shipping the hotplug rule snippets
and having all providers (ie. kmods) and users depend on them.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:29:43 +0100</date><id>ffbd82ed6c45e7dce6590737c874853b321d46da</id><msg>procd: include hotplug rule fragments from drop-in dirs</msg><path><editType>edit</editType><file>package/system/procd/Makefile</file></path><path><editType>edit</editType><file>package/system/procd/files/hotplug.json</file></path><path><editType>edit</editType><file>package/system/procd/files/hotplug-preinit.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>scripts/package-metadata.pl</affectedPath><commitId>6e638524eed4c7ca316043a9c2d8309282369fca</commitId><timestamp>1790692183000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>build: order the Hardware support menu before Base system

Categories other than Base system are emitted in alphabetical order, so
a category describing the hardware a device has would land halfway down
the package menu among unrelated ones. Emit Hardware support first
instead, ahead of Base system, since which device classes an image
supports is the first thing to choose and everything else follows from
it.

print_package_config_category() returns early for a category no package
uses, so this has no effect until such a package exists.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:29:43 +0100</date><id>6e638524eed4c7ca316043a9c2d8309282369fca</id><msg>build: order the Hardware support menu before Base system</msg><path><editType>edit</editType><file>scripts/package-metadata.pl</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/imx/image/cortexa7.mk</affectedPath><affectedPath>package/base-files/files/etc/group</affectedPath><affectedPath>target/linux/ramips/image/mt7620.mk</affectedPath><affectedPath>target/linux/ipq806x/image/chromium.mk</affectedPath><affectedPath>target/linux/imx/image/cortexa9.mk</affectedPath><affectedPath>target/linux/ramips/image/mt7621.mk</affectedPath><affectedPath>package/system/procd/Makefile</affectedPath><affectedPath>package/system/procd/files/hotplug.json</affectedPath><affectedPath>package/system/hardware-support/files/20-audio.json</affectedPath><affectedPath>target/linux/ramips/image/rt305x.mk</affectedPath><affectedPath>package/system/hardware-support/Makefile</affectedPath><affectedPath>package/kernel/linux/modules/sound.mk</affectedPath><affectedPath>target/linux/mxs/image/Makefile</affectedPath><affectedPath>target/linux/sunxi/image/cortexa8.mk</affectedPath><commitId>e06e3a621b06ad2e750a973f05a7e44c76433b59</commitId><timestamp>1790692183000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>audio-support: move audio device handling out of procd

The audio group and the rule that puts the ALSA character devices in it
are part of procd and base-files, so every image carries them whether or
not it has a sound card, and a package wanting the group has nothing to
depend on. Playback, capture and MIDI all land in one group as well, so a
process allowed to play is also allowed to record.

Move the lot into a new audio-support package with three groups, audio,
audio-capture and midi, and a hotplug fragment that sorts the sound nodes
between them. kmod-sound-core depends on the package, and so do the image
profiles that ship a sound driver. The dependency is a plain one, not a
select, so sound support is offered once the feature is chosen; userspace
that needs one of the groups depends on the same package. Images without
it fall back to the generic rule and get /dev/snd/* as 0600 root:root.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:29:43 +0100</date><id>e06e3a621b06ad2e750a973f05a7e44c76433b59</id><msg>audio-support: move audio device handling out of procd</msg><path><editType>add</editType><file>package/system/hardware-support/Makefile</file></path><path><editType>edit</editType><file>target/linux/imx/image/cortexa7.mk</file></path><path><editType>edit</editType><file>package/kernel/linux/modules/sound.mk</file></path><path><editType>edit</editType><file>package/system/procd/files/hotplug.json</file></path><path><editType>edit</editType><file>target/linux/ramips/image/rt305x.mk</file></path><path><editType>edit</editType><file>target/linux/ipq806x/image/chromium.mk</file></path><path><editType>edit</editType><file>target/linux/ramips/image/mt7621.mk</file></path><path><editType>edit</editType><file>target/linux/imx/image/cortexa9.mk</file></path><path><editType>edit</editType><file>target/linux/mxs/image/Makefile</file></path><path><editType>edit</editType><file>package/system/procd/Makefile</file></path><path><editType>add</editType><file>package/system/hardware-support/files/20-audio.json</file></path><path><editType>edit</editType><file>package/base-files/files/etc/group</file></path><path><editType>edit</editType><file>target/linux/ramips/image/mt7620.mk</file></path><path><editType>edit</editType><file>target/linux/sunxi/image/cortexa8.mk</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/gemini/Makefile</affectedPath><affectedPath>target/linux/ipq40xx/image/generic.mk</affectedPath><affectedPath>target/linux/loongarch64/Makefile</affectedPath><affectedPath>target/linux/mediatek/mt7623/target.mk</affectedPath><affectedPath>target/linux/tegra/Makefile</affectedPath><affectedPath>package/kernel/linux/modules/video.mk</affectedPath><affectedPath>target/linux/at91/sama5/target.mk</affectedPath><affectedPath>package/system/hardware-support/files/30-video.json</affectedPath><affectedPath>target/linux/x86/Makefile</affectedPath><affectedPath>target/linux/bcm27xx/Makefile</affectedPath><affectedPath>target/linux/imx/Makefile</affectedPath><affectedPath>target/linux/sunxi/Makefile</affectedPath><affectedPath>package/system/hardware-support/Makefile</affectedPath><affectedPath>target/linux/armsr/Makefile</affectedPath><commitId>e829091f342049b44894d9e20067023fa7e0da74</commitId><timestamp>1790692183000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>video-support: add a package for display device handling

The display target feature gates every DRM module, but it says nothing
useful: it is set on ten targets, so a mediatek/mt7623 board can have a
display while a filogic board with a MIPI DBI panel cannot, and rockchip
claims it for a NanoPi R2S as much as for a Rock 5B. Whether a board
drives a panel is a per-device choice, not a property of the SoC family.
The DRM and V4L2 nodes also end up 0600 root:root, so a display server
runs as root or not at all.

Add a video-support package which allocates the video and video-capture
groups and installs the hotplug rules for the DRM and V4L2 nodes, and
make the modules depend on it. The dependency is a plain one, not a
select, so the modules are offered once the feature is chosen. Targets
whose display drivers are built into the kernel carry the package in
DEFAULT_PACKAGES, since no module pulls it in for them, and the one
device profile that ships a DRM module on another target lists it
directly. DISPLAY_SUPPORT stays for now, so this changes no existing
selection.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:29:43 +0100</date><id>e829091f342049b44894d9e20067023fa7e0da74</id><msg>video-support: add a package for display device handling</msg><path><editType>edit</editType><file>target/linux/ipq40xx/image/generic.mk</file></path><path><editType>add</editType><file>package/system/hardware-support/files/30-video.json</file></path><path><editType>edit</editType><file>target/linux/sunxi/Makefile</file></path><path><editType>edit</editType><file>target/linux/loongarch64/Makefile</file></path><path><editType>edit</editType><file>target/linux/mediatek/mt7623/target.mk</file></path><path><editType>edit</editType><file>target/linux/tegra/Makefile</file></path><path><editType>edit</editType><file>package/kernel/linux/modules/video.mk</file></path><path><editType>edit</editType><file>target/linux/at91/sama5/target.mk</file></path><path><editType>edit</editType><file>target/linux/gemini/Makefile</file></path><path><editType>edit</editType><file>target/linux/armsr/Makefile</file></path><path><editType>edit</editType><file>package/system/hardware-support/Makefile</file></path><path><editType>edit</editType><file>target/linux/imx/Makefile</file></path><path><editType>edit</editType><file>target/linux/x86/Makefile</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/Makefile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/system/hardware-support/Makefile</affectedPath><affectedPath>package/system/hardware-support/files/35-accel.json</affectedPath><commitId>a6524274c17ad83f6f0729196feb8b58d93ccfa5</commitId><timestamp>1790692183000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>accel-support: add a package for render device handling

The DRM render and compute nodes, /dev/dri/renderD*, /dev/accel/accel*
and /dev/kfd, come out 0600 root:root, so anything using a GPU for
compute or for accelerated rendering runs as root. They also share the
video group with the modesetting nodes wherever a distribution grants it,
which hands scanout control to every process allowed to compute.

Add an accel-support package which allocates the render group and puts
those nodes into it. No kernel module carries a dependency on it: whether
a device offers a render node is a property of the driver, not of the
module, so userspace that wants the group depends on the package.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:29:43 +0100</date><id>a6524274c17ad83f6f0729196feb8b58d93ccfa5</id><msg>accel-support: add a package for render device handling</msg><path><editType>edit</editType><file>package/system/hardware-support/Makefile</file></path><path><editType>add</editType><file>package/system/hardware-support/files/35-accel.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/system/hardware-support/files/40-input.json</affectedPath><affectedPath>target/linux/ramips/image/mt76x8.mk</affectedPath><affectedPath>package/system/hardware-support/Makefile</affectedPath><affectedPath>package/kernel/linux/modules/input.mk</affectedPath><commitId>a7c50f7d73989c2d6f3a30b333b1b83d4dadfd7f</commitId><timestamp>1790692183000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>input-support: add a package for input device handling

The evdev character devices come out 0600 root:root, so a display server
or any other process reading keyboards and pointers runs as root.

Add an input-support package which allocates the input group and puts the
input nodes into it, and make the evdev and joydev modules depend on it.
The one device profile that ships evdev lists the package directly.
kmod-input-core stays ungated: it carries no device node of its own, and
most drivers built on it deliver their events to in-kernel consumers such
as the keyboard and button handlers.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:29:43 +0100</date><id>a7c50f7d73989c2d6f3a30b333b1b83d4dadfd7f</id><msg>input-support: add a package for input device handling</msg><path><editType>add</editType><file>package/system/hardware-support/files/40-input.json</file></path><path><editType>edit</editType><file>package/kernel/linux/modules/input.mk</file></path><path><editType>edit</editType><file>package/system/hardware-support/Makefile</file></path><path><editType>edit</editType><file>target/linux/ramips/image/mt76x8.mk</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/system/hardware-support/files/45-dvb.json</affectedPath><affectedPath>package/system/hardware-support/Makefile</affectedPath><affectedPath>package/kernel/linux/modules/dvb.mk</affectedPath><commitId>94b949df483b79ba7d823d9e0514466b9b7b3f09</commitId><timestamp>1790692183000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>dvb-support: add a package for DVB device handling

The DVB adapter nodes under /dev/dvb come out 0600 root:root, so a
tuner daemon runs as root.

Add a dvb-support package which allocates the dvb group and puts those
nodes into it, and make kmod-dvb-core depend on it.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:29:43 +0100</date><id>94b949df483b79ba7d823d9e0514466b9b7b3f09</id><msg>dvb-support: add a package for DVB device handling</msg><path><editType>add</editType><file>package/system/hardware-support/files/45-dvb.json</file></path><path><editType>edit</editType><file>package/system/hardware-support/Makefile</file></path><path><editType>edit</editType><file>package/kernel/linux/modules/dvb.mk</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/system/hardware-support/files/50-kvm.json</affectedPath><affectedPath>package/system/hardware-support/Makefile</affectedPath><commitId>801c947113e074e46bfbcf3c316dce8910e7a656</commitId><timestamp>1790692183000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>kvm-support: add a package for KVM device handling

/dev/kvm comes out 0600 root:root, so a hypervisor runs as root.

Add a kvm-support package which allocates the kvm group and puts the node
into it. KVM is built into the kernel where it exists, so no module
carries a dependency on the package; userspace depends on it.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:29:43 +0100</date><id>801c947113e074e46bfbcf3c316dce8910e7a656</id><msg>kvm-support: add a package for KVM device handling</msg><path><editType>add</editType><file>package/system/hardware-support/files/50-kvm.json</file></path><path><editType>edit</editType><file>package/system/hardware-support/Makefile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/system/hardware-support/Makefile</affectedPath><affectedPath>package/system/hardware-support/files/55-printer.json</affectedPath><affectedPath>package/kernel/linux/modules/other.mk</affectedPath><affectedPath>package/kernel/linux/modules/usb.mk</affectedPath><commitId>1ccaee3465ca84b7846fabf7028d4259dc64a08e</commitId><timestamp>1790692183000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>printer-support: add a package for printer device handling

The USB and parallel port printer nodes come out 0600 root:root, so a
print spooler runs as root. The lp group is already allocated by p910nd
in the packages feed with gid 7, without anything creating it.

Add a printer-support package which allocates that group and puts the
usblp, lp and ppdev nodes into it, and make kmod-usb-printer and kmod-lp
depend on it.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:29:43 +0100</date><id>1ccaee3465ca84b7846fabf7028d4259dc64a08e</id><msg>printer-support: add a package for printer device handling</msg><path><editType>edit</editType><file>package/system/hardware-support/Makefile</file></path><path><editType>add</editType><file>package/system/hardware-support/files/55-printer.json</file></path><path><editType>edit</editType><file>package/kernel/linux/modules/other.mk</file></path><path><editType>edit</editType><file>package/kernel/linux/modules/usb.mk</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/system/hardware-support/Makefile</affectedPath><commitId>d41436952735e5622e4243bfbc975a6494bd0d64</commitId><timestamp>1790692183000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>scanner-support: add a package for the scanner group

Scanner access is granted per device: a USB scanner is matched by vendor
and product id against a database of supported devices, which only the
driver package has. There is no device class to write a generic hotplug
rule against, and putting every USB device node into a group would grant
far more than scanner access.

Allocate the scanner group and nothing else, so the id is the same on
every image, one package owns it, and scanner userspace has something to
depend on. The rule granting access to a particular device stays with
the driver package.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:29:43 +0100</date><id>d41436952735e5622e4243bfbc975a6494bd0d64</id><msg>scanner-support: add a package for the scanner group</msg><path><editType>edit</editType><file>package/system/hardware-support/Makefile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/system/hardware-support/files/60-hidraw.json</affectedPath><affectedPath>package/system/hardware-support/Makefile</affectedPath><commitId>98158852204e16ed242a1ded2916fb7e26f0e956</commitId><timestamp>1790692183000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>hidraw-support: add a package for raw HID device handling

A HID device a driver hands to userspace whole, a UPS, a relay board or
a programmable keypad, appears as a hidraw node and is opened directly
by the program driving it. Everything of that kind runs as root today,
because the generic rule leaves the node 0600 root:root and there is no
group for it.

Allocate the hidraw group and install the rule which puts the hidraw
nodes into it. This is a separate class from the evdev nodes that
input-support covers: hidapi and the packages using it open hidraw, and
a keyboard or a mouse is read through evdev.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:29:43 +0100</date><id>98158852204e16ed242a1ded2916fb7e26f0e956</id><msg>hidraw-support: add a package for raw HID device handling</msg><path><editType>add</editType><file>package/system/hardware-support/files/60-hidraw.json</file></path><path><editType>edit</editType><file>package/system/hardware-support/Makefile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/generic/config-6.18</affectedPath><commitId>bf399ce146bc4f6fceadd1a1704cc8e595b0b186</commitId><timestamp>1790692183000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>kernel: answer the DRM symbols a modular DRM makes visible

The DRM and fb kmods are about to lose their target feature gate, so
they become selectable on targets whose kernel config has never had
CONFIG_DRM set. Enabling DRM there makes symbols visible that no
fragment answers, and syncconfig stops to ask about them, which fails
a non-interactive build.

Answer them in the generic config: the default DRM client, which
appears once a client is built, the NXP display bridges that ARCH_MXC
exposes, and the Acer Aspire 1 embedded controller.

The set was taken by merging each target's fragments with the kmods'
KCONFIG and recording every symbol the kernel's own oldconfig marks
NEW, on layerscape/armv7, qualcommbe/ipq95xx, mediatek/filogic and
ramips/mt7621, which covers arm, arm64 and mips.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:29:43 +0100</date><id>bf399ce146bc4f6fceadd1a1704cc8e595b0b186</id><msg>kernel: answer the DRM symbols a modular DRM makes visible</msg><path><editType>edit</editType><file>target/linux/generic/config-6.18</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/kernel/linux/modules/video.mk</affectedPath><affectedPath>package/utils/fbtest/Makefile</affectedPath><affectedPath>package/kernel/linux/modules/sound.mk</affectedPath><commitId>c375123b3b6e2b5c2f85480b45e43215fb414893</commitId><timestamp>1790692183000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>kernel: drop the audio and display feature gates

The sound and DRM modules carry a dependency on audio-support and
video-support, which is what decides whether an image handles those
devices. The AUDIO_SUPPORT and DISPLAY_SUPPORT tokens beside them add a
second, per-SoC-family condition that a board cannot influence, and that
DISPLAY_SUPPORT is half derived from whatever kernel configuration was
copied into a target's fragment.

Drop the tokens from the module dependencies and from fbtest.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:29:43 +0100</date><id>c375123b3b6e2b5c2f85480b45e43215fb414893</id><msg>kernel: drop the audio and display feature gates</msg><path><editType>edit</editType><file>package/utils/fbtest/Makefile</file></path><path><editType>edit</editType><file>package/kernel/linux/modules/sound.mk</file></path><path><editType>edit</editType><file>package/kernel/linux/modules/video.mk</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/bcm27xx/Makefile</affectedPath><affectedPath>target/linux/uml/Makefile</affectedPath><affectedPath>target/linux/gemini/Makefile</affectedPath><affectedPath>target/linux/ipq40xx/generic/target.mk</affectedPath><affectedPath>target/linux/imx/Makefile</affectedPath><affectedPath>target/linux/sunxi/Makefile</affectedPath><affectedPath>target/linux/mediatek/mt7623/target.mk</affectedPath><affectedPath>target/linux/loongarch64/Makefile</affectedPath><affectedPath>target/linux/tegra/Makefile</affectedPath><affectedPath>target/linux/x86/generic/target.mk</affectedPath><affectedPath>target/linux/omap/Makefile</affectedPath><affectedPath>target/linux/rockchip/Makefile</affectedPath><commitId>de2f69bf8971e3983156cd39f528b500b29297e6</commitId><timestamp>1790692183000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>treewide: drop the audio and display target features

Both features describe an SoC family, which is the wrong granularity: a
mediatek/mt7623 board claims a display while a filogic board with a MIPI
DBI panel cannot, and rockchip claims audio for a NanoPi R2S as much as
for a Rock 5B. The audio-support and video-support packages carry that
information per image, and the modules depend on them.

Drop both features from every target that declares them.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:29:43 +0100</date><id>de2f69bf8971e3983156cd39f528b500b29297e6</id><msg>treewide: drop the audio and display target features</msg><path><editType>edit</editType><file>target/linux/omap/Makefile</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/Makefile</file></path><path><editType>edit</editType><file>target/linux/tegra/Makefile</file></path><path><editType>edit</editType><file>target/linux/x86/generic/target.mk</file></path><path><editType>edit</editType><file>target/linux/imx/Makefile</file></path><path><editType>edit</editType><file>target/linux/uml/Makefile</file></path><path><editType>edit</editType><file>target/linux/gemini/Makefile</file></path><path><editType>edit</editType><file>target/linux/ipq40xx/generic/target.mk</file></path><path><editType>edit</editType><file>target/linux/rockchip/Makefile</file></path><path><editType>edit</editType><file>target/linux/sunxi/Makefile</file></path><path><editType>edit</editType><file>target/linux/mediatek/mt7623/target.mk</file></path><path><editType>edit</editType><file>target/linux/loongarch64/Makefile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>config/Config-build.in</affectedPath><affectedPath>scripts/target-metadata.pl</affectedPath><affectedPath>target/Config.in</affectedPath><affectedPath>include/target.mk</affectedPath><commitId>da6323e54c9cb75479eb5be5c83d43a15d5c3c34</commitId><timestamp>1790692183000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName></author><authorEmail>daniel@makrotopia.org</authorEmail><comment>build: remove the AUDIO_SUPPORT and DISPLAY_SUPPORT symbols

Nothing tests either symbol any more. AUDIO_SUPPORT was also selected by
PCI_SUPPORT and USB_SUPPORT, which stood for "a sound card could be
plugged in here": audio hardware sits behind MMC, SPI, a Bluetooth UART
or an SoC PCM block just as often, so the inference never held. The
display feature was derived from a literal CONFIG_VGA_CONSOLE or CONFIG_FB
in a kernel fragment, which misses every target whose fbdev came from DRM
emulation.

Delete both symbols, the two selects, the feature translations and the
derivation.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</comment><date>2026-09-29 15:29:43 +0100</date><id>da6323e54c9cb75479eb5be5c83d43a15d5c3c34</id><msg>build: remove the AUDIO_SUPPORT and DISPLAY_SUPPORT symbols</msg><path><editType>edit</editType><file>config/Config-build.in</file></path><path><editType>edit</editType><file>target/Config.in</file></path><path><editType>edit</editType><file>scripts/target-metadata.pl</file></path><path><editType>edit</editType><file>include/target.mk</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/system/rpcd/Makefile</affectedPath><commitId>34aa4c81eca6179840f7d07500abad56c4ca8a1f</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>rpcd: update to Git HEAD (2026-09-25)

4062f666ecd1 file: reply with empty data instead of error for empty files
a6c6b63b47bd ucode: add compatibility to newer ucode version

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>34aa4c81eca6179840f7d07500abad56c4ca8a1f</id><msg>rpcd: update to Git HEAD (2026-09-25)</msg><path><editType>edit</editType><file>package/system/rpcd/Makefile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/libs/udebug/Makefile</affectedPath><commitId>e43ef4a8943aaf58b7d2eb83be97534fb5d8bade</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>udebug: update to Git HEAD (2026-09-25)

6726e98ad694 lib-ucode: add missing fcntl.h include

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>e43ef4a8943aaf58b7d2eb83be97534fb5d8bade</id><msg>udebug: update to Git HEAD (2026-09-25)</msg><path><editType>edit</editType><file>package/libs/udebug/Makefile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/system/ubus/Makefile</affectedPath><commitId>a1a104a8d8c44e316177c865fbc78a765240965d</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>ubus: update to Git HEAD (2026-09-25)

cd51fc0031ff libubus: refuse to send a message the peer must reject
9ba1ab795b2f libubus: drop the connection when a message cannot be read
ce54d7a956a5 ubusd_main: free partially received message on client disconnect
6b5c6f166db4 ubusd_main: free queued lookup commands on client disconnect
b012bc067515 ubusd_acl: use SO_PEERGROUPS instead of parsing /proc for peer gids
955ff3f7030c ubusd: fix use-after-free when resuming a queued object lookup
fb1dd8e0d7c8 ubusd: document the bound on the pending-message body read
3a39a800f162 libubus-req: fix double close of the fd in ubus_complete_deferred_request
4d60031579d2 libubus: fix msgbuf leak on ubus_channel_connect error path
91b0dadfd1ed libubus-req: fix error check on the __ubus_notify_async result
82416940eae8 libubus-io: do not resend the fd on partial writes in writev_retry
618f3cf75ae3 libubus-obj: fix fd leaks on object message error paths
2f52ae367c93 ubusd_main: flush the tx queue after freeing the client's objects
cdb648c3283a ubusd_obj: propagate subscription allocation failure to the client
7c5c06825daf ubusd_proto: fix double close of forwarded invoke fd
d8fec00656a6 ubusd: keep the fd alive while a message waits in the tx queue
bde609c2400e ubusd_acl: copy the filename used as the ACL file vlist key
008655958eb4 ubusd_acl: do not treat unresolvable ACL user/group names as id 0
5331c00f37f7 ubusd_event: document reserved event namespace forgery check
ef37ed207183 ubusd_event: use an unsigned type for the event dedup sequence
e12ad4bd667f ubusd: flag event messages as not expecting a reply
9d709c536cd6 ubusd_event: report allocation failure as out of memory
5170a5818b54 ubusd: use canonical SCM_RIGHTS extraction on the receive path
8dfee69c250c ubusd_main: do not abort startup when the default socket dir fails
17f78610d771 ubusd: disconnect the client when a partially sent message is dropped
f5e5836704c8 cli: parse monitored payloads with the untrusted blob parser
11e411e36f08 libubus: close the passed fd when the request exceeds the size limit
cbc27b66d813 ubusd: stop writing to a client already flagged for disconnect
2ec13d49ba37 libubus: do not restart the ACL query while one is in flight
297baef62eee libubus: free queued pending messages on shutdown
17525550a36b ubus/lua: fix Lua stack imbalance on policy allocation failure
fdd9ff1fe0fc ubus/lua: copy the Lua strings stored in registered objects
eb5a8284d176 ubusd: close the forwarded fd when the invoke reply cannot be built
3930745d8593 tests/fuzz: fix out-of-bounds read in header validation harness
b27014cf7978 tests/fuzz: use size of blob_attr, not of a pointer, in length guard
414c60a2e29e ubus/lua: store event handler ref without polluting the callback table

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>a1a104a8d8c44e316177c865fbc78a765240965d</id><msg>ubus: update to Git HEAD (2026-09-25)</msg><path><editType>edit</editType><file>package/system/ubus/Makefile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/network/services/hostapd/src/wpa_supplicant/ucode.c</affectedPath><affectedPath>package/network/services/hostapd/files/wpa_supplicant.uc</affectedPath><commitId>fcd9dbf534374fb6c249f77c5c64b055a91e5656</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>hostapd: let the ucode DPP hook send a GAS comeback request

A GAS responder whose answer exceeds gas_frag_limit answers the initial
request with a comeback delay and holds the payload for GAS Comeback
Requests. hostapd does that for a DPP configuration response of any size
above 1400 octets, which a configuration object for several BSSs
exceeds, and an enrollee driven through this hook could not ask for it:
tx_gas_req builds an initial request around a payload, and tx_action
rebuilds whatever it is given as a DPP message, so neither carries the
plain public action frame a comeback needs.

dpp_send_gas_comeback_req exposes gas_build_comeback_req the same way
dpp_send_gas_req exposes its counterpart, and the channel takes it as
tx_gas_comeback_req.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>fcd9dbf534374fb6c249f77c5c64b055a91e5656</id><msg>hostapd: let the ucode DPP hook send a GAS comeback request</msg><path><editType>edit</editType><file>package/network/services/hostapd/src/wpa_supplicant/ucode.c</file></path><path><editType>edit</editType><file>package/network/services/hostapd/files/wpa_supplicant.uc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/network/config/wifi-scripts/files-ucode/usr/share/schema/wireless.wifi-iface.json</affectedPath><commitId>54a6f4ee1eded0a38ac0dbb7a322f0d53da6a9c4</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>wifi-scripts: declare the dpp option in the wifi-iface schema

iface.uc adds the DPP AKM beside the one the encryption keyword selects when
`dpp` is set, which is how a credential naming several AKMs is expressed, but
the option was in no schema. netifd answered "dpp is not present in the
schema" on every reload that used it.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>54a6f4ee1eded0a38ac0dbb7a322f0d53da6a9c4</id><msg>wifi-scripts: declare the dpp option in the wifi-iface schema</msg><path><editType>edit</editType><file>package/network/config/wifi-scripts/files-ucode/usr/share/schema/wireless.wifi-iface.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/network/services/hostapd/files/hostapd.uc</affectedPath><commitId>79444dcc6847fc42e8ceb7a2c339442c7b75a3c3</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>hostapd: let a preserved BSS keep the address it already has

iface_config_macaddr_list() marks every address of the running configuration
of a PHY, and every MLD address, with -1. The branch that carries a preserved
BSS's address into the new configuration read that as taken and was therefore
never reached, so the address stayed unclaimed in macaddr_list while the BSS
went on using it. The generator of step 6 then handed the same address to a
newly added BSS:

    Duplicate BSSID b6:ad:9f:70:fb:4a on interface 'ap-mld6' and 'ap-mld0'.
    Failed to add new bss ap-mld0 on phy phy0.0
    Restart interface for phy phy0.0

hostapd refused its own configuration and restarted the PHY under the stations
it served. A four address backhaul station survived that restart as associated
and stopped carrying data, which took a Multi-AP agent off the mesh until its
daemon was restarted.

The address is asked about by the BSS that already holds it, so a reservation
over it is its own. Measured on a seven BSS AP MLD: the reconfiguration that
produced the three lines above now produces none of them, and the backhaul
station keeps its association across it.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>79444dcc6847fc42e8ceb7a2c339442c7b75a3c3</id><msg>hostapd: let a preserved BSS keep the address it already has</msg><path><editType>edit</editType><file>package/network/services/hostapd/files/hostapd.uc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/network/services/hostapd/src/src/ap/ucode.c</affectedPath><affectedPath>package/network/services/hostapd/src/src/ap/ucode.h</affectedPath><affectedPath>package/network/services/hostapd/patches/601-ucode_support.patch</affectedPath><commitId>27b8aa25f85ba9f171dcff9645981b80d141073b</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>hostapd: answer a DPP frame on the link that holds the channel

The ucode DPP API sends from the BSS the caller names. An AP MLD holds
one BSS per link, each with its own address and channel, and the BSS
that receives a frame is not always the one that holds the channel the
frame arrived on. The answer then leaves under the address of one link
on the channel of another, and the peer does not acknowledge it.

Send from the link whose channel the caller names. The GAS hook named no
channel at all, so pass the one the request arrived on.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>27b8aa25f85ba9f171dcff9645981b80d141073b</id><msg>hostapd: answer a DPP frame on the link that holds the channel</msg><path><editType>edit</editType><file>package/network/services/hostapd/patches/601-ucode_support.patch</file></path><path><editType>edit</editType><file>package/network/services/hostapd/src/src/ap/ucode.h</file></path><path><editType>edit</editType><file>package/network/services/hostapd/src/src/ap/ucode.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/network/services/hostapd/files/wpa_supplicant.uc</affectedPath><commitId>24723ba31095f78751ba20be4c3850609a79603b</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>hostapd: name the DPP chirp listen frequency

The ubus field was called scan_interval, which names a duration.
wpa_supplicant reads it as "DPP_CHIRP listen=", a frequency in MHz. A
caller that passed a duration made the driver reject the
remain-on-channel request, and the enrollee listened on nothing between
chirp rounds.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>24723ba31095f78751ba20be4c3850609a79603b</id><msg>hostapd: name the DPP chirp listen frequency</msg><path><editType>edit</editType><file>package/network/services/hostapd/files/wpa_supplicant.uc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/utils/provision/files/usr/sbin/provision</affectedPath><commitId>83e7914958999bb7be898056175b89e69875693d</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>provision: name the create command in the not-found message

The message told the user to run "provision enable", but no such command
exists. The command that makes the partition is "provision create".

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>83e7914958999bb7be898056175b89e69875693d</id><msg>provision: name the create command in the not-found message</msg><path><editType>edit</editType><file>package/utils/provision/files/usr/sbin/provision</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/base-files/files/sbin/sysupgrade</affectedPath><commitId>725a1dc534a1ad1008ae0412925100fef66a776f</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>base-files: create the provisioning partition on sysupgrade by default

The partition holds data that must survive a factory reset, so a device
needs it before the data exists, not after. Waiting for the user to pass
-P means the partition is missing on exactly the devices that were never
flashed with it in mind.

The partition is only created if it does not exist yet, and --no-provisioning
turns the behaviour off.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>725a1dc534a1ad1008ae0412925100fef66a776f</id><msg>base-files: create the provisioning partition on sysupgrade by default</msg><path><editType>edit</editType><file>package/base-files/files/sbin/sysupgrade</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/network/config/wifi-scripts/files/lib/wifi/mac80211.uc</affectedPath><commitId>2de3225246a87db0b1d01cee62f5ec538f215c62</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>wifi-scripts: take the regdomain from the provisioning partition

A factory reset drops /etc/config/wireless, so a regdomain that the user
set there is gone after the reset. The provisioning partition survives a
factory reset, so read "wireless.country" from it and let it override the
country from board.json when the wireless config is generated:

  provision set wireless.country DE

A provisioned country also keeps the default 5G and 6G interfaces
enabled, which is what a board.json country does today.

The provision package is optional, so the module is loaded at runtime and
a missing module leaves the previous behaviour unchanged.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>2de3225246a87db0b1d01cee62f5ec538f215c62</id><msg>wifi-scripts: take the regdomain from the provisioning partition</msg><path><editType>edit</editType><file>package/network/config/wifi-scripts/files/lib/wifi/mac80211.uc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/network/services/hostapd/files/hostapd.uc</affectedPath><commitId>aa99fb89a0d2e63522d9ec42950bad02b1270d63</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>hostapd: add a ubus method to set MBO Association Disallowed

hostapd holds the MBO Association Disallowed attribute in its own
MBO-OCE element and sets it through the control interface command
"SET mbo_assoc_disallow", which no ubus method reaches. A daemon that
wants to advertise it has to add a second MBO-OCE element as a vendor
element, and wpa_supplicant reads the attribute only from the first
MBO-OCE element of a frame.

Add mbo_assoc_disallow { iface, reason } to the hostapd object. It sets
the reason on every BSS of that name, which covers each link of an AP
MLD; a reason of 0 allows association again.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>aa99fb89a0d2e63522d9ec42950bad02b1270d63</id><msg>hostapd: add a ubus method to set MBO Association Disallowed</msg><path><editType>edit</editType><file>package/network/services/hostapd/files/hostapd.uc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/network/services/hostapd/src/src/ap/ubus.h</affectedPath><affectedPath>package/network/services/hostapd/src/src/ap/ubus.c</affectedPath><commitId>400c79e6b652c41894af788259d90029e85127b9</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>hostapd: let a ubus subscriber answer BTM queries, and extend beacon_req

bss_transition_query_answer lets the subscriber that answers a BSS
Transition Management Query itself, stop hostapd from sending a BTM
Request of its own. The flag is cleared when the object loses its
last subscriber.

rrm_beacon_req takes channel_reports, written as AP Channel Report
subelements, and element_list, written as a Request subelement where
Reporting Detail is 1. A station rejects a request on channel 255 that
carries no channel report (802.11-2024 11.10.9.1.1). Values that do not
fit an octet, and a request longer than the Measurement Request element
can carry, are refused.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>400c79e6b652c41894af788259d90029e85127b9</id><msg>hostapd: let a ubus subscriber answer BTM queries, and extend beacon_req</msg><path><editType>edit</editType><file>package/network/services/hostapd/src/src/ap/ubus.c</file></path><path><editType>edit</editType><file>package/network/services/hostapd/src/src/ap/ubus.h</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/network/services/hostapd/patches/071-VLAN-increase-netlink-buffer-size.patch</affectedPath><commitId>c071e440ba074798a5a80c624350f3f9bd1562d4</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>hostapd: increase the netlink buffer of the dynamic VLAN socket

The dynamic VLAN code opens its own RTMGRP_LINK socket and takes the default
buffer, where netlink_init() sets one since 070-netlink-increase-buffer-size.
A reconfiguration that creates and destroys several interfaces bursts more
link events than the default holds, and hostapd answered "VLAN:
vlan_event_receive: recvfrom failed: No buffer space available" and lost the
events it needed.

Measured on a seven BSS AP MLD: a bring-up that restarts both PHYs produced
eighteen of those lines before and none after.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>c071e440ba074798a5a80c624350f3f9bd1562d4</id><msg>hostapd: increase the netlink buffer of the dynamic VLAN socket</msg><path><editType>add</editType><file>package/network/services/hostapd/patches/071-VLAN-increase-netlink-buffer-size.patch</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/network/services/hostapd/files/hostapd.uc</affectedPath><commitId>4c6992b13bfab5105ea1f91f57e5c23601cae1c3</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>hostapd: keep MLD interfaces and their BSSes across config changes

A config change below MLD level destroyed and recreated MLD netdevs and BSSes
that could have been kept. This restarted the PHY and dropped all connected
stations. Three separate issues caused this:

1. mld_find_matching_config() compared the whole vif config, so a change to an
   SSID created a new MLD. mld_set_config() then reloaded every interface
   without it, bss_check_mld() found no registry entry, iface_check_mld()
   spliced all MLD BSSes out of the config, and the interface was removed when
   no BSS was left. Replace it with mld_config_matches(), which compares only
   the fields that define the netdev: name, wiphy, radio mask and address.
   All other fields are BSS level and reach hostapd through the per PHY config
   file. The radio mask is compared instead of the radio list, so a new order
   of the device list keeps the MLD. mld_rename_bss() has no callers left and
   is removed.

2. bss_find_existing() accepted a hash match between MLD BSSes with different
   names, which happens when the BSS set shifts and BSSes share the same
   settings. Step 4 of iface_reload_config() then renamed one MLD netdev onto
   the name of another one, which fails with EEXIST. An MLD BSS is identified
   by its netdev name, so skip old MLD BSSes with a different name. The search
   continues, and an old BSS with the correct name is kept.

3. Step 2 preserved and renamed the first BSS even when the first BSS changes
   between plain BSS and MLD link. This cannot work, because
   hostapd_bss_setup_multi_link() only runs when a BSS is allocated. A rename
   of an MLD link also renames the netdev that the other radios share. Delete
   and recreate the first BSS instead. If no other BSS is kept, keep the old
   first BSS until the first new BSS exists, so that the PHY always has a BSS.
   Its address stays reserved until the delete. Delete it right after that,
   because its netdev and /var/run/hostapd/&lt;name&gt; keep its name, and a later
   new BSS can use that name. If another BSS is kept, delete the old first BSS
   in step 3 as before, since a kept BSS can be renamed onto its name.
   bss_remove() holds the delete sequence for both paths.

Tested on an AP MLD with 7 BSSes, going from 1 to 7 configured BSSes. The
messages "Skip MLD interface", "Remove interface", "Restart interface for phy"
and "Renaming device ... failed: Object exists" no longer appear, and a
4-address backhaul station stays associated across the change.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>4c6992b13bfab5105ea1f91f57e5c23601cae1c3</id><msg>hostapd: keep MLD interfaces and their BSSes across config changes</msg><path><editType>edit</editType><file>package/network/services/hostapd/files/hostapd.uc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/network/services/hostapd/files/hostapd.uc</affectedPath><commitId>87623c1e67a95d359da65be51ec4f2af6354ecec</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>hostapd: give the radio 0 link of an MLD the MLD address

bss_macaddr_next() gives the address of an MLD to its link on radio 0, and
the address generation relies on that. Two paths keep an old link address
instead, even after the MLD address changed:

- Step 2 of iface_reload_config() keeps the old BSSID of the first BSS when
  the new one is a default address, because the first BSS cannot change it
  in place.
- The keep loop in iface_restart() gives a surviving BSS with a default
  address its previous BSSID again.

The link then keeps its old address, and the MLD address is on no link.

In one case, a config change gave ap-mld0 a new MLD address and reloaded it
in place. Link 0 kept the previous MLD address as its link address, so the
new MLD address was on no link. From then on, about 30 % of the unicast
frames to the associated backhaul station were lost (68 of 100 echo requests
arrived), while the AP counted no failed transmission. A new association did
not clear it; a full wifi down/up did.

Move the decision of bss_macaddr_next() into bss_mld_addr(). The keep loop
of iface_restart() skips a link whose previous address is not the MLD
address, so the link gets the MLD address. Step 2 takes the restart path in
the same case. A link that already has the MLD address stays in place, and
plain BSSes, links on other radios and static addresses keep the old
behaviour.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>87623c1e67a95d359da65be51ec4f2af6354ecec</id><msg>hostapd: give the radio 0 link of an MLD the MLD address</msg><path><editType>edit</editType><file>package/network/services/hostapd/files/hostapd.uc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/network/services/hostapd/src/src/ap/ucode.c</affectedPath><commitId>9a81bf528dcd3e6d868492ab293263d186336992</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>hostapd: move the control socket with a renamed BSS

With CONFIG_IEEE80211BE, hostapd names the control socket of a BSS
after hapd-&gt;ctrl_sock_iface, not after conf-&gt;iface. bss.rename()
changed conf-&gt;iface and opened the socket again, but kept the old
ctrl_sock_iface. The renamed BSS therefore kept the socket of its old
name.

A reload that renames phy0-ap0 to phy0-ap2 and then adds a new
phy0-ap0 failed for this reason. The new BSS found
/var/run/hostapd/phy0-ap0 bound by the renamed BSS ("ctrl_iface exists
and seems to be in use"), add_bss failed, and hostapd.uc restarted
the whole phy. Measured on slot-1-agent2, 2026-09-28 13:56:19 (phy0)
and 13:56:21 (phy1): each restart took all BSSes of the phy down for
about 2 s.

Set ctrl_sock_iface from the new name before the socket is opened
again, as start_ctrl_iface_bss() does for a new BSS.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>9a81bf528dcd3e6d868492ab293263d186336992</id><msg>hostapd: move the control socket with a renamed BSS</msg><path><editType>edit</editType><file>package/network/services/hostapd/src/src/ap/ucode.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/network/services/hostapd/src/src/ap/ucode.c</affectedPath><commitId>b833ad3511a67099dd3d0f0b98f4cea5f009dd69</commitId><timestamp>1790695765000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName></author><authorEmail>nbd@nbd.name</authorEmail><comment>hostapd: initialise the result of bss.rename()

bss.rename(ifname, true) skips the driver rename, and ret was then
read without a value. hostapd.uc passes no second argument today, so
no caller reaches this.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</comment><date>2026-09-29 17:29:25 +0200</date><id>b833ad3511a67099dd3d0f0b98f4cea5f009dd69</id><msg>hostapd: initialise the result of bss.rename()</msg><path><editType>edit</editType><file>package/network/services/hostapd/src/src/ap/ucode.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/soc/realtek/otto_table.c</affectedPath><affectedPath>target/linux/realtek/files-6.18/include/linux/soc/realtek/otto_table.h</affectedPath><commitId>782b7a88bab19a1e8e76dfaf5111ebe4f74da0fc</commitId><timestamp>1790706704000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: soc: enhance to support L2 Table queries

The RTL9607C SoC has L2 tables that need specialized table procedure
for queries using the access methods and hit bit, hit addresses and
source ports.

Add a whole new otto_table_l2_query function for that functionality
with separate read or write macros and their unlocked variants.

While we are here, add the sp_bit to the otto_table struct so that the
OTTO_TABLE_L2_METHOD_ADDR_NEXT_UC_PORT could be used as well.

A lot of this code was based around rtl8365mb_table code in the DSA
driver folder for RTL8365MB switch as the table interface overlap quite
substantially with RTL9607C.

Signed-off-by: Rustam Adilov &lt;adilov@tutamail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25332
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-29 20:31:44 +0200</date><id>782b7a88bab19a1e8e76dfaf5111ebe4f74da0fc</id><msg>realtek: soc: enhance to support L2 Table queries</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/include/linux/soc/realtek/otto_table.h</file></path><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/soc/realtek/otto_table.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>9e581d7b61517fa85072b0bbabac9ae0243e5812</commitId><timestamp>1790706950000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: rtl930x: limit RX reset to supported modes

The RX reset helper defaulted to the 10G analog page for every mode
except 1000Base-X. The vendor SDK, however, only applies this reset to
1000Base-X, XSGMII, USXGMII and 10GBase-R. Other modes either use a
different reset mechanism or do not perform this reset.

Restrict the reset to the modes supported by the SDK, then use the
common CMU page selector to choose between the 1G and 10G analog pages.
This avoids toggling an unrelated 10G register for unsupported modes.

Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:50 +0000</date><id>9e581d7b61517fa85072b0bbabac9ae0243e5812</id><msg>realtek: pcs: rtl930x: limit RX reset to supported modes</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>1cf469ac9d3d2aaf5ac037006c7a730f25f2de79</commitId><timestamp>1790706950000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: rtl930x: make XSG write targets explicit

The XSG write helper now uses two types of write calls, the rtl930x
specific implementation and the raw write helper for the second access.
This easily causes confusion because it is not obvious what happens here
at a glance. Right now, this relies on the sds-id being correctly
handled by the 930x helper, while doing the same treatment for the
second call. Using a different helper for the first write might imply
that behavior differs here.

To clean that up, use the raw write helper for both accesses and handle
the sds-id translation completely in this routine.

Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:50 +0000</date><id>1cf469ac9d3d2aaf5ac037006c7a730f25f2de79</id><msg>realtek: pcs: rtl930x: make XSG write targets explicit</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>83a1dc91010f4251f183afa5d64422ca4b5eaefb</commitId><timestamp>1790706950000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: rtl930x: read correct symbol errors for SGMII/1000Base-X

Both modes were incorrectly assigned to the same branch that 10GBase-R
and USXGMII use for reading the symbol error count. This behavior is not
supported by anything in the SDK. According to that, they fall into the
generic else case. Fix that by dropping those two modes from the branch
condition.

Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:50 +0000</date><id>83a1dc91010f4251f183afa5d64422ca4b5eaefb</id><msg>realtek: pcs: rtl930x: read correct symbol errors for SGMII/1000Base-X</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>b121ce06da062c41925ff5f13e84ac857e688ed4</commitId><timestamp>1790706950000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: rtl930x: simplify return condition

A return condition checking the same variable twice on &lt; 0 and 0 and
returning the same value then can be combined into a single check. No
double check is needed for that.

Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:50 +0000</date><id>b121ce06da062c41925ff5f13e84ac857e688ed4</id><msg>realtek: pcs: rtl930x: simplify return condition</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>50aa0ed9f3d054f734c1cd1d6ab9503b9baecd80</commitId><timestamp>1790706950000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: drop useless part of comment

A part of a comment describing USXGMII-AN fields is useless now that the
write operation uses named register fields. Thus, drop this unneeded
part and make the comment shorter.

Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:50 +0000</date><id>50aa0ed9f3d054f734c1cd1d6ab9503b9baecd80</id><msg>realtek: pcs: drop useless part of comment</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>fa1caf2d5ec6b396995ffbefbe11e6525acde6f4</commitId><timestamp>1790706950000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: rtl930x: fix RX calibration warning

The calibration retry loop warns whenever it reaches the third attempt,
even if that final attempt succeeds. Preserve the final check result
and only warn when calibration actually remains unsuccessful.

Assisted-by: ChatGPT (OpenAI GPT-5.6 Sol)
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:50 +0000</date><id>fa1caf2d5ec6b396995ffbefbe11e6525acde6f4</id><msg>realtek: pcs: rtl930x: fix RX calibration warning</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>d97dad9925539b8886325d2a0f9d314798bc807e</commitId><timestamp>1790706950000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: rtl839x: reset SerDes pairs once

The RTL839x reset helper operates on both lanes of a SerDes pair.
Iterating over every lane therefore runs the same reset sequence twice
for each 10G pair. Step through the SerDes array in pairs so each
sequence runs only once.

Assisted-by: ChatGPT (OpenAI GPT-5.6 Sol)
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:50 +0000</date><id>d97dad9925539b8886325d2a0f9d314798bc807e</id><msg>realtek: pcs: rtl839x: reset SerDes pairs once</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>76a1d4261a9bd3510ec52e98cac6cf8e78b52e87</commitId><timestamp>1790706950000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: rtl930x: propagate clock polling errors

Clock readiness polling currently ignores selector write failures and
treats negative read results as asserted readiness. Check both accesses
so register errors cannot satisfy the three-sample readiness condition.

Assisted-by: ChatGPT (OpenAI GPT-5.6 Sol)
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:50 +0000</date><id>76a1d4261a9bd3510ec52e98cac6cf8e78b52e87</id><msg>realtek: pcs: rtl930x: propagate clock polling errors</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>cd7491f940d9aea4d8fa7783ad75eb23d93c0af5</commitId><timestamp>1790706951000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: rtl838x: propagate initialization errors

The RTL838x initialization callback reports success even when powering
off or resetting the SerDes fails. Check the first regmap write and
return the result of the reset write so probe can report either
failure.

Assisted-by: ChatGPT (OpenAI GPT-5.6 Sol)
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:51 +0000</date><id>cd7491f940d9aea4d8fa7783ad75eb23d93c0af5</id><msg>realtek: pcs: rtl838x: propagate initialization errors</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>f4129f1694e366f0ef4e76ed3d23cdece38ef064</commitId><timestamp>1790706951000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: rtl838x: propagate queue reset errors

The first SerDes start requests a switch queue reset but discards any
regmap failure. Return the write result so PCS configuration does not
report success when the required recovery reset failed.

Assisted-by: ChatGPT (OpenAI GPT-5.6 Sol)
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:51 +0000</date><id>f4129f1694e366f0ef4e76ed3d23cdece38ef064</id><msg>realtek: pcs: rtl838x: propagate queue reset errors</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>7491adc057e04eb575468260b8dfa4522703fb75</commitId><timestamp>1790706951000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: rtl930x: propagate SerDes power errors

The activate and deactivate callbacks ignore failures while changing
the SerDes core analog power state and continue with further
configuration. Return those errors immediately so callers do not
proceed from an unknown power state.

Assisted-by: ChatGPT (OpenAI GPT-5.6 Sol)
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:51 +0000</date><id>7491adc057e04eb575468260b8dfa4522703fb75</id><msg>realtek: pcs: rtl930x: propagate SerDes power errors</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>b52836e4643d16f53f498e778a04daccce4a6168</commitId><timestamp>1790706951000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: share common phylink PCS operations

All supported switch families use identical phylink PCS callbacks.
Replace the four duplicate operation tables with one common table to
avoid unnecessary per-family definitions.

Assisted-by: ChatGPT (OpenAI GPT-5.6 Sol)
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:51 +0000</date><id>b52836e4643d16f53f498e778a04daccce4a6168</id><msg>realtek: pcs: share common phylink PCS operations</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>d66dcd52586add2b88dbe14c0ba9390135a990a9</commitId><timestamp>1790706951000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: rtl931x: fix XSG write indentation

The RTL931x XSG write helper uses spaces for indentation instead of the
kernel's usual tabs. Retab the function to satisfy checkpatch and match
the surrounding code.

Assisted-by: ChatGPT (OpenAI GPT-5.6 Sol)
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:51 +0000</date><id>d66dcd52586add2b88dbe14c0ba9390135a990a9</id><msg>realtek: pcs: rtl931x: fix XSG write indentation</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>143a80dbadcd0183b2783139c765bc9ddb241e4b</commitId><timestamp>1790706951000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: rtl930x: fix config array brace style

Place the opening braces of three RTL930x SerDes configuration arrays
on their declaration lines. This follows the kernel coding style and
clears the corresponding checkpatch errors.

Assisted-by: ChatGPT (OpenAI GPT-5.6 Sol)
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:51 +0000</date><id>143a80dbadcd0183b2783139c765bc9ddb241e4b</id><msg>realtek: pcs: rtl930x: fix config array brace style</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>43e4ab952a0ce4bccae2bad51c9143aa72be7113</commitId><timestamp>1790706951000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: rtl931x: drop unused register macro

RTPCS_931X_MAC_SERDES_MODE_CTRL has no users. The driver configures
RTL931x SerDes modes through the separate register field definitions,
so remove the stale macro.

Assisted-by: ChatGPT (OpenAI GPT-5.6 Sol)
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:51 +0000</date><id>43e4ab952a0ce4bccae2bad51c9143aa72be7113</id><msg>realtek: pcs: rtl931x: drop unused register macro</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>9dbe53f333f8f933fc766ed72b29d7fb28a7f514</commitId><timestamp>1790706951000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: drop unused OF platform include

The driver does not use any declarations provided by of_platform.h.
Remove the unnecessary include.

Assisted-by: ChatGPT (OpenAI GPT-5.6 Sol)
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:51 +0000</date><id>9dbe53f333f8f933fc766ed72b29d7fb28a7f514</id><msg>realtek: pcs: drop unused OF platform include</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</affectedPath><commitId>b8f184464ba4f13dc58ad608733d07b70cd78331</commitId><timestamp>1790706951000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: pcs: use managed mutex initialization

The PCS controller is managed and has no explicit remove path.
Initialize its mutex with devm_mutex_init() so lock debugging state is
released together with the managed controller resources.

Assisted-by: ChatGPT (OpenAI GPT-5.6 Sol)
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-29 18:35:51 +0000</date><id>b8f184464ba4f13dc58ad608733d07b70cd78331</id><msg>realtek: pcs: use managed mutex initialization</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</affectedPath><commitId>9f4ae59cff5eacd78450c10f2d2314cac4027ef2</commitId><timestamp>1790712070000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: l3: free a route that never reached the hardware

A route the add path allocates but cannot program stays behind. When
the router MAC or the egress interface cannot be allocated, or the host
table has no slot for it, otto_l3_fib_add_v4() jumps to out_free_rt,
which frees nothing, and the host trap for a route through a nexthop
object returns the same way. The route keeps its gateway hash entry,
its id and its place on the route list until the kernel deletes it.

Move the part of otto_l3_route_remove() that drops the driver's own
record of a route, namely the hash entry, the id bit, the list entry and
the allocation, into otto_l3_route_free(), and call it on those paths
as well. The hash entry now goes last rather than first; nothing in
between looks the route up there.

The delete that later comes for such a route finds nothing and logs
so, where it used to find the unprogrammed route and remove it.

Tested on an RTL9303 (Hasivo S1100W-8XGT-SE) with the L3 offload on,
this series on main at bfb9858944. Every removal goes through the new
function: a /24 and a /32 through a gateway, each replaced through a
nexthop object, through the other gateway and back, then deleted, and
a replace between two gateways. The entries come and go as before, the
/32 through the nexthop object as a trap, and the log shows no removal
error. With the IPv6 unicast series on top, two /128 routes are
offloaded and deleted without an entry error. The failure paths the new
calls sit on were not reached on hardware.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Gennaro Cimmino &lt;gcimmino@rayonra.net&gt;
Link: https://github.com/openwrt/openwrt/pull/25312
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-29 22:01:10 +0200</date><id>9f4ae59cff5eacd78450c10f2d2314cac4027ef2</id><msg>realtek: l3: free a route that never reached the hardware</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</affectedPath><commitId>acfb645687efb76a981a16d88e6c3e72651006e9</commitId><timestamp>1790712070000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: l3: spend a hop when the hardware forwards

A router decrements the hop count of every packet it forwards. The rows
this driver writes do not: both writers encode a decrement bit and a
check bit, both readers decode them, the debugfs dump prints them, and
nothing has ever set either. They are written as the zero the allocator
left behind.

Measured on an RTL9303 with the L3 offload built in, IPv4 through an
offloaded route and sent with a hop count of 64: the far side sees 64
on an image that does not carry this commit and 63 on one built at it.
The switch was a hop that cost nothing, so a routing loop through it
never expired and no traceroute could see it.

The Realtek GPL SDK builds a route entry with both bits set unless the
caller asks for neither - dal_longan_l3.c has, for the host and the
prefix entry alike,

	pEntry-&gt;ttl_dec = (pRoute-&gt;flags &amp; RTK_L3_FLAG_TTL_DEC_IGNORE)? 0 : 1;
	pEntry-&gt;ttl_chk = (pRoute-&gt;flags &amp; RTK_L3_FLAG_TTL_CHK_IGNORE)? 0 : 1;

so this is the vendor's default for an entry created with no flags of
its own, not a value chosen here.

Set them where the route is given its action, and only when that
action forwards: a row that traps or drops is not a hop and keeps them
clear, like every other trapping row this driver writes. That includes
a route trapped while its next hop has no port. With both bits set on
such a row anyway, a packet sent at 64 still reaches the far side at 63
on an RTL9303: the silicon does not spend the hop on a packet it traps,
so this keeps the rows consistent rather than saving a decrement.

On its own this leaves a packet whose hop count runs out dropped in
silicon rather than answered: the action for that is a field of the
route control register, left at zero by a setup this commit does not
touch, and zero is drop. A later commit in this series sets it, so the
packet reaches the CPU and the ICMP a router owes comes back.

Where it takes effect: the RTL930x writers are the ones that encode
these bits, and that family needs the offload symbol no subtarget
config sets. The RTL839x runs this file in a stock build, but its route
writer puts neither bit in a register, so the assignment is a no-op
there; the RTL838x and RTL931x have no L3 setup at all. Where they are
programmed, a packet arriving with a hop count of one stops being
forwarded, which is the point of them.

Assisted-by: Claude:claude-opus-5
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Gennaro Cimmino &lt;gcimmino@rayonra.net&gt;
Link: https://github.com/openwrt/openwrt/pull/25312
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-29 22:01:10 +0200</date><id>acfb645687efb76a981a16d88e6c3e72651006e9</id><msg>realtek: l3: spend a hop when the hardware forwards</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</affectedPath><commitId>9a1528a2a44442edb545d07db4e6d94cd0d0d735</commitId><timestamp>1790712070000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: l3: rtl930x: say if a row move wrote anything

otto_l3_930x_route_rows_move() copies prefix route rows one at a time,
reading each and writing it one place up or down, and returns whatever
error stopped it. A caller cannot tell a move that failed before
touching the table from one that left the block half shifted.

Return -EAGAIN when no row was written: the table could not be
acquired, or the first row could not be read. Return -EIO for a failed
write, and for a failed read once any row has been written, since the
block is half shifted from then on.

No functional change: both callers still test for any error. The next
commit tells the two apart.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Gennaro Cimmino &lt;gcimmino@rayonra.net&gt;
Link: https://github.com/openwrt/openwrt/pull/25312
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-29 22:01:10 +0200</date><id>9a1528a2a44442edb545d07db4e6d94cd0d0d735</id><msg>realtek: l3: rtl930x: say if a row move wrote anything</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.h</affectedPath><affectedPath>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</affectedPath><commitId>f0a0dab527d1a1d58a713a76adcbac989781e7d5</commitId><timestamp>1790712070000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: l3: stop placing routes once a row move has failed

Opening or closing a place in the prefix block moves rows one at a time,
and the mover stops at the first row it cannot read or write. It says
whether it had written anything, -EAGAIN or -EIO, but not how many rows
it had already copied. Both callers read any error as "nothing
happened" and leave the list naming the rows the routes were at, which
after -EIO is wrong.

What the table really holds then is a block shifted from some row on,
one route present twice - at the row it was at and at the row its copy
reached - and a driver that believes neither. Two things follow from
that, and both are silent:

The next route placed in that family is written from those names. Its
row is computed as the first row at or below its prefix length, and the
end of the block as the count of rows in use, which is now one short of
where the last route really is. So the write lands on a row that still
holds a live route, and that route stops forwarding without anything
saying so. It is found out only when it is removed, as "was not in
hardware".

And the copy the interrupted move left behind is a valid row with a
valid next hop index. Removing the route clears the row the list names,
not the copy, so the copy goes on forwarding with an index that will be
handed to another route.

Neither can be undone from here. There is no count to renumber from, and
the only thing that could copy the rows back is the engine that just
failed. So stop: the table is marked unusable, and from that point
nothing is placed and nothing is compacted, because both are arithmetic
on names that are known to be wrong. The placement stops only on -EIO:
after -EAGAIN the block is as it was, and the route gets no row this
time. The compaction stops on either, because the leaving row is written
invalid before the move: even a move that wrote nothing leaves a hole
the row count does not see, and the next placement would push the last
live route off the end of the block. What is already in the table keeps
forwarding and can still be removed one row at a time, which needs no
arithmetic. A route that arrives after that gets no row, and what
becomes of its traffic is whatever becomes of any destination the table
does not hold on that switch - on this branch, dropped in silicon.

The move can fail: the table command is polled with a 10 ms timeout, and
the two sites that poll it already log when it expires, which is the
driver's own statement that a table that does not answer is a thing that
happens. It has not been seen on an RTL9303 here, and this cannot be
provoked from outside, so what is claimed for it is that it fails closed
- not that it was watched doing so.

What it does not fix: the duplicate row. It stays valid until the driver
is loaded again, and it forwards. Clearing it means asking the CAM for a
route that is in two places and invalidating both, on a path that has
just been told the table is not to be trusted - a second mechanism for a
state this one has already declared broken and loud.

Assisted-by: Claude:claude-opus-5
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Gennaro Cimmino &lt;gcimmino@rayonra.net&gt;
Link: https://github.com/openwrt/openwrt/pull/25312
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-29 22:01:10 +0200</date><id>f0a0dab527d1a1d58a713a76adcbac989781e7d5</id><msg>realtek: l3: stop placing routes once a row move has failed</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.h</file></path><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</affectedPath><commitId>d958caff0c9ffa215dceb0718caad7d4955d8954</commitId><timestamp>1790712070000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: l3: rtl930x: answer an expired packet

A router that drops an expired packet without a word is a hole in every
traceroute through it, and a routing loop that ends quietly instead of
being reported. Now that the rows this driver writes decrement the hop
count and check it, the packets that fail that check exist, and the
setup leaves the action for them at zero, which is drop.

Trap them to the CPU instead, and the kernel answers with the ICMP the
router owes. The field is TTL_FAIL_ACT at bit 17 of the IPv4 route
control and HL_FAIL_ACT at bit 21 of the IPv6 one, two bits each, and
the Realtek GPL SDK gives their values in order as drop, trap to CPU,
trap to master CPU - _actIpucRouteCtrlTtlFail and
_actIp6ucRouteCtrlHlFail in dal_longan_l3.c.

The trap has no limiter of its own, and neither has any other trap this
driver sets: the rows for the switch's own addresses and the row that
catches what no other row matches all hand their packets to the CPU the
same way. A packet only gets here after being routed, so reaching the
CPU this way costs a sender the same effort as reaching it by any of
those. If L3 exceptions should have a queue and a bucket of their own,
that is worth doing for all of them at once and not for this one.

Only an RTL930x built with the offload symbol runs this setup, and no
subtarget config sets it. The RTL839x has a setup of its own and does
not pass through here.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Gennaro Cimmino &lt;gcimmino@rayonra.net&gt;
Link: https://github.com/openwrt/openwrt/pull/25312
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-29 22:01:10 +0200</date><id>d958caff0c9ffa215dceb0718caad7d4955d8954</id><msg>realtek: l3: rtl930x: answer an expired packet</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/dsa/rtl83xx/l3.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/kirkwood/patches-6.12/109-dns325-add-fan-label-and-update-partitions.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/108-dns325-add-led-labels-and-thermal-zones.patch</affectedPath><affectedPath>target/linux/kirkwood/config-6.12</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/110-pogo_e02.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/201-enable-sata-port-specific-led-triggers.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/112-sheevaplug.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/107-01-zyxel-nsa3x0-common-nand-partitions.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/116-4i-edge-200.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/111-l-50.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/102-dockstar.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/202-linksys-find-active-root.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/101-iconnect.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/106-goflexnet.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/109-pogoplug_v4.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/117-netgear_stora.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/107-03-nsa325.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/103-iomega-ix2-200.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/114-ctera-c-200-v1.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/118-dns-320l.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/203-blackarmor-nas220.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/100-ib62x0.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/115-nsa310s.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/113-readynas_duo_v2.patch</affectedPath><affectedPath>target/linux/kirkwood/patches-6.12/105-linksys-viper-dts.patch</affectedPath><commitId>5c8e736980fbc2fee00a9f13a0b94e1a29fc6189</commitId><timestamp>1790718617000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/lynxis</absoluteUrl><fullName>lynxis</fullName></author><authorEmail>lynxis@fe80.eu</authorEmail><comment>kirkwood: drop kernel 6.12 support

The target has  switched to kernel 6.18 a while ago.
Remove the now unused 6.12 config and patches

Signed-off-by: Sander van Deijck &lt;sander@vandeijck.com&gt;
</comment><date>2026-09-29 23:50:17 +0200</date><id>5c8e736980fbc2fee00a9f13a0b94e1a29fc6189</id><msg>kirkwood: drop kernel 6.12 support</msg><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/101-iconnect.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/107-03-nsa325.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/109-dns325-add-fan-label-and-update-partitions.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/113-readynas_duo_v2.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/108-dns325-add-led-labels-and-thermal-zones.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/103-iomega-ix2-200.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/107-01-zyxel-nsa3x0-common-nand-partitions.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/100-ib62x0.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/112-sheevaplug.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/114-ctera-c-200-v1.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/116-4i-edge-200.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/118-dns-320l.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/110-pogo_e02.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/105-linksys-viper-dts.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/117-netgear_stora.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/106-goflexnet.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/115-nsa310s.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/config-6.12</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/202-linksys-find-active-root.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/102-dockstar.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/109-pogoplug_v4.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/201-enable-sata-port-specific-led-triggers.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/111-l-50.patch</file></path><path><editType>delete</editType><file>target/linux/kirkwood/patches-6.12/203-blackarmor-nas220.patch</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/generic/hack-6.18/773-bgmac-add-srab-switch.patch</affectedPath><affectedPath>target/linux/generic/hack-6.12/773-bgmac-add-srab-switch.patch</affectedPath><commitId>bb5ae5fd5acc10f3822017681941eed07fb214a3</commitId><timestamp>1790752951000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>linux: delete srab patch from generic

This patch is meant for platforms without OF and only for ARM SoCs. All
ARM stuff has OF. Removes warnings like:

b53-srab-switch b53-srab-switch: error -EINVAL: invalid resource (null)
b53-srab-switch b53-srab-switch: probe with driver b53-srab-switch failed with error -22

On platforms using b53.

Signed-off-by: Rosen Penev &lt;rosenp@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25420
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-30 09:22:31 +0200</date><id>bb5ae5fd5acc10f3822017681941eed07fb214a3</id><msg>linux: delete srab patch from generic</msg><path><editType>delete</editType><file>target/linux/generic/hack-6.18/773-bgmac-add-srab-switch.patch</file></path><path><editType>delete</editType><file>target/linux/generic/hack-6.12/773-bgmac-add-srab-switch.patch</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/dts/rtl9303_horaco_zx-swtgw2c8f.dts</affectedPath><commitId>4b12e9080a132a6c172399d015a459a901a9a4a2</commitId><timestamp>1790753456000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: rtl930x: drop Horaco status LED heartbeat

The system LED is referenced by the boot, failsafe, running and upgrade
aliases, so it should be controlled by OpenWrt userspace instead of a
competing heartbeat trigger.

Signed-off-by: Christian Talavera &lt;ctalaveraw@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25391
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-30 09:30:56 +0200</date><id>4b12e9080a132a6c172399d015a459a901a9a4a2</id><msg>realtek: rtl930x: drop Horaco status LED heartbeat</msg><path><editType>edit</editType><file>target/linux/realtek/dts/rtl9303_horaco_zx-swtgw2c8f.dts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/dts/rtl9303_horaco_zx-swtgw2c8f.dts</affectedPath><affectedPath>target/linux/realtek/dts/rtl9303_horaco_zx-swtgw2c8f.dtsi</affectedPath><commitId>5f60b43e0281027589af3653d60d5eef91e60dfd</commitId><timestamp>1790753456000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: rtl930x: split Horaco ZX-SWTGW2C8F DTS

Move the reusable RTL9303 board description into a DTSI so closely
related devices can share it.

Keep only the Horaco compatible string and model in the board DTS.

Signed-off-by: Christian Talavera &lt;ctalaveraw@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25391
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-30 09:30:56 +0200</date><id>5f60b43e0281027589af3653d60d5eef91e60dfd</id><msg>realtek: rtl930x: split Horaco ZX-SWTGW2C8F DTS</msg><path><editType>edit</editType><file>target/linux/realtek/dts/rtl9303_horaco_zx-swtgw2c8f.dts</file></path><path><editType>add</editType><file>target/linux/realtek/dts/rtl9303_horaco_zx-swtgw2c8f.dtsi</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/dts/rtl9303_horaco_zx-swtgw2c8f.dtsi</affectedPath><commitId>d1d90e8e2ce60719bf6d3ef61de86d66fcabf46b</commitId><timestamp>1790753456000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: rtl930x: add 100M LED indication to Horaco ZX-SWTGW2C8F

Include 100M in the lower-speed LED scan slot.

This also makes the slot assignment reusable by the closely related
GoodTop GT-SWTXG8FM.

Signed-off-by: Christian Talavera &lt;ctalaveraw@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25391
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-30 09:30:56 +0200</date><id>d1d90e8e2ce60719bf6d3ef61de86d66fcabf46b</id><msg>realtek: rtl930x: add 100M LED indication to Horaco ZX-SWTGW2C8F</msg><path><editType>edit</editType><file>target/linux/realtek/dts/rtl9303_horaco_zx-swtgw2c8f.dtsi</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/image/rtl930x.mk</affectedPath><affectedPath>target/linux/realtek/dts/rtl9303_goodtop_gt-swtxg8fm.dts</affectedPath><commitId>c1fc123ea624dd9a5ac73d73ea341f024576d7b4</commitId><timestamp>1790753457000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName></author><authorEmail>jonas@jonasjelonek.de</authorEmail><comment>realtek: rtl930x: add support for GoodTop GT-SWTXG8FM

The GoodTop GT-SWTXG8FM is an eight-port SFP+ managed switch based
on the Realtek RTL9303.

Device specification:
- SoC: Realtek RTL9303 rev B
- RAM: 128 MiB
- Flash: 16 MiB Winbond W25Q128 SPI NOR
- Ethernet: 8x SFP+ cages
- Button: reset, GPIO 5 active-low
- System LED: GPIO 0
- Power input: 12 V DC
- Bootloader: Realtek U-Boot 2011.12
- Vendor board model: RTL9303_8XGE

Serial:
- Stock firmware configures ttyS0 at 38400 baud.
- The physical UART header location and pinout were not identified
  during bring-up. Serial access is not required for normal install.

Flash layout:
- 0x000000-0x0e0000: loader / LOADER
- 0x0e0000-0x0f0000: bdinfo / BDINFO
- 0x0f0000-0x100000: sysinfo / SYSINFO
- 0x100000-0x200000: vendor configuration / JFFS2 CFG
- 0x200000-0x300000: vendor log / JFFS2 LOG
- 0x300000-0xf00000: firmware / RUNTIME
- 0xf00000-0x1000000: oeminfo / OEMINFO

The factory MAC address is read from ethaddr in BDINFO through NVMEM.

The vendor bootloader uses legacy uImage magic 0x83800000.
Generate OpenWrt images with this magic and configure the firmware
splitter accordingly.

A dedicated squashfs-factory.bix image is generated for installation
from the stock web interface. The regular squashfs-sysupgrade.bin image
is used for subsequent OpenWrt upgrades.

Installation:
1. Open Management -&gt; Firmware -&gt; Manual Upgrade in the stock web UI.
2. Select Upgrade and HTTP.
3. Upload the squashfs-factory.bix image.
4. Wait for "Upgrade Image Done", then reboot the switch.

The stock web updater has been verified on hardware. Persistent
squashfs boot, writable JFFS2 overlay, reboot persistence and normal
OpenWrt sysupgrade have also been validated.

All eight SFP+ cages have been individually validated with 10G links.
Port LEDs, the system LED, reset button and DSA VLAN operation have
been tested.

Return to stock was validated using the original 12 MiB RUNTIME backup
from the same physical device. Under OpenWrt, copy that image to
/tmp/RUNTIME.bin and restore only the firmware partition with:

  mtd -f write /tmp/RUNTIME.bin firmware
  mtd verify /tmp/RUNTIME.bin firmware
  sync
  reboot

The loader, BDINFO, SYSINFO and OEMINFO partitions are not rewritten
by this procedure and were verified unchanged after restoration.

Signed-off-by: Christian Talavera &lt;ctalaveraw@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25391
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</comment><date>2026-09-30 09:30:57 +0200</date><id>c1fc123ea624dd9a5ac73d73ea341f024576d7b4</id><msg>realtek: rtl930x: add support for GoodTop GT-SWTXG8FM</msg><path><editType>add</editType><file>target/linux/realtek/dts/rtl9303_goodtop_gt-swtxg8fm.dts</file></path><path><editType>edit</editType><file>target/linux/realtek/image/rtl930x.mk</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package/boot/arm-trusted-firmware-airoha/Makefile</affectedPath><commitId>14ce3517725c971c0141e915051b806a29234cfa</commitId><timestamp>1790754388000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/ansuelsmth</absoluteUrl><fullName>ansuelsmth</fullName></author><authorEmail>ansuelsmth@gmail.com</authorEmail><comment>arm-trusted-firmware-airoha: update to Git HEAD (2026-08-20)

b0911074d3cf plat: update closed-source object for AN7581 and AN7583
705478c3d84f plat: add DRAM calibration closed-source object for EN7523

Signed-off-by: Christian Marangi &lt;ansuelsmth@gmail.com&gt;
</comment><date>2026-09-30 09:46:28 +0200</date><id>14ce3517725c971c0141e915051b806a29234cfa</id><msg>arm-trusted-firmware-airoha: update to Git HEAD (2026-08-20)</msg><path><editType>edit</editType><file>package/boot/arm-trusted-firmware-airoha/Makefile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/generic/pending-6.12/305-powerpc-build-the-vDSO-after-the-stack-protector-flags.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/305-powerpc-build-the-vDSO-after-the-stack-protector-flags.patch</affectedPath><commitId>edd23eb01e7fff7ebd064ee0e7df90808f5ef282</commitId><timestamp>1790759558000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/mail</absoluteUrl><fullName>mail</fullName></author><authorEmail>mail@aparcar.org</authorEmail><comment>kernel: build the powerpc vDSO after the stack protector flags

The powerpc kernel of the WD My Book Live differs between builds. The
difference sits in the vDSO, which the kernel embeds with its debug
information as vdso32.so.dbg:

  -GNU C11 14.4.0 ... -mstack-protector-guard=tls -mstack-protector-guard-reg=r2 -mstack-protector-guard-offset=872 -m32 -g -O2 ...
  +GNU C11 14.4.0 ... -m32 -g -O2 ...

stack_protector_prepare appends these flags to KBUILD_CFLAGS with $(eval)
from its recipe, while vdso_prepare builds the vDSO from a sibling
prerequisite of prepare. Nothing orders the two, so whether the flags
end up in DW_AT_producer depends on the order in which make starts them.

Add a pending patch that makes vdso_prepare depend on
stack_protector_prepare.

Link: https://github.com/openwrt/openwrt/pull/25429
Signed-off-by: Paul Spooren &lt;mail@aparcar.org&gt;
</comment><date>2026-09-30 11:12:38 +0200</date><id>edd23eb01e7fff7ebd064ee0e7df90808f5ef282</id><msg>kernel: build the powerpc vDSO after the stack protector flags</msg><path><editType>add</editType><file>target/linux/generic/pending-6.18/305-powerpc-build-the-vDSO-after-the-stack-protector-flags.patch</file></path><path><editType>add</editType><file>target/linux/generic/pending-6.12/305-powerpc-build-the-vDSO-after-the-stack-protector-flags.patch</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/ethernet/realtek/rtl838x_eth.c</affectedPath><commitId>7c247deba45ab2c37d6454c75d337afae1e1bded</commitId><timestamp>1790778722000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: eth: rtl93xx: treat other RMA frames as trapped

The RTL93xx CPU tag reports a frame trapped by the reserved multicast
address (RMA) rules with reason 28, NIC_RX_REASON_RMA in the GPL SDK's
reasonTbl (nic_rtl9300.c, nic_rtl9310.c), whenever none of the reasons
for a specific kind of RMA frame (PTP, BPDU, LACP, LLDP, EAPOL, ...)
applies. rteth_93xx_decode_tag() counts only 19 to 27 as not forwarded
by hardware, so these frames are reported as forwarded.

They do reach the CPU: rteth_930x_set_rx_mode() sets every RMA action
in RMA_CTRL_0..2 to 3 while the conduit is promiscuous, and on RTL930x
3 traps the frame to the (master) CPU rather than flooding it.

Count 28 as trapped too. On its own this changes nothing yet, since
dsa_switch_rcv() marks every frame from the metadata path as forwarded
whatever the driver decoded. It is what a receive path that honours the
decode needs, to forward a trapped frame for 01:80:C2:00:00:2x, which a
bridge is meant to forward, in software instead of dropping it.

Tested on an RTL9303 (Hasivo S1100W-8XGT-SE) with a throwaway print of
the CPU tag: five frames to 01:80:C2:00:00:0B and five to
01:80:C2:00:00:21 from a host all arrive with reason 28, reported as
not forwarded with this change. RTL931x has the same reason in the SDK
and was not tested.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Gennaro Cimmino &lt;gcimmino@rayonra.net&gt;
Link: https://github.com/openwrt/openwrt/pull/25499
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-30 16:32:02 +0200</date><id>7c247deba45ab2c37d6454c75d337afae1e1bded</id><msg>realtek: eth: rtl93xx: treat other RMA frames as trapped</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/ethernet/realtek/rtl838x_eth.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/realtek/files-6.18/drivers/net/ethernet/realtek/rtl838x_eth.c</affectedPath><commitId>c759267c92b0697a6fd6f369164a5ed4c1a6a03c</commitId><timestamp>1790778722000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName></author><authorEmail>markus.stockhausen@gmx.de</authorEmail><comment>realtek: eth: rtl93xx: say that the RMA setup traps

rteth_930x_set_rx_mode() and rteth_931x_set_rx_mode() say they flood
every class of RMA address while the conduit is promiscuous, like the
RTL838x version. All three write 3 into every 2-bit action field of
RMA_CTRL_0..2. In the GPL SDK that is flood on RTL838x
(dal_maple_trap_rmaGroupAction_set()), but trap to the master CPU on
RTL930x and RTL931x (dal_longan_trap_rmaAction_set(),
dal_mango_trap_rmaAction_set()), which have no flood action for these
addresses at all. On an RTL9303, frames to 01:80:C2:00:00:0B and
01:80:C2:00:00:21 reach the CPU with the trapped-RMA reason, 28.

Trapping is also what fits here: whether such a frame goes any further
is for the bridge to decide. Keep the values and correct the comments.

No functional change.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Gennaro Cimmino &lt;gcimmino@rayonra.net&gt;
Link: https://github.com/openwrt/openwrt/pull/25499
Signed-off-by: Markus Stockhausen &lt;markus.stockhausen@gmx.de&gt;
</comment><date>2026-09-30 16:32:02 +0200</date><id>c759267c92b0697a6fd6f369164a5ed4c1a6a03c</id><msg>realtek: eth: rtl93xx: say that the RMA setup traps</msg><path><editType>edit</editType><file>target/linux/realtek/files-6.18/drivers/net/ethernet/realtek/rtl838x_eth.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/bcm27xx/patches-6.18/0393-drivers-dw-axi-dmac-make-more-sensible-choices-about.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0374-dw-axi-dmac-platform-Avoid-trampling-with-zero-lengt.patch</affectedPath><affectedPath>target/linux/ath79/patches-6.18/341-wifi-ath9k-always-register-system-gpios.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0791-net-macb-drop-destructive-ISR-read-use-IMR-barrier-i.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0855-Revert-net-macb-re-check-ISR-after-IER-re-enable-in-.patch</affectedPath><affectedPath>target/linux/sunxi/patches-6.18/802-f1c100s-watchdog-compat.patch</affectedPath><affectedPath>target/linux/starfive/patches-6.18/1014-dmaengine-dw-axi-dmac-Add-StarFive-JH7100-support.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/220-08-usb-host-add-ARCH_AIROHA-in-XHCI-MTK-dependency.patch</affectedPath><affectedPath>target/linux/ipq40xx/patches-6.18/701-net-dsa-add-out-of-band-tagging-protocol.patch</affectedPath><affectedPath>target/linux/starfive/patches-6.18/0027-RISC-V-Create-unique-identification-for-SoC-PMU.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/734-net-ethernet-mediatek-enlarge-DMA-reserve-buffer.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0366-mmc-restrict-posted-write-counts-for-SD-cards-in-CQ-.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0542-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch</affectedPath><affectedPath>target/linux/generic/backport-6.18/895-v7.2-Bluetooth-btusb-Add-Mercusys-MA530-for-Realtek-RTL87.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0345-i2c-designware-Support-non-standard-bus-speeds.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0424-drivers-usb-xhci-set-HID-bit-in-streaming-endpoint-c.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0283-xhci-quirks-add-link-TRB-quirk-for-VL805.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/732-04-net-ethernet-mtk_eth_soc-shrink-struct-mtk_tx_buf.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0959-net-macb-Add-PHY-post-reset-settle-delay.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/097-v6.19-net-airoha-Add-get_link-ethtool-callback.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0344-i2c-designware-Use-SCL-rise-and-fall-times-in-DT.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/732-03-net-ethernet-mtk_eth_soc-optimize-dma-ring-address-i.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/125-v7.1-net-airoha-Rely-__field_prep-for-non-constant-masks.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0705-drm-panel-add-TDO-DSI-V1-panel-driver.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/738-01-net-ethernet-mtk_eth_soc-reduce-rx-ring-size-for-older.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/096-v6.19-net-airoha-Add-missing-stats-to-ethtool_eth_mac_stat.patch</affectedPath><affectedPath>target/linux/ath79/patches-6.18/341-wifi-ath9k-obtain-system-gpios.patch</affectedPath><affectedPath>target/linux/generic/backport-6.18/711-v7.2-net-phy-sfp-detect-presence-via-I2C-when-no-MOD_DEF0-GPIO.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/127-v7.1-net-airoha-Move-GDM-forward-port-configuration-in-nd.patch</affectedPath><affectedPath>target/linux/mediatek/patches-6.18/751-net-ethernet-mtk_eth_soc-revise-hardware-configuration-for-mt7987.patch</affectedPath><affectedPath>target/linux/econet/patches-6.18/036-v6.19-PCI-mediatek-Add-support-for-Airoha-AN7583-SoC.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0517-spi-dw-Wait-for-idle-after-TX.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/886-uart-add-en7523-support.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/737-09-net-ethernet-mtk_eth_soc-improve-probe-deferal.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0285-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch</affectedPath><affectedPath>target/linux/generic/hack-6.18/730-net-ethernet-mtk_eth_soc-add-hw-dump-for-forced-rese.patch</affectedPath><affectedPath>target/linux/bcm53xx/patches-6.18/180-usb-xhci-add-support-for-performing-fake-doorbell.patch</affectedPath><affectedPath>target/linux/generic/hack-6.18/204-module_strip.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0174-staging-fbtft-Add-support-for-display-variants.patch</affectedPath><affectedPath>target/linux/starfive/patches-6.18/0029-dmaengine-dw-axi-dmac-Drop-unused-print-message.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0850-dmaengine-dw-axi-dmac-Wait-for-runtime-resume.patch</affectedPath><affectedPath>target/linux/econet/patches-6.18/886-uart-add-en7523-support.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0212-drm-panel-Add-panel-driver-for-TDO-Y17B-based-panels.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0112-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/132-v7.1-net-airoha-Reset-PPE-default-cput-port-in-airoha_ppe.patch</affectedPath><affectedPath>target/linux/generic/hack-6.18/902-debloat_proc.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0718-net-macb-re-check-ISR-after-IER-re-enable-in-macb_tx.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0421-dmaengine-dw-axi-dmac-Allow-client-chosen-width.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/134-v7.1-net-airoha-Delay-offloading-until-all-net_devices-ar.patch</affectedPath><affectedPath>target/linux/generic/hack-6.18/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0664-net-cadence-macb-enable-EEE-for-Raspberry-Pi-RP1.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/655-increase_skb_pad.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/732-05-net-ethernet-mtk_eth_soc-add-support-for-sending-fra.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/738-02-net-ethernet-mtk_eth_soc-do-not-enable-page-pool-sta.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/147-v7.1-net-airoha-Fix-PPE-cpu-port-configuration-for-GDM2-l.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/142-03-v7.1-net-airoha-Rely-on-net_device-pointer-in-ETS-callbac.patch</affectedPath><affectedPath>target/linux/generic/hack-6.18/739-net-ethernet-mtk_eth_soc-fix-offload-with-incompatible-.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0422-spi-dw-Let-the-DMAC-set-the-transfer-widths.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0332-xhci-Use-more-event-ring-segment-table-entries.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/750-net-sfp-add-quirk-for-QINIYEK-BJ-SFP-10G-T-copper-SF.patch</affectedPath><affectedPath>target/linux/apm821xx/patches-6.18/700-net-ibm-emac-Clear-MAL-descriptors-without-memset.patch</affectedPath><affectedPath>target/linux/generic/backport-6.18/710-01-v7.1-net-sfp-add-quirk-for-ZOERAX-SFP-2.5G-T.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/126-v7.1-net-airoha-Make-flow-control-source-port-mapping-dep.patch</affectedPath><affectedPath>target/linux/realtek/patches-6.18/706-01-v7.2-net-sfp-apply-I2C-adapter-quirks-to-limit-block-size.patch</affectedPath><affectedPath>target/linux/generic/hack-6.18/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0373-i2c-designware-Make-the-SDA-hold-time-half-LCNT.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0161-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0274-serial-8250-Add-NOMSI-bug-for-bcm2835aux.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0852-Revert-net-macb-gate-TX-stall-watchdog-on-netif_carr.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/812-PCI-sysfs-enforce-single-creation-of-sysfs-entry-for.patch</affectedPath><affectedPath>target/linux/starfive/patches-6.18/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch</affectedPath><affectedPath>target/linux/generic/hack-6.18/755-net-phy-motorcomm-yt8821-bus-collision-workaround.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/120-v7.0-net-airoha-implement-get_link_ksettings.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/159-v7.2-net-airoha-Introduce-airoha_fe_get-airoha_qdma_get-r.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0213-drm-panel-Add-panel-driver-for-Waveshare-DSI-touchsc.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0301-i2c-designware-Add-SMBUS-quick-command-support.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/160-v7.2-net-airoha-Reserve-RX-headroom-to-avoid-skb-realloca.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0663-net-cadence-macb-add-ethtool-EEE-support.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/834-ledtrig-libata.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/099-09-v6.19-net-airoha-Select-default-ppe-cpu-port-in-airoha_dev.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0790-net-macb-gate-PCIe-posted-write-flush-behind-MACB_CA.patch</affectedPath><affectedPath>target/linux/ramips/patches-6.18/102-01-pwm-mediatek-set-mt7628-pwm45_fixup-flag-to-false.patch</affectedPath><affectedPath>target/linux/mediatek/patches-6.18/432-drivers-spi-Add-support-for-dynamic-calibration.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0113-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/144-v7.1-net-airoha-Set-REG_RX_CPU_IDX-once-in-airoha_qdma_fi.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0386-dmaengine-dw-axi-dmac-Honour-snps-block-size.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/143-v7.1-net-airoha-Fix-typo-in-airoha_set_gdm2_loopback-rout.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0580-dmaengine-dw-axi-dmac-Add-DMA-channel-selection.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/155-v7.2-net-airoha-Rename-get_src_port_id-callback-in-get_sp.patch</affectedPath><affectedPath>target/linux/starfive/patches-6.18/1013-dmaengine-dw-axi-dmac-Handle-xfer-start-while-non-id.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0551-usb-xhci-set-Input-Slot-Context-bit-in-xhci_fixup_en.patch</affectedPath><affectedPath>target/linux/mediatek/patches-6.18/750-net-ethernet-mtk_eth_soc-add-mt7987-support.patch</affectedPath><affectedPath>target/linux/qualcommax/patches-6.18/0950-net-dsa-add-out-of-band-tagging-protocol.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0851-mmc-don-t-reference-requests-after-issuing-them.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/737-10-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0302-dmaengine-dw-axi-dmac-Fixes-for-RP1.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0853-Revert-net-macb-drop-destructive-ISR-read-use-IMR-ba.patch</affectedPath><affectedPath>target/linux/generic/backport-6.18/785-v7.0-09-net-pcs-pcs-mtk-lynxi-pass-SGMIISYS-OF-node-to-PCS.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0792-net-macb-gate-TX-stall-watchdog-on-netif_carrier_ok-.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0372-i2c-designware-Add-support-for-bus-clear-feature.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0854-Revert-net-macb-add-TX-stall-watchdog-as-defence-in-.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0069-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch</affectedPath><affectedPath>target/linux/econet/patches-6.18/781-v7.3-net-dsa-mt7530-add-en7528-support.patch</affectedPath><affectedPath>target/linux/apm821xx/patches-6.18/710-net-ibm_emac-Use-napi_gro_receive-for-Rx-packets.patch</affectedPath><affectedPath>target/linux/econet/patches-6.18/034-v6.19-PCI-mediatek-Convert-bool-to-single-quirks-entry-and.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/630-packet_socket_type.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0736-drm-panel-simple-Fix-handling-of-panel-dsi.patch</affectedPath><affectedPath>target/linux/generic/backport-6.18/700-01-v7.0-net-sched-Export-mq-functions-for-reuse.patch</affectedPath><affectedPath>target/linux/generic/backport-6.18/502-v7.3-smb-server-fix-signing-multi-iov-response.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/733-01-net-ethernet-mtk_eth_soc-use-napi_build_skb.patch</affectedPath><affectedPath>target/linux/econet/patches-6.18/310-usb-enable-econet-usb.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0639-gpu-drm-panel-Add-panel-driver-for-Ilitek-79600A-bas.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/142-02-v7.1-net-airoha-Rely-on-net_device-pointer-in-HTB-callbac.patch</affectedPath><affectedPath>target/linux/econet/patches-6.18/040-v7.2-PCI-mediatek-Protect-root-bus-removal-with-rescan-lo.patch</affectedPath><affectedPath>target/linux/generic/kernel-6.18</affectedPath><affectedPath>target/linux/generic/backport-6.18/706-v7.2-bus-mhi-host-pci_generic-round-up-nr_irqs-to-a-power-of-two.patch</affectedPath><affectedPath>target/linux/generic/backport-6.18/946-v7.3-net-dsa-mt7530-populate-lpi_interfaces-to-fix-EEE-support.patch</affectedPath><affectedPath>target/linux/generic/hack-6.18/766-net-phy-mediatek-ge-add-LED-configuration-interface.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/150-bridge_allow_receiption_on_disabled_port.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/142-01-v7.1-net-airoha-Rely-on-net_device-pointer-in-airoha_dev_.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0208-drm-panel-simple-Add-a-timing-for-the-Raspberry-Pi-7.patch</affectedPath><affectedPath>target/linux/mediatek/patches-6.18/410-bt-mtk-serial-fix.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0940-dma-dw-axi-dmac-fix-cyclic-DMA.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0719-net-macb-add-TX-stall-watchdog-as-defence-in-depth-s.patch</affectedPath><affectedPath>target/linux/starfive/patches-6.18/0005-i2c-designware-Delete-SMBus-functionalities.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/920-mangle_bootargs.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0541-PCI-quirks-work-around-VL805-firmware-ASPM-meddling.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0581-dmaengine-dw-axi-dmac-report-per-channel-max_burst-v.patch</affectedPath><affectedPath>target/linux/generic/backport-6.18/852-v7.1-rtc-cmos-use-platform_get_irq_optional.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/795-05-net-ethernet-mtk_eth_soc-add-per-conduit-DSA-user-po.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0115-usb-xhci-drop-and-add-the-endpoint-context-in-xhci_f.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0923-dmaengine-dw-axi-dmac-Simplify-segmentation-calc-754.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0717-net-macb-flush-PCIe-posted-write-after-TSTART-doorbe.patch</affectedPath><affectedPath>target/linux/generic/hack-6.18/890-serial-8250-add-UPIO_AU-case-to-set_io_from_upio.patch</affectedPath><affectedPath>target/linux/generic/backport-6.18/947-v7.3-net-ethernet-mtk_eth_soc-populate-lpi_interfaces-to-fix-EEE-support.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0579-dmaengine-dw-axi-dmac-Per-channel-burst-limits.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0536-drm-panel-Add-panel-driver-for-Ilitek-ILI9806E-panel.patch</affectedPath><affectedPath>target/linux/starfive/patches-6.18/1011-net-stmmac-use-GFP_DMA32.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/795-04-net-ethernet-mtk_eth_soc-per-SoC-QDMA-TX-queue-count.patch</affectedPath><affectedPath>target/linux/realtek/patches-6.18/706-02-v7.2-net-sfp-extend-SMBus-support.patch</affectedPath><affectedPath>target/linux/realtek/patches-6.18/714-net-phy-sfp-add-support-for-SMBus.patch</affectedPath><affectedPath>target/linux/ath79/patches-6.18/900-unaligned_access_hacks.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/751-net-sfp-add-quirk-for-TP-LINK-SM410U.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0293-net-macb-Also-set-DMA-coherent-mask.patch</affectedPath><affectedPath>target/linux/generic/hack-6.18/721-net-add-packet-mangeling.patch</affectedPath><affectedPath>target/linux/generic/backport-6.18/941-v7.2-net-dsa-realtek-rtl8365mb-add-support-for-rtl8367sb.patch</affectedPath><affectedPath>target/linux/realtek/patches-6.18/705-v7.1-net-sfp-initialize-i2c_block_size-at-adapter-configu.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/510-block-add-uImage.FIT-subimage-block-driver.patch</affectedPath><affectedPath>target/linux/generic/hack-6.18/661-kernel-ct-size-the-hashtable-more-adequately.patch</affectedPath><affectedPath>target/linux/generic/backport-6.18/751-v7.2-net-dsa-qca8k-add-support-for-force-mode-for-fixed-l.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/795-06-net-ethernet-mtk_eth_soc-use-DSA-queue-map-in-TX-pat.patch</affectedPath><affectedPath>target/linux/airoha/patches-6.18/129-v7.1-net-airoha-select-QDMA-block-according-LAN-WAN-confi.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0391-spi-dw-Save-bandwidth-with-the-TMOD_RO-feature.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0284-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0538-dmaengine-dw-axi-dmac-Fix-alignment-checks.patch</affectedPath><affectedPath>target/linux/ath79/patches-6.18/340-register_gpio_driver_earlier.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch</affectedPath><affectedPath>target/linux/mvebu/patches-6.18/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0662-net-cadence-macb-implement-EEE-TX-LPI-support.patch</affectedPath><commitId>411a8112dd1211b47469fd99dc9c0d25560f5b1c</commitId><timestamp>1790808594000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/hauke</absoluteUrl><fullName>hauke</fullName></author><authorEmail>hauke@hauke-m.de</authorEmail><comment>kernel: bump 6.18 to 6.18.53

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.18.53

Removed upstreamed:
  target/linux/airoha/patches-6.18/160-v7.2-net-airoha-Reserve-RX-headroom-to-avoid-skb-realloca.patch [1]
  target/linux/airoha/patches-6.18/220-08-usb-host-add-ARCH_AIROHA-in-XHCI-MTK-dependency.patch [2]
  target/linux/ath79/patches-6.18/341-wifi-ath9k-obtain-system-gpios.patch [3]
  target/linux/bcm27xx/patches-6.18/0850-dmaengine-dw-axi-dmac-Wait-for-runtime-resume.patch [4]
  target/linux/econet/patches-6.18/040-v7.2-PCI-mediatek-Protect-root-bus-removal-with-rescan-lo.patch [5]
  target/linux/econet/patches-6.18/781-v7.3-net-dsa-mt7530-add-en7528-support.patch [6]
  target/linux/generic/backport-6.18/706-v7.2-bus-mhi-host-pci_generic-round-up-nr_irqs-to-a-power-of-two.patch [7]
  target/linux/generic/backport-6.18/751-v7.2-net-dsa-qca8k-add-support-for-force-mode-for-fixed-l.patch [8]
  target/linux/generic/backport-6.18/852-v7.1-rtc-cmos-use-platform_get_irq_optional.patch [9]
  target/linux/generic/backport-6.18/941-v7.2-net-dsa-realtek-rtl8365mb-add-support-for-rtl8367sb.patch [10]
  target/linux/generic/backport-6.18/946-v7.3-net-dsa-mt7530-populate-lpi_interfaces-to-fix-EEE-support.patch [11]
  target/linux/generic/backport-6.18/947-v7.3-net-ethernet-mtk_eth_soc-populate-lpi_interfaces-to-fix-EEE-support.patch [12]
  target/linux/ramips/patches-6.18/102-01-pwm-mediatek-set-mt7628-pwm45_fixup-flag-to-false.patch [13]
  target/linux/generic/hack-6.18/890-serial-8250-add-UPIO_AU-case-to-set_io_from_upio.patch [14]
  target/linux/generic/backport-6.18/895-v7.2-Bluetooth-btusb-Add-Mercusys-MA530-for-Realtek-RTL87.patch [15]

Manually rebased:
  target/linux/generic/pending-6.18/737-10-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch
  target/linux/ath79/patches-6.18/900-unaligned_access_hacks.patch
  target/linux/bcm27xx/patches-6.18/0372-i2c-designware-Add-support-for-bus-clear-feature.patch
  target/linux/econet/patches-6.18/310-usb-enable-econet-usb.patch

Added:
  target/linux/ath79/patches-6.18/341-wifi-ath9k-always-register-system-gpios.patch

All other patches automatically rebased via update_kernel.sh

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.53&amp;id=20f46d0077f7a6d2f8078d0ed6a4c5a8062bea01
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.53&amp;id=a5ff304195ca4c91425425136435fd2c3bde53ff
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.53&amp;id=70d472076ce472b4ea605f06f14893eb17894720
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.53&amp;id=626e080d297db7996d6995620bb4eeebd928067e
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.53&amp;id=a568939487dcbc1a3e341208585e224be897e25e
6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.53&amp;id=fe997254b17dcaa19b7f559bc66730bc8cf1ad6f
7. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.53&amp;id=05b9953e40d53acac86144a92724d4fab9ac5ac9
8. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.53&amp;id=a726cc53424a6fdbd4e45e53b8e1d60a6ae75411
9. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.53&amp;id=9811e2c321f779902a79bb0d9035a8848d8f0d39
10. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.53&amp;id=f3e0f9c64a8557370437b961bb7e0425d87875db
11. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.53&amp;id=3c367198e2e2825aae445497b3f7195329009aa1
12. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.53&amp;id=9edd644864787a8c8ed24f6cdc20a652b4408726
13. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.53&amp;id=b3674e8c01b36825879abff2f82697827b007a70
14. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.53&amp;id=9f67997353caa29c6a080789a1fb6e01fb50c118
15. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.53&amp;id=0f7f58ea629699c0fcd68fd01e41c2f6ac6c63d1

Build system: x86/64
Build-tested: mediatek/filogic
Run-tested: mediatek/filogic

Signed-off-by: Edoardo Pinci &lt;epinci@outlook.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25331
Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
</comment><date>2026-10-01 00:49:54 +0200</date><id>411a8112dd1211b47469fd99dc9c0d25560f5b1c</id><msg>kernel: bump 6.18 to 6.18.53</msg><path><editType>edit</editType><file>target/linux/generic/pending-6.18/738-02-net-ethernet-mtk_eth_soc-do-not-enable-page-pool-sta.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/132-v7.1-net-airoha-Reset-PPE-default-cput-port-in-airoha_ppe.patch</file></path><path><editType>edit</editType><file>target/linux/mediatek/patches-6.18/410-bt-mtk-serial-fix.patch</file></path><path><editType>delete</editType><file>target/linux/generic/hack-6.18/890-serial-8250-add-UPIO_AU-case-to-set_io_from_upio.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/155-v7.2-net-airoha-Rename-get_src_port_id-callback-in-get_sp.patch</file></path><path><editType>edit</editType><file>target/linux/starfive/patches-6.18/1011-net-stmmac-use-GFP_DMA32.patch</file></path><path><editType>delete</editType><file>target/linux/generic/backport-6.18/852-v7.1-rtc-cmos-use-platform_get_irq_optional.patch</file></path><path><editType>edit</editType><file>target/linux/generic/backport-6.18/785-v7.0-09-net-pcs-pcs-mtk-lynxi-pass-SGMIISYS-OF-node-to-PCS.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0719-net-macb-add-TX-stall-watchdog-as-defence-in-depth-s.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0344-i2c-designware-Use-SCL-rise-and-fall-times-in-DT.patch</file></path><path><editType>delete</editType><file>target/linux/airoha/patches-6.18/160-v7.2-net-airoha-Reserve-RX-headroom-to-avoid-skb-realloca.patch</file></path><path><editType>delete</editType><file>target/linux/bcm27xx/patches-6.18/0850-dmaengine-dw-axi-dmac-Wait-for-runtime-resume.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0421-dmaengine-dw-axi-dmac-Allow-client-chosen-width.patch</file></path><path><editType>edit</editType><file>target/linux/realtek/patches-6.18/706-01-v7.2-net-sfp-apply-I2C-adapter-quirks-to-limit-block-size.patch</file></path><path><editType>edit</editType><file>target/linux/mediatek/patches-6.18/432-drivers-spi-Add-support-for-dynamic-calibration.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0284-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0663-net-cadence-macb-add-ethtool-EEE-support.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/655-increase_skb_pad.patch</file></path><path><editType>edit</editType><file>target/linux/mediatek/patches-6.18/750-net-ethernet-mtk_eth_soc-add-mt7987-support.patch</file></path><path><editType>edit</editType><file>target/linux/apm821xx/patches-6.18/710-net-ibm_emac-Use-napi_gro_receive-for-Rx-packets.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0422-spi-dw-Let-the-DMAC-set-the-transfer-widths.patch</file></path><path><editType>edit</editType><file>target/linux/starfive/patches-6.18/1014-dmaengine-dw-axi-dmac-Add-StarFive-JH7100-support.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0212-drm-panel-Add-panel-driver-for-TDO-Y17B-based-panels.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch</file></path><path><editType>delete</editType><file>target/linux/generic/backport-6.18/706-v7.2-bus-mhi-host-pci_generic-round-up-nr_irqs-to-a-power-of-two.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/834-ledtrig-libata.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/143-v7.1-net-airoha-Fix-typo-in-airoha_set_gdm2_loopback-rout.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0923-dmaengine-dw-axi-dmac-Simplify-segmentation-calc-754.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/147-v7.1-net-airoha-Fix-PPE-cpu-port-configuration-for-GDM2-l.patch</file></path><path><editType>edit</editType><file>target/linux/econet/patches-6.18/034-v6.19-PCI-mediatek-Convert-bool-to-single-quirks-entry-and.patch</file></path><path><editType>edit</editType><file>target/linux/ipq40xx/patches-6.18/701-net-dsa-add-out-of-band-tagging-protocol.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/134-v7.1-net-airoha-Delay-offloading-until-all-net_devices-ar.patch</file></path><path><editType>delete</editType><file>target/linux/airoha/patches-6.18/220-08-usb-host-add-ARCH_AIROHA-in-XHCI-MTK-dependency.patch</file></path><path><editType>delete</editType><file>target/linux/generic/backport-6.18/941-v7.2-net-dsa-realtek-rtl8365mb-add-support-for-rtl8367sb.patch</file></path><path><editType>edit</editType><file>target/linux/econet/patches-6.18/036-v6.19-PCI-mediatek-Add-support-for-Airoha-AN7583-SoC.patch</file></path><path><editType>edit</editType><file>target/linux/generic/backport-6.18/711-v7.2-net-phy-sfp-detect-presence-via-I2C-when-no-MOD_DEF0-GPIO.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0959-net-macb-Add-PHY-post-reset-settle-delay.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/812-PCI-sysfs-enforce-single-creation-of-sysfs-entry-for.patch</file></path><path><editType>edit</editType><file>target/linux/starfive/patches-6.18/0027-RISC-V-Create-unique-identification-for-SoC-PMU.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0274-serial-8250-Add-NOMSI-bug-for-bcm2835aux.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/732-03-net-ethernet-mtk_eth_soc-optimize-dma-ring-address-i.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0373-i2c-designware-Make-the-SDA-hold-time-half-LCNT.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/795-06-net-ethernet-mtk_eth_soc-use-DSA-queue-map-in-TX-pat.patch</file></path><path><editType>edit</editType><file>target/linux/generic/hack-6.18/902-debloat_proc.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0517-spi-dw-Wait-for-idle-after-TX.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0791-net-macb-drop-destructive-ISR-read-use-IMR-barrier-i.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/150-bridge_allow_receiption_on_disabled_port.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/737-09-net-ethernet-mtk_eth_soc-improve-probe-deferal.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0581-dmaengine-dw-axi-dmac-report-per-channel-max_burst-v.patch</file></path><path><editType>edit</editType><file>target/linux/generic/backport-6.18/710-01-v7.1-net-sfp-add-quirk-for-ZOERAX-SFP-2.5G-T.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0424-drivers-usb-xhci-set-HID-bit-in-streaming-endpoint-c.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/142-03-v7.1-net-airoha-Rely-on-net_device-pointer-in-ETS-callbac.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0854-Revert-net-macb-add-TX-stall-watchdog-as-defence-in-.patch</file></path><path><editType>edit</editType><file>target/linux/qualcommax/patches-6.18/0950-net-dsa-add-out-of-band-tagging-protocol.patch</file></path><path><editType>edit</editType><file>target/linux/ath79/patches-6.18/340-register_gpio_driver_earlier.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0705-drm-panel-add-TDO-DSI-V1-panel-driver.patch</file></path><path><editType>edit</editType><file>target/linux/generic/hack-6.18/755-net-phy-motorcomm-yt8821-bus-collision-workaround.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/738-01-net-ethernet-mtk_eth_soc-reduce-rx-ring-size-for-older.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/142-01-v7.1-net-airoha-Rely-on-net_device-pointer-in-airoha_dev_.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0113-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch</file></path><path><editType>edit</editType><file>target/linux/generic/kernel-6.18</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/795-04-net-ethernet-mtk_eth_soc-per-SoC-QDMA-TX-queue-count.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0332-xhci-Use-more-event-ring-segment-table-entries.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0174-staging-fbtft-Add-support-for-display-variants.patch</file></path><path><editType>edit</editType><file>target/linux/econet/patches-6.18/886-uart-add-en7523-support.patch</file></path><path><editType>edit</editType><file>target/linux/generic/hack-6.18/730-net-ethernet-mtk_eth_soc-add-hw-dump-for-forced-rese.patch</file></path><path><editType>edit</editType><file>target/linux/realtek/patches-6.18/705-v7.1-net-sfp-initialize-i2c_block_size-at-adapter-configu.patch</file></path><path><editType>edit</editType><file>target/linux/generic/hack-6.18/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch</file></path><path><editType>edit</editType><file>target/linux/realtek/patches-6.18/714-net-phy-sfp-add-support-for-SMBus.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0664-net-cadence-macb-enable-EEE-for-Raspberry-Pi-RP1.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/734-net-ethernet-mediatek-enlarge-DMA-reserve-buffer.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0208-drm-panel-simple-Add-a-timing-for-the-Raspberry-Pi-7.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0717-net-macb-flush-PCIe-posted-write-after-TSTART-doorbe.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/125-v7.1-net-airoha-Rely-__field_prep-for-non-constant-masks.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0536-drm-panel-Add-panel-driver-for-Ilitek-ILI9806E-panel.patch</file></path><path><editType>edit</editType><file>target/linux/generic/hack-6.18/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0161-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0283-xhci-quirks-add-link-TRB-quirk-for-VL805.patch</file></path><path><editType>edit</editType><file>target/linux/generic/backport-6.18/700-01-v7.0-net-sched-Export-mq-functions-for-reuse.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0069-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/732-04-net-ethernet-mtk_eth_soc-shrink-struct-mtk_tx_buf.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0792-net-macb-gate-TX-stall-watchdog-on-netif_carrier_ok-.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/510-block-add-uImage.FIT-subimage-block-driver.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/159-v7.2-net-airoha-Introduce-airoha_fe_get-airoha_qdma_get-r.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/732-05-net-ethernet-mtk_eth_soc-add-support-for-sending-fra.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/144-v7.1-net-airoha-Set-REG_RX_CPU_IDX-once-in-airoha_qdma_fi.patch</file></path><path><editType>delete</editType><file>target/linux/econet/patches-6.18/040-v7.2-PCI-mediatek-Protect-root-bus-removal-with-rescan-lo.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0639-gpu-drm-panel-Add-panel-driver-for-Ilitek-79600A-bas.patch</file></path><path><editType>edit</editType><file>target/linux/generic/hack-6.18/661-kernel-ct-size-the-hashtable-more-adequately.patch</file></path><path><editType>edit</editType><file>target/linux/realtek/patches-6.18/706-02-v7.2-net-sfp-extend-SMBus-support.patch</file></path><path><editType>delete</editType><file>target/linux/econet/patches-6.18/781-v7.3-net-dsa-mt7530-add-en7528-support.patch</file></path><path><editType>delete</editType><file>target/linux/ath79/patches-6.18/341-wifi-ath9k-obtain-system-gpios.patch</file></path><path><editType>edit</editType><file>target/linux/generic/hack-6.18/721-net-add-packet-mangeling.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/097-v6.19-net-airoha-Add-get_link-ethtool-callback.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0538-dmaengine-dw-axi-dmac-Fix-alignment-checks.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0374-dw-axi-dmac-platform-Avoid-trampling-with-zero-lengt.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/737-10-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0366-mmc-restrict-posted-write-counts-for-SD-cards-in-CQ-.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0213-drm-panel-Add-panel-driver-for-Waveshare-DSI-touchsc.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0386-dmaengine-dw-axi-dmac-Honour-snps-block-size.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/733-01-net-ethernet-mtk_eth_soc-use-napi_build_skb.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0293-net-macb-Also-set-DMA-coherent-mask.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0285-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0372-i2c-designware-Add-support-for-bus-clear-feature.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0855-Revert-net-macb-re-check-ISR-after-IER-re-enable-in-.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0940-dma-dw-axi-dmac-fix-cyclic-DMA.patch</file></path><path><editType>edit</editType><file>target/linux/generic/hack-6.18/739-net-ethernet-mtk_eth_soc-fix-offload-with-incompatible-.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0551-usb-xhci-set-Input-Slot-Context-bit-in-xhci_fixup_en.patch</file></path><path><editType>delete</editType><file>target/linux/generic/backport-6.18/947-v7.3-net-ethernet-mtk_eth_soc-populate-lpi_interfaces-to-fix-EEE-support.patch</file></path><path><editType>delete</editType><file>target/linux/generic/backport-6.18/895-v7.2-Bluetooth-btusb-Add-Mercusys-MA530-for-Realtek-RTL87.patch</file></path><path><editType>add</editType><file>target/linux/ath79/patches-6.18/341-wifi-ath9k-always-register-system-gpios.patch</file></path><path><editType>edit</editType><file>target/linux/econet/patches-6.18/310-usb-enable-econet-usb.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/795-05-net-ethernet-mtk_eth_soc-add-per-conduit-DSA-user-po.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0112-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch</file></path><path><editType>delete</editType><file>target/linux/generic/backport-6.18/751-v7.2-net-dsa-qca8k-add-support-for-force-mode-for-fixed-l.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/099-09-v6.19-net-airoha-Select-default-ppe-cpu-port-in-airoha_dev.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0391-spi-dw-Save-bandwidth-with-the-TMOD_RO-feature.patch</file></path><path><editType>edit</editType><file>target/linux/starfive/patches-6.18/0029-dmaengine-dw-axi-dmac-Drop-unused-print-message.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0736-drm-panel-simple-Fix-handling-of-panel-dsi.patch</file></path><path><editType>edit</editType><file>target/linux/starfive/patches-6.18/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/886-uart-add-en7523-support.patch</file></path><path><editType>delete</editType><file>target/linux/generic/backport-6.18/946-v7.3-net-dsa-mt7530-populate-lpi_interfaces-to-fix-EEE-support.patch</file></path><path><editType>delete</editType><file>target/linux/ramips/patches-6.18/102-01-pwm-mediatek-set-mt7628-pwm45_fixup-flag-to-false.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/751-net-sfp-add-quirk-for-TP-LINK-SM410U.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/142-02-v7.1-net-airoha-Rely-on-net_device-pointer-in-HTB-callbac.patch</file></path><path><editType>edit</editType><file>target/linux/starfive/patches-6.18/0005-i2c-designware-Delete-SMBus-functionalities.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0579-dmaengine-dw-axi-dmac-Per-channel-burst-limits.patch</file></path><path><editType>edit</editType><file>target/linux/sunxi/patches-6.18/802-f1c100s-watchdog-compat.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0852-Revert-net-macb-gate-TX-stall-watchdog-on-netif_carr.patch</file></path><path><editType>edit</editType><file>target/linux/generic/hack-6.18/766-net-phy-mediatek-ge-add-LED-configuration-interface.patch</file></path><path><editType>edit</editType><file>target/linux/mediatek/patches-6.18/751-net-ethernet-mtk_eth_soc-revise-hardware-configuration-for-mt7987.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0580-dmaengine-dw-axi-dmac-Add-DMA-channel-selection.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/096-v6.19-net-airoha-Add-missing-stats-to-ethtool_eth_mac_stat.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0345-i2c-designware-Support-non-standard-bus-speeds.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0542-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/630-packet_socket_type.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/750-net-sfp-add-quirk-for-QINIYEK-BJ-SFP-10G-T-copper-SF.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/920-mangle_bootargs.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/127-v7.1-net-airoha-Move-GDM-forward-port-configuration-in-nd.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0851-mmc-don-t-reference-requests-after-issuing-them.patch</file></path><path><editType>edit</editType><file>target/linux/generic/backport-6.18/502-v7.3-smb-server-fix-signing-multi-iov-response.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0115-usb-xhci-drop-and-add-the-endpoint-context-in-xhci_f.patch</file></path><path><editType>edit</editType><file>target/linux/bcm53xx/patches-6.18/180-usb-xhci-add-support-for-performing-fake-doorbell.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0541-PCI-quirks-work-around-VL805-firmware-ASPM-meddling.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0718-net-macb-re-check-ISR-after-IER-re-enable-in-macb_tx.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/129-v7.1-net-airoha-select-QDMA-block-according-LAN-WAN-confi.patch</file></path><path><editType>edit</editType><file>target/linux/apm821xx/patches-6.18/700-net-ibm-emac-Clear-MAL-descriptors-without-memset.patch</file></path><path><editType>edit</editType><file>target/linux/ath79/patches-6.18/900-unaligned_access_hacks.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0301-i2c-designware-Add-SMBUS-quick-command-support.patch</file></path><path><editType>edit</editType><file>target/linux/generic/hack-6.18/204-module_strip.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0393-drivers-dw-axi-dmac-make-more-sensible-choices-about.patch</file></path><path><editType>edit</editType><file>target/linux/starfive/patches-6.18/1013-dmaengine-dw-axi-dmac-Handle-xfer-start-while-non-id.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0302-dmaengine-dw-axi-dmac-Fixes-for-RP1.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0853-Revert-net-macb-drop-destructive-ISR-read-use-IMR-ba.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/126-v7.1-net-airoha-Make-flow-control-source-port-mapping-dep.patch</file></path><path><editType>edit</editType><file>target/linux/airoha/patches-6.18/120-v7.0-net-airoha-implement-get_link_ksettings.patch</file></path><path><editType>edit</editType><file>target/linux/mvebu/patches-6.18/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0790-net-macb-gate-PCIe-posted-write-flush-behind-MACB_CA.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0662-net-cadence-macb-implement-EEE-TX-LPI-support.patch</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>target/linux/bcm27xx/patches-6.18/0256-net-bcmgenet-Add-eee-module-parameter.patch</affectedPath><affectedPath>target/linux/generic/hack-6.18/902-debloat_proc.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0121-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0812-brcmfmac-cyw-clean-up-PMKID-and-cookie-code.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0745-Revert-bcmgenet-constrain-max-DMA-burst-length.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch</affectedPath><affectedPath>target/linux/generic/hack-6.18/901-debloat_sock_diag.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0159-bcmgenet-Disable-skip_umac_reset-by-default.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0691-Revert-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fa.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0689-Revert-net-bcmgenet-Add-eee-module-parameter.patch</affectedPath><affectedPath>target/linux/octeon/patches-6.18/000-fix-octeon-kernel-build.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0690-Revert-bcmgenet-Disable-skip_umac_reset-by-default.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0226-hwmon-pwm-fan-Add-fan-speed-register-support.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/630-packet_socket_type.patch</affectedPath><affectedPath>target/linux/ipq40xx/patches-6.18/999-atm-mpoa-intel-dsl-phy-support.patch</affectedPath><affectedPath>target/linux/generic/backport-6.18/502-v7.3-smb-server-fix-signing-multi-iov-response.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0110-bcmgenet-Better-coalescing-parameter-defaults.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0350-non-upstream-support-DS1-exit-firmware-re-download.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch</affectedPath><affectedPath>target/linux/generic/hack-6.18/650-netfilter-add-xt_FLOWOFFLOAD-target.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0802-brcmfmac-pass-PMKID-to-firmware-if-present.patch</affectedPath><affectedPath>target/linux/bcm27xx/patches-6.18/0109-bcmgenet-constrain-max-DMA-burst-length.patch</affectedPath><affectedPath>target/linux/generic/kernel-6.18</affectedPath><affectedPath>target/linux/generic/pending-6.18/505-ksmbd-revert-fix-to-handle-removal-of-rfc1002-header.patch</affectedPath><affectedPath>target/linux/generic/pending-6.18/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch</affectedPath><commitId>142619bac5ba56d5c8adbb80b6a65095057e0a65</commitId><timestamp>1790808642000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/hauke</absoluteUrl><fullName>hauke</fullName></author><authorEmail>hauke@hauke-m.de</authorEmail><comment>kernel: bump 6.18 to 6.18.54

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.18.54

Removed upstreamed:
  linux/generic/pending-6.18/505-ksmbd-revert-fix-to-handle-removal-of-rfc1002-header.patch [1]
  linux/bcm27xx/patches-6.18/0802-brcmfmac-pass-PMKID-to-firmware-if-present.patch [2]

Manually rebased:
  linux/generic/pending-6.18/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
  linux/bcm27xx/patches-6.18/0812-brcmfmac-cyw-clean-up-PMKID-and-cookie-code.patch

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.54&amp;id=024eb5c4cea0785c5ca98eef53c348f55b284e08
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.54&amp;id=c2cf589c7d546557ed60c43f2ec014279265dfbf

All other patches automatically rebased via update_kernel.sh

Build system: x86/64
Build-tested: mediatek/filogic
Run-tested: mediatek/filogic

Signed-off-by: Edoardo Pinci &lt;epinci@outlook.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25331
Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
</comment><date>2026-10-01 00:50:42 +0200</date><id>142619bac5ba56d5c8adbb80b6a65095057e0a65</id><msg>kernel: bump 6.18 to 6.18.54</msg><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0689-Revert-net-bcmgenet-Add-eee-module-parameter.patch</file></path><path><editType>edit</editType><file>target/linux/generic/hack-6.18/650-netfilter-add-xt_FLOWOFFLOAD-target.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0350-non-upstream-support-DS1-exit-firmware-re-download.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0256-net-bcmgenet-Add-eee-module-parameter.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0110-bcmgenet-Better-coalescing-parameter-defaults.patch</file></path><path><editType>delete</editType><file>target/linux/bcm27xx/patches-6.18/0802-brcmfmac-pass-PMKID-to-firmware-if-present.patch</file></path><path><editType>edit</editType><file>target/linux/octeon/patches-6.18/000-fix-octeon-kernel-build.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0691-Revert-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fa.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0745-Revert-bcmgenet-constrain-max-DMA-burst-length.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0812-brcmfmac-cyw-clean-up-PMKID-and-cookie-code.patch</file></path><path><editType>edit</editType><file>target/linux/generic/hack-6.18/902-debloat_proc.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0159-bcmgenet-Disable-skip_umac_reset-by-default.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0121-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch</file></path><path><editType>edit</editType><file>target/linux/generic/kernel-6.18</file></path><path><editType>edit</editType><file>target/linux/generic/hack-6.18/901-debloat_sock_diag.patch</file></path><path><editType>edit</editType><file>target/linux/ipq40xx/patches-6.18/999-atm-mpoa-intel-dsl-phy-support.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0109-bcmgenet-constrain-max-DMA-burst-length.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0226-hwmon-pwm-fan-Add-fan-speed-register-support.patch</file></path><path><editType>edit</editType><file>target/linux/bcm27xx/patches-6.18/0690-Revert-bcmgenet-Disable-skip_umac_reset-by-default.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch</file></path><path><editType>delete</editType><file>target/linux/generic/pending-6.18/505-ksmbd-revert-fix-to-handle-removal-of-rfc1002-header.patch</file></path><path><editType>edit</editType><file>target/linux/generic/pending-6.18/630-packet_socket_type.patch</file></path><path><editType>edit</editType><file>target/linux/generic/backport-6.18/502-v7.3-smb-server-fix-signing-multi-iov-response.patch</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/b43-tools/Makefile</affectedPath><commitId>43ec1e56b4d031854f9c76957e985417304b8846</commitId><timestamp>1790809643000</timestamp><author><absoluteUrl>https://taiha.net/jenkins/user/hauke</absoluteUrl><fullName>hauke</fullName></author><authorEmail>hauke@hauke-m.de</authorEmail><comment>tools/b43-tools: update to latest git HEAD

Update b43-tools to latest git commit 36284a5 (release b43-fwcutter-021).

Includes upstream commit 61105cc ("Makefiles: Declare source
prerequisites for object rules"), which fixes build failures on macOS
and systems where $&lt; resolved to generated dependency prerequisites
rather than the source file.

Changes:
36284a5 fwcutter: Update release script
8690498 ci: Reduce flags
e23a1bb Align all CFLAGS
8440ca7 Add build CI
672a056 Use true instead of hardcoding /bin/true
7fd711a fwcutter: Bump version
61105cc Makefiles: Declare source prerequisites for object rules

Signed-off-by: Josef Schlehofer &lt;pepe.schlehofer@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25500
Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
</comment><date>2026-10-01 01:07:23 +0200</date><id>43ec1e56b4d031854f9c76957e985417304b8846</id><msg>tools/b43-tools: update to latest git HEAD</msg><path><editType>edit</editType><file>tools/b43-tools/Makefile</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://taiha.net/jenkins/user/robimarko</absoluteUrl><fullName>robimarko</fullName><id>robimarko</id></culprit><culprit><absoluteUrl>https://taiha.net/jenkins/user/markus.stockhausen</absoluteUrl><fullName>markus.stockhausen</fullName><id>markus.stockhausen</id></culprit><culprit><absoluteUrl>https://taiha.net/jenkins/user/daniel</absoluteUrl><fullName>daniel</fullName><id>daniel</id></culprit><culprit><absoluteUrl>https://taiha.net/jenkins/user/mail</absoluteUrl><fullName>mail</fullName><id>mail</id></culprit><culprit><absoluteUrl>https://taiha.net/jenkins/user/hauke</absoluteUrl><fullName>hauke</fullName><id>hauke</id></culprit><culprit><absoluteUrl>https://taiha.net/jenkins/user/jonas</absoluteUrl><fullName>jonas</fullName><id>jonas</id></culprit><culprit><absoluteUrl>https://taiha.net/jenkins/user/ansuelsmth</absoluteUrl><fullName>ansuelsmth</fullName><id>ansuelsmth</id></culprit><culprit><absoluteUrl>https://taiha.net/jenkins/user/nbd</absoluteUrl><fullName>nbd</fullName><id>nbd</id></culprit><culprit><absoluteUrl>https://taiha.net/jenkins/user/lynxis</absoluteUrl><fullName>lynxis</fullName><id>lynxis</id></culprit></freeStyleBuild>