]> git.ipfire.org Git - thirdparty/openwrt.git/log
thirdparty/openwrt.git
5 hours agoumdns: update to Git HEAD (2026-06-16) main master
Hauke Mehrtens [Tue, 16 Jun 2026 00:19:46 +0000 (02:19 +0200)] 
umdns: update to Git HEAD (2026-06-16)

1b5e7bf1cec7 cache: bound cache size and clamp hostile TTLs

Link: https://github.com/openwrt/mdnsd/security/advisories/GHSA-jg8f-fhfw-jg46
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 hours agouhttpd: update to Git HEAD (2026-06-16)
Hauke Mehrtens [Mon, 15 Jun 2026 23:39:41 +0000 (01:39 +0200)] 
uhttpd: update to Git HEAD (2026-06-16)

ae015e099986 client: reject unhandled Transfer-Encoding values
b78f51847879 client: close connection on invalid chunk length
7b1bec45826b ubus: close connection on POST body parse error

Link: https://github.com/openwrt/uhttpd/security/advisories/GHSA-mcfg-c4r7-pjpf
Link: https://github.com/openwrt/uhttpd/security/advisories/GHSA-p55c-rmhc-qfm5
Link: https://github.com/openwrt/uhttpd/security/advisories/GHSA-wgwp-64hh-f52p
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
6 hours agoead: fix integer underflow in handle_send_a()
Hauke Mehrtens [Fri, 12 Jun 2026 22:34:46 +0000 (00:34 +0200)] 
ead: fix integer underflow in handle_send_a()

handle_send_a() computed the SRP "A" parameter length as

    len = ntohl(msg->len) - sizeof(struct ead_msg_number);

sizeof(struct ead_msg_number) is 1, and the subtraction is evaluated in
unsigned arithmetic. A packet with msg->len == 0 therefore wraps the
result to a huge value which, assigned to the signed int len, becomes -1.
The following bounds check is signed:

    if (len > MAXPARAMLEN + 1)
        return false;

so -1 passes, and memcpy(A.data, number->data, len) runs with len cast to
size_t (~SIZE_MAX) against the 257-byte abuf, crashing the daemon.

Neither parse_message() nor handle_packet() validate msg->len (only the
captured packet length), so an unauthenticated attacker on the local
segment can reach this path and crash ead with a single crafted packet.

Validate the claimed length in unsigned arithmetic before the subtraction
and bound it on both sides. Doing the upper-bound check unsigned as well
also closes a 32-bit-only variant where sizeof(ead_packet) + msg->len
overflows in handle_packet(), letting a large msg->len reach the same
negative-len path.

Link: https://github.com/openwrt/openwrt/security/advisories/GHSA-9558-77jp-g3fw
Reported-by: @Vasco0x4
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
6 hours agofritz-tools: fix out-of-bounds memset in TFFS segment expansion 23763/head
Hauke Mehrtens [Fri, 12 Jun 2026 23:17:23 +0000 (01:17 +0200)] 
fritz-tools: fix out-of-bounds memset in TFFS segment expansion

When growing the segment array in find_entry(), the memset() that zeroes
the newly allocated slots computed the destination with redundant sizeof
scaling:

  memset(segments + (num_segments * sizeof(struct tffs_entry_segment)), ...)

segments is a typed pointer, so pointer arithmetic already scales by the
element size. Multiplying the offset by sizeof again advances the
destination by num_segments * sizeof^2 bytes, landing far outside the
realloc()'d buffer and zeroing unrelated heap memory whenever a TFFS
entry spans multiple segments that require array expansion.

Drop the redundant multiplication so the memset targets segments[num_segments].

This is a robustness fix for malformed/corrupt TFFS content; the parser
only reads the on-device nand-tffs MTD partition as root, so it is not
considered security relevant.

Reported-by: @Vasco0x4
Assisted-by: Claude:claude-opus-4-8
Link: https://github.com/openwrt/openwrt/pull/23763
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
21 hours agomac80211: backport ath9k memset fixes from upstream 23776/head
Rosen Penev [Sat, 13 Jun 2026 18:30:18 +0000 (11:30 -0700)] 
mac80211: backport ath9k memset fixes from upstream

Backport two upstream commits that replace memset() on coherent DMA
descriptor rings with explicit WRITE_ONCE() status word stores.

On 32-bit PowerPC platforms like apm821xx, coherent DMA memory may be
mapped uncached. The optimized memset() path can use dcbz there, which
triggers alignment warnings and spams the kernel log.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23776
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
31 hours agoodhcpd: update to latest HEAD
David Bauer [Sun, 14 Jun 2026 22:15:21 +0000 (00:15 +0200)] 
odhcpd: update to latest HEAD

c6792ba odhcpd: fix integer underflow in dhcpv6_ia_handle_IAs
d329a15 odhcpd: fix out-of-bounds write in build_ia

Signed-off-by: David Bauer <mail@david-bauer.net>
31 hours agotreewide: add linux,rootfs to rootfs labeled partitions 20951/head
Rosen Penev [Thu, 27 Nov 2025 03:30:03 +0000 (19:30 -0800)] 
treewide: add linux,rootfs to rootfs labeled partitions

A step towards removing hack/420-mtd-support-OpenWrt-s-MTD_ROOTFS_ROOT_DEV.patch

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20951
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
31 hours agomediatek: filogic: replace mtd-eeprom with nvmem 23113/head
Rosen Penev [Mon, 27 Apr 2026 23:26:55 +0000 (16:26 -0700)] 
mediatek: filogic: replace mtd-eeprom with nvmem

These use fairly standard sizes.

0x1000 for mt7916 and 0x1e00 for mt7992.

Added a mediatek,mt76 compatible line where missing as required by mt76
upstream Documentation.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23113
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
31 hours agomediatek: mt7622: replace mtd-eeprom with nvmem
Rosen Penev [Mon, 27 Apr 2026 00:28:17 +0000 (17:28 -0700)] 
mediatek: mt7622: replace mtd-eeprom with nvmem

These use fairly standard sizes.

0x4da8 for mt7615 + mt7622 and 0xe00 for mt7915.

Added a mediatek,mt76 compatible line where missing as required by mt76
upstream Documentation.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23113
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
32 hours agompc85xx: ws-ap3xxxi: use u-boot,env for MAC 23761/head
Rosen Penev [Mon, 27 Apr 2026 07:15:31 +0000 (00:15 -0700)] 
mpc85xx: ws-ap3xxxi: use u-boot,env for MAC

Userspace handling is deprecated.

Fix bad copy/paste error with ws-ap3710i. enet2 is unused.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23761
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
32 hours agoapm821xx: drop support for 6.12 23777/head
Rosen Penev [Sat, 13 Jun 2026 18:49:54 +0000 (11:49 -0700)] 
apm821xx: drop support for 6.12

Remove the 6.12 kernel configuration and patch stack after switching to 6.18.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23777
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
32 hours agoapm821xx: switch to 6.18
Rosen Penev [Sat, 13 Jun 2026 18:48:05 +0000 (11:48 -0700)] 
apm821xx: switch to 6.18

Move apm821xx to the 6.18 kernel after testing it as the testing kernel.

There are ethernet performance improvements in the 6.18 kernel for
whatever reason. There's also work on getting rid of dmesg slop at
runtime.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23777
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
39 hours agorealtek: add hasivo-mcu sensor driver 23762/head
Carlo Szelinsky [Tue, 9 Jun 2026 20:58:59 +0000 (22:58 +0200)] 
realtek: add hasivo-mcu sensor driver

Add a temperature/fan sensor (hwmon) driver for the Hasivo / Horaco
management MCU as a second child of the hasivo MCU MFD (alongside the
watchdog). It exposes the CPU and system temperatures and a 3-state fan
control (auto / force-on / force-off), read/written through the parent's
shared syscon regmap.

The register protocol was reverse-engineered from the stock 'imi' firmware
and verified on hardware. The fan-status register (0xFB) reflects the MCU's
effective drive state, not actual rotation (a blocked fan still reads
force-on), so no fanN_alarm is exposed. pwm1 echoes the commanded state so
a write reads back consistently, and falls back to the live drive state in
automatic mode. The register map is shared across boards.

Signed-off-by: Carlo Szelinsky <github@szelinsky.de>
Link: https://github.com/openwrt/openwrt/pull/23762
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
39 hours agorealtek: convert hasivo-mcu-wdt to a hasivo-mcu-mfd child
Carlo Szelinsky [Sun, 7 Jun 2026 17:56:51 +0000 (19:56 +0200)] 
realtek: convert hasivo-mcu-wdt to a hasivo-mcu-mfd child

The watchdog and the temperature/fan hwmon are the same management MCU at
a single I2C address (0x6f). Linux binds one driver per I2C client, so the
watchdog cannot keep owning the address directly if the hwmon is to live
on the same chip. Convert it from a standalone i2c_driver into a
platform_driver child of the hasivo MCU MFD that reaches the chip through
the parent's shared regmap (syscon), and depend on kmod-mfd-hasivo-stc8.

Signed-off-by: Carlo Szelinsky <github@szelinsky.de>
Link: https://github.com/openwrt/openwrt/pull/23762
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
40 hours agorealtek: pcs: improve lock and error handling in pcs_config 23759/head
Jonas Jelonek [Sun, 14 Jun 2026 12:44:35 +0000 (12:44 +0000)] 
realtek: pcs: improve lock and error handling in pcs_config

Make use of scoped_guard macro to ease lock and error handling in
pcs_config by having a dedicated scope and no need for gotos.

While being here, replace -ENOTSUPP with preferred -EOPNOTSUPP and drop
{ } brackets for single statement block.

Link: https://github.com/openwrt/openwrt/pull/23759
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
40 hours agorealtek: pcs: add activate/deactivate sds_ops hooks
Jonas Jelonek [Sat, 6 Jun 2026 21:54:27 +0000 (21:54 +0000)] 
realtek: pcs: add activate/deactivate sds_ops hooks

Add the mandatory activate/deactivate bring-up hooks to rtpcs_sds_ops
and let rtpcs_pcs_config() drive the full sequence around the variant
configuration:

deactivate -> setup_serdes -> activate -> post_config

The per-variant calls that were open-coded at the start and end of the
setup_serdes() functions are removed in favour of these indirections.
RTL839X never powered the SerDes down/up, so it gets no-op stubs to
satisfy the contract for now. Execution order is preserved for all
variants.

Link: https://github.com/openwrt/openwrt/pull/23759
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
40 hours agorealtek: pcs: add post_config sds_ops hook
Jonas Jelonek [Sat, 6 Jun 2026 21:51:47 +0000 (21:51 +0000)] 
realtek: pcs: add post_config sds_ops hook

Some variants need finalization that must run only after the SerDes is
powered up: RTL838X performs a one-shot switch queue reset on first
start, RTL930X runs RX calibration and the TX config. So far this lived
at the tail of the variant setup_serdes() functions.

Add an optional post_config hook to rtpcs_sds_ops and call it from
rtpcs_pcs_config() right after setup_serdes(), then relocate the
RTL838X and RTL930X tail work into it. As activate() still runs at the
end of setup_serdes() here, the execution order is unchanged.

Link: https://github.com/openwrt/openwrt/pull/23759
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
40 hours agorealtek: pcs: rtl930x: apply tx config before activation
Jonas Jelonek [Thu, 11 Jun 2026 20:05:28 +0000 (20:05 +0000)] 
realtek: pcs: rtl930x: apply tx config before activation

In RTL930x setup, tx config was called at then end of the procedure
after configuration and calibration ran. This is still a leftover from
the old code located in DSA/PHY. However, applying TX configuration like
amplification factors, etc. doesn't make sense after calibration, it
should run before. Moreover the call was commented with "leave loopback
mode" which is just wrong and doesn't describe what the function does.
Fix this misery.

Testing on device with different interface modes shows no difference so
far, especially no negative effects.

Link: https://github.com/openwrt/openwrt/pull/23759
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
40 hours agomediatek: wavlink wl-wn536ax6 rev a: remove old WLAN LED default 23790/head
Ryan Leung [Sun, 14 Jun 2026 12:56:16 +0000 (20:56 +0800)] 
mediatek: wavlink wl-wn536ax6 rev a: remove old WLAN LED default

Remove old UCI default for WLAN LED trigger on `phy1` which is now instead triggered by either
wireless PHY by kmod-ledtrig-network

Fixes: adb7ff279213 ("mediatek: wavlink wl-wn536ax6 rev a: add "network" LED trigger")
Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23790
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
43 hours agomediatek: wavlink wl-wn536ax6 rev a: add "network" LED trigger 23682/head
Ryan Leung [Sat, 6 Jun 2026 11:19:46 +0000 (19:19 +0800)] 
mediatek: wavlink wl-wn536ax6 rev a: add "network" LED trigger

Currently the "WiFi" LED indicator light is triggered only by activity on the 5 GHz PHY.

Change it to be triggered by WLAN activity on either Wi-Fi PHY, matching stock behaviour, by using
`kmod-ledtrig-network` added in 2aa1185fb05e ('leds: add "network" LED trigger (lan/wan/wlan)').

Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23682
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
43 hours agouboot-envtools: mediatek_filogic: wavlink wl-wn536ax6 rev a: add config
Ryan Leung [Sat, 6 Jun 2026 11:19:35 +0000 (19:19 +0800)] 
uboot-envtools: mediatek_filogic: wavlink wl-wn536ax6 rev a: add config

Add config for WAVLINK WL-WN536AX6 Rev a to be able to read and write U-Boot environment variables.

Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23682
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
43 hours agomediatek: wavlink wl-wn536ax6 rev a: fix WLAN 5GHz MAC address
Ryan Leung [Sat, 6 Jun 2026 11:19:24 +0000 (19:19 +0800)] 
mediatek: wavlink wl-wn536ax6 rev a: fix WLAN 5GHz MAC address

The second WLAN MAC address in the "Factory" partition at 0x0a is not the same as the
WLAN 5GHz BSSID observed when using the manufacturer's stock firmware, which is derived from
the 2.4GHz/label MAC address by setting bits 26 and 7 (Locally Administered).

While at it, also fix alphabetical ordering of some other device names.

Fixes: 1748ce829537 ("mediatek: add support for WAVLINK WL-WN536AX6 Rev a")
Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23682
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
43 hours agomediatek: wavlink wl-wn536ax6 rev a: change nvmem layout for MAC addresses
Ryan Leung [Sat, 6 Jun 2026 11:19:12 +0000 (19:19 +0800)] 
mediatek: wavlink wl-wn536ax6 rev a: change nvmem layout for MAC addresses

Currently the WAN MAC address is read from the first (LAN) MAC address in the "HW" partition and
then incremented by 1 instead of being read directly from the second MAC address.

Change to reading the two MAC addresses (LAN/WAN) directly from "Factory" partition.

Fixes: 1748ce829537 ("mediatek: add support for WAVLINK WL-WN536AX6 Rev a")
Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23682
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
43 hours agomediatek: wavlink wl-wn536ax6 rev a: set SPI drive strength 4mA
Ryan Leung [Sat, 6 Jun 2026 11:18:56 +0000 (19:18 +0800)] 
mediatek: wavlink wl-wn536ax6 rev a: set SPI drive strength 4mA

Change SPI drive strength to 4mA to match Mediatek SDK and prevent potential signal overshoot.

Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23682
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
43 hours agomediatek: wavlink wl-wn536ax6 rev a: enable nmbm bad block management
Ryan Leung [Sat, 6 Jun 2026 11:18:45 +0000 (19:18 +0800)] 
mediatek: wavlink wl-wn536ax6 rev a: enable nmbm bad block management

Enable nmbm bad block management with up to 8 MiB reserved. The manufacturer's stock device tree
contains the property `compatible = "generic,nmbm";` in node `nmbm_spim_nand` and
manufacturer's stock bootlog contains "nmbm nmbm_spim_nand: NMBM has been successfully attached"

Fixes: 1748ce829537 ("mediatek: add support for WAVLINK WL-WN536AX6 Rev a")
Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23682
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
43 hours agokernel: modules: mppe: clean up 23464/head
Qingfang Deng [Thu, 21 May 2026 01:53:46 +0000 (09:53 +0800)] 
kernel: modules: mppe: clean up

Remove kmod-crypto-arc4 and kmod-crypto-ecb from depends, as it no
longer uses skcipher API for encryption.
Remove the non-existent CONFIG_PPP_MPPE_MPPC symbol.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23464
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
43 hours agokernel: modules: slhc: remove CRC_CCITT depends
Qingfang Deng [Thu, 21 May 2026 01:53:38 +0000 (09:53 +0800)] 
kernel: modules: slhc: remove CRC_CCITT depends

slhc does not depends on CRC_CCITT according to kernel Kconfig.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23464
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
43 hours agobusybox: fix signal handling in non-interactive envirement 23787/head
Seo Suchan [Sun, 14 Jun 2026 04:07:23 +0000 (13:07 +0900)] 
busybox: fix signal handling in non-interactive envirement

fixes  https://github.com/openwrt/openwrt/issues/23745

upstream had bug bb_got_signal to be never cleared in noninteractive session, this fixes this while waiting for upstream merge.

the patch iself is written by  Ian Cooper <iancooper@hotmail.com>

Signed-off-by: Seo Suchan <tjtncks@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23787
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
43 hours agoipq806x: fix USB port for Nokia AC400i 23740/head
Sebastian Schaper [Sat, 6 Jun 2026 18:00:57 +0000 (20:00 +0200)] 
ipq806x: fix USB port for Nokia AC400i

drop usb3_0 node, enable usb3_1 PHYs, set gpio58 for power enable

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
Link: https://github.com/openwrt/openwrt/pull/23740
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
43 hours agoipq806x: enable i2c thermal sensor for Nokia AC400i
Sebastian Schaper [Sat, 6 Jun 2026 13:38:23 +0000 (15:38 +0200)] 
ipq806x: enable i2c thermal sensor for Nokia AC400i

The board contains a TI TMP75 temperature sensor located near the ethernet
PHYs, attached to the thermal mass of the back case, close to main SoC.

Configure `gsbi2` for i2c mode and include `kmod-hwmon-lm75` package.

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
Link: https://github.com/openwrt/openwrt/pull/23740
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
43 hours agoipq806x: fix wifi for Nokia AC400i
Sebastian Schaper [Sat, 6 Jun 2026 13:26:51 +0000 (15:26 +0200)] 
ipq806x: fix wifi for Nokia AC400i

In recent versions of OpenWrt, only 2.4G wifi is working.
Drop upstream overrides for pcie nodes to declare perst-gpios 3 and 48.

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
Link: https://github.com/openwrt/openwrt/pull/23740
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
43 hours agoipq806x: fix ethernet for Nokia AC400i
Sebastian Schaper [Sat, 6 Jun 2026 07:40:06 +0000 (09:40 +0200)] 
ipq806x: fix ethernet for Nokia AC400i

In previous versions of OpenWrt, ethernet was partially working,
sometimes depending on initialization state left by bootloader.
Since the switch to NSS drivers, it is completely broken.

- swap GMAC to PHY address mapping
- use rgmii internal delay
- drop `fixed-link` rates
- add pinctrl settings for rgmii0
- declare reset GPIO 51 (used for both PHYs)
- disable hibernation

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
Link: https://github.com/openwrt/openwrt/pull/23740
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
44 hours agomediatek: fix WLAN LED indication for ipTIME AX3000SE 23723/head
Donghyun Ko [Tue, 9 Jun 2026 12:12:33 +0000 (21:12 +0900)] 
mediatek: fix WLAN LED indication for ipTIME AX3000SE

OpenWrt has recently added the "network" LED trigger to support routers
that have a single WLAN LED for multiple phys.

This patch replaces the temporary workaround used during initial
support, where the LED was triggered only by activity on a single phy.

With this change, the WLAN LED on the ipTIME AX3000SE now correctly
indicates activity on both `phy0` and `phy1`.

Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23723
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
44 hours agokernel: bump 6.12 to 6.12.93 23730/head
Shiji Yang [Tue, 9 Jun 2026 15:42:36 +0000 (23:42 +0800)] 
kernel: bump 6.12 to 6.12.93

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

Manually rebased patch:
- bcm27xx/patches-6.12/950-0755-drm-v3d-CPU-job-submissions-shouldn-t-affect-V3D-GPU.patch[1]

All other patches are automatically refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.93&id=acd55ea40d03e06f20a9986363019e0e5173990e
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23730
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
44 hours agovscode: update editor formatting and line endings settings 23750/head
Josef Schlehofer [Fri, 9 Jan 2026 14:05:45 +0000 (15:05 +0100)] 
vscode: update editor formatting and line endings settings

Enable trailing whitespace trimming, insert final newline, and force LF.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23750
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 days agorealtek: mdio: backport upstream patches 23768/head
Markus Stockhausen [Sat, 13 Jun 2026 14:36:31 +0000 (16:36 +0200)] 
realtek: mdio: backport upstream patches

Another round of MDIO driver patches was accepted upstream.
Not production relevant as OpenWrt still uses the downstream
driver.

Link: https://github.com/openwrt/openwrt/pull/23768
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2 days agorealtek: dts: add phy-package to LGS352C 23711/head
Markus Stockhausen [Mon, 8 Jun 2026 16:25:50 +0000 (18:25 +0200)] 
realtek: dts: add phy-package to LGS352C

Describe the RTL8218D packages in the device tree.

Link: https://github.com/openwrt/openwrt/pull/23711
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2 days agorealtek: dts: add phy-package to XGS1x10 series
Markus Stockhausen [Mon, 8 Jun 2026 16:23:58 +0000 (18:23 +0200)] 
realtek: dts: add phy-package to XGS1x10 series

Describe the RTL8218D packages in the device tree.

Link: https://github.com/openwrt/openwrt/pull/23711
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
3 days agoppp: update to 2.5.3 23540/head
Qingfang Deng [Tue, 26 May 2026 09:17:21 +0000 (17:17 +0800)] 
ppp: update to 2.5.3

Update to 2.5.3 and use the official tarball.

Changelog: https://github.com/ppp-project/ppp/releases/tag/v2.5.3

Removed upstreamed:
- 000-pppd-session-fixed-building-with-gcc-15.patch
- 001-pppdump-fixed-building-with-gcc-15.patch
- 501-fix-memcpy-fortify.patch
- 502-remove_mru.patch

Manually rebased:
- 500-add-pptp-plugin.patch

Add a pending patch to relax the check to avoid breaking existing
configurations.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23540
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 days agoipq40xx: use nvmem for cal data 22178/head
Rosen Penev [Mon, 23 Feb 2026 04:12:13 +0000 (20:12 -0800)] 
ipq40xx: use nvmem for cal data

Userspace handling is deprecated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22178
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 days agokernel: bump 6.18 to 6.18.35 23722/head
John Audia [Tue, 9 Jun 2026 12:42:01 +0000 (08:42 -0400)] 
kernel: bump 6.18 to 6.18.35

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

Removed upstreamed:
  microchipsw/patches-6.18/0009-v7.2-net-phy-micrel-fix-LAN8814-QSGMII-soft-reset.patch[1]

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.35&id=58b2c0f096b36a93e1975b6fa7f8d629e6fd9425

Build system: x86/64
Build-tested: x86/64-glibc
Run-tested: x86/64-glibc

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23722
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 days agobuild: fixup version.date creation for source archives 23756/head
Paul Spooren [Fri, 12 Jun 2026 14:49:44 +0000 (16:49 +0200)] 
build: fixup version.date creation for source archives

Published sources archives may contain a mixture of MTIMEs, so taking the time
of the first file found varies based on filesystem order. To fix this, sort all
MTIMEs and take the latest.

Since piping into a file directly creates that file, we also need to
specifically tell `find` to ignore `version.date`.

Furthermore, move this prior to the ./src copy step, since for some packages,
the OpenWrt build system ships extra ./src files, which would introduce the
wrong timestamps again.

Fix: e36c2946b7b build: derive PKG_SOURCE_DATE_EPOCH from the unpacked source tree
Link: https://github.com/openwrt/openwrt/pull/23756
Signed-off-by: Paul Spooren <mail@aparcar.org>
3 days agogeneric: mxl862xx: allow CPU/SerDes ports to probe on firmware < 1.0.84 23664/head
Aliaksandr Babrykovich [Fri, 5 Jun 2026 08:16:44 +0000 (10:16 +0200)] 
generic: mxl862xx: allow CPU/SerDes ports to probe on firmware < 1.0.84

The firmware-version gate in mxl862xx_phylink_get_caps() leaves
config->supported_interfaces empty for the CPU/SerDes ports (9, 13) when
the switch runs firmware older than 1.0.84. phylink rejects an empty
supported_interfaces bitmap, so the switch fails to probe at all:

  mxl862xx mdio-bus:10: switch ready after 2480ms, firmware 1.0.70 (build 70)
  mxl862xx mdio-bus:10: phylink: error: empty supported_interfaces
  error creating PHYLINK: -22
  mxl862xx mdio-bus:10: probe with driver mxl862xx failed with error -22

This regresses boards still shipping the older vendor firmware (e.g. the
BananaPi BPi-R4 Pro 8X, which ships 1.0.70) where all LAN ports disappear.

Ungate only the CPU/SerDes ports (9, 13) so the switch probes and the user
can update the firmware; ports 10..12 and 14..16 stay gated as they are
genuinely unsupported by the old firmware.

Tested on a BPi-R4 Pro 8X with switch firmware 1.0.70 (kernel 6.18); the
6.12 patch receives the identical change for parity.

Fixes: 028dc3f57a6f ("generic: 6.18: update MxL862xx DSA switch driver")
Fixes: 5b69e6a4a658 ("generic: 6.12: update MxL862xx DSA switch driver")
Signed-off-by: Aliaksandr Babrykovich <abobrikovich@gmail.com>
[refreshed patches]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 days agouboot-mediatek: migrate memsize cmd to the upstream implementation 22848/head
Shiji Yang [Tue, 9 Jun 2026 12:12:56 +0000 (20:12 +0800)] 
uboot-mediatek: migrate memsize cmd to the upstream implementation

The upstream repository accepted a newer patch revision[1].

[1] https://github.com/u-boot/u-boot/commit/e202eca183b0f1d6747b934482dc6249abdd742b
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
3 days agouboot-mediatek: drop redundant TOOLS_LIBCRYPTO symbol hack
Shiji Yang [Fri, 10 Apr 2026 11:00:26 +0000 (19:00 +0800)] 
uboot-mediatek: drop redundant TOOLS_LIBCRYPTO symbol hack

This symbol was already disabled via UBOOT_CUSTOMIZE_CONFIG.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
3 days agouboot-mediatek: use kernel DTC on mediatek ARM targets
Shiji Yang [Fri, 10 Apr 2026 11:00:26 +0000 (19:00 +0800)] 
uboot-mediatek: use kernel DTC on mediatek ARM targets

The u-boot build for mediatek ARM SoCs doesn't require pylibfdt. We
can use pre-build kernel DTC to save some build time.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
3 days agouboot-mediatek: update to v2026.04
Shiji Yang [Fri, 10 Apr 2026 11:00:25 +0000 (19:00 +0800)] 
uboot-mediatek: update to v2026.04

Remove upstreamed patches:
  001-pinctrl-mediatek-MT7981-fix-GPIO9-register-map.patch [1]
  010-clk-mediatek-mt7622-fix-infracfg-and-pericfg-clock-o.patch [2]

We also need to backport two new patches from v2026.07-rc2 to address
the yaml build error[3] and MT7621 boot issue[4].

[1] https://github.com/u-boot/u-boot/commit/a1d1fc8d8c8699d80e1b9ab3214752e5882d3740
[2] https://github.com/u-boot/u-boot/commit/52d84fccfd7d8b99e91a70192eec8e0379d63b4b
[3] https://github.com/u-boot/u-boot/commit/8ef8dee4f3a2b2021decfefd853dbd2a1632b77f
[4] https://github.com/u-boot/u-boot/commit/de79075f0f6b8795d1f9e30ff36435583b1a119a
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
3 days agouboot-mediatek: drop upstreamed patch
Shiji Yang [Fri, 10 Apr 2026 11:00:25 +0000 (19:00 +0800)] 
uboot-mediatek: drop upstreamed patch

Patch 280 was already included in u-boot v2022.07.

Link: https://github.com/u-boot/u-boot/commit/5f2d5915f8ea4785bc2b8a26955e176a7898c15b
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Suggested-by: Daniel Golle <daniel@makrotopia.org>
3 days agoath79: mikrotik: also compile AG71XX_LEGACY as a module 23748/head
MichaÅ‚ KÄ™pieÅ„ [Fri, 12 Jun 2026 07:28:03 +0000 (09:28 +0200)] 
ath79: mikrotik: also compile AG71XX_LEGACY as a module

Commit 9091c9f8cbd9 ("ath79: mikrotik: compile SWCONFIG and AR8216_PHY
as modules") caused the hybrid PHY/MDIO ar8xxx driver to be built as a
module instead of built-in.  On at least MikroTik RouterBOARD 951G-2HnD,
this prevents the kernel from binding the correct PHY driver at boot
because the ar8xxx driver is not yet available when the MDIO bus is
probed:

  - before:

    ag71xx-legacy 19000000.eth: invalid MAC address, using random address
    switch0: Atheros AR8327 rev. 4 switch registered on mdio.0
    ag71xx-legacy 19000000.eth: connected to PHY at mdio.0:00 [uid=004dd034, driver=Atheros AR8216/AR8236/AR8316]
    eth0: Atheros AG71xx at 0xb9000000, irq 4, mode: rgmii

  - after:

    ag71xx-legacy 19000000.eth: invalid MAC address, using random address
    ag71xx-legacy 19000000.eth: connected to PHY at mdio.0:00 [uid=004dd034, driver=Generic PHY]
    eth0: Atheros AG71xx at 0xb9000000, irq 4, mode: rgmii

As the PHY is already bound to the fallback "Generic PHY" driver when
the ar8xxx module is loaded, the switch remains non-functional and the
router has no network connectivity.

Fix by also compiling the MAC driver (ag71xx-legacy) as a module,
deferring switch initialization until control is transferred to
userspace during boot.  The configured module autoload priorities
(ar8xxx: 43, ag71xx-legacy: 50) ensure that the ar8xxx driver is loaded
before ag71xx-legacy.

Fixes: https://github.com/openwrt/openwrt/issues/23739
Fixes: 9091c9f8cbd9 ("ath79: mikrotik: compile SWCONFIG and AR8216_PHY as modules")
Suggested-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Michał Kępień <openwrt@kempniu.pl>
Link: https://github.com/openwrt/openwrt/pull/23748
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 days agorealtek: pcs: rtl838x: drop redundant reset writes 23746/head
Jonas Jelonek [Thu, 11 Jun 2026 22:05:16 +0000 (22:05 +0000)] 
realtek: pcs: rtl838x: drop redundant reset writes

Sometimes redundancy is so obvious that one likely misses it. Trying to
bring all SerDes setup into a unified shape, one thinks twice if
something is really needed or not.

For the RTL838x case, the single writes for take/release reset were still
an outlier. Looking closer at them one can see that the same bits are all
covered already in deactivate/activate. So before, they have been put
into the desired state but those outlier writes mess with them again.

[0, 3, 0x7146/0x7106] just deals with the SOFT_RST bit that is already
covered by rtpcs_838x_sds_reset.

[0, 0, 0xc00] touches multiple bits, amongst the EN_RX/EN_TX bits
already covered in deactivate/active. Moreover, it potentially forces
other bits into a state causing broken functionality, e.g.
INV_HSI/INV_HSO which deal with the polarity. This has no effect right
no right now but might be a latent issue in the future.

Also move the reset call down to the end of the function, doing a
soft/RX reset after every configuration is done. This is likely what the
SDK also intended, and mirrors the 839x behavior.

Link: https://github.com/openwrt/openwrt/pull/23746
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 days agorealtek: pcs: rtl838x: replace literal with macro
Jonas Jelonek [Thu, 11 Jun 2026 18:40:32 +0000 (18:40 +0000)] 
realtek: pcs: rtl838x: replace literal with macro

Replace 0 with MII_BMCR because in this context, it maps cleanly to
normal PHY register structure. BMCR_PDOWN is already used there to show
which bits are set.

Link: https://github.com/openwrt/openwrt/pull/23746
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 days agodnsmasq: update to 2.93 23669/head
John Audia [Fri, 5 Jun 2026 16:48:56 +0000 (12:48 -0400)] 
dnsmasq: update to 2.93

Changelog: https://github.com/imp/dnsmasq/blob/master/CHANGELOG#L1-L35

Removed upstreamed patches:
- 001-CVE-2026-2291.patch
- 002-CVE-2026-4890.dnsmasq-2.92.patch
- 003-CVE-2026-4891.patch
- 004-CVE-2026-4892.patch
- 005-CVE-2026-4893.patch
- 006-CVE-2026-5172.patch

All other patches rebased.

Build system: x86/64
Build-tested: x86/64-glibc
Run-tested: x86/64-glibc

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23669
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 days agoath79: ws-ap3610: assign MAC address with nvmem 23146/head
Rosen Penev [Tue, 28 Apr 2026 21:52:29 +0000 (14:52 -0700)] 
ath79: ws-ap3610: assign MAC address with nvmem

Userspace handling is deprecated.

As with all ws-ap devices, a redundant u-boot environment is used.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23146
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agorealtek: pcs: rtl838x: merge and simplify patching 23741/head
Jonas Jelonek [Sat, 6 Jun 2026 21:03:07 +0000 (21:03 +0000)] 
realtek: pcs: rtl838x: merge and simplify patching

Reduce the per-SerDes patching to a per-mode patching since they share a
lot of similarities, especially for QSGMII.

For fiber patching, the differences are bigger. This takes an approach
to merge the sequences completely despite applying some settings which
weren't applied before on one of the SerDes. Testing and SerDes dumps
showed no or minimal differences, and no practical effect on
functionality. A look at the SerDes register documentation we have shows
reordering the writes isn't problematic because most of the bits aren't
any trigger bits.

With all its users gone, we can now drop also the workaround SDS macro.

Link: https://github.com/openwrt/openwrt/pull/23741
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agorealtek: pcs: rtl838x: carve out writes for SerDes 0/1
Jonas Jelonek [Thu, 11 Jun 2026 08:28:27 +0000 (08:28 +0000)] 
realtek: pcs: rtl838x: carve out writes for SerDes 0/1

For an attempt to simplify and reduce patching, carve out two special
writes for SerDes 0/1. While their exact purpose isn't fully known, they
need to match to make QSGMII on those two SerDes work. In order to be
able to merge the per-SerDes QSGMII patching sequences, carve them out
to the patching function one level above.

Link: https://github.com/openwrt/openwrt/pull/23741
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agorealtek: pcs: rtl838x: set mode after patching
Jonas Jelonek [Sat, 6 Jun 2026 19:17:32 +0000 (19:17 +0000)] 
realtek: pcs: rtl838x: set mode after patching

In order to have a unified SerDes setup sequence, align RTL838x to all
other variants. Set the mode after patching has been applied. Testing on
devices showed the order is rather irrelevant.

Link: https://github.com/openwrt/openwrt/pull/23741
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agorealtek: pcs: rtl838x: carve out latching writes
Jonas Jelonek [Sat, 6 Jun 2026 17:09:24 +0000 (17:09 +0000)] 
realtek: pcs: rtl838x: carve out latching writes

Carve out two latching writes present in all patching sequences at the
end. They are redundant and can be moved to the caller.

Link: https://github.com/openwrt/openwrt/pull/23741
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agorealtek: pcs: rtl838x: fold lane enables and fiber path into {de,}activate
Jonas Jelonek [Wed, 22 Apr 2026 13:54:15 +0000 (13:54 +0000)] 
realtek: pcs: rtl838x: fold lane enables and fiber path into {de,}activate

Expand the 838x deactivate/activate helpers to also cover the analog lane
enables (REG0 EN_RX/EN_TX) and the fiber path power-down (FIB_REG0
CFG_FIB_PDOWN), which are operational-state concerns rather than reset
concerns:

 - _deactivate: clear EN_RX/EN_TX and set CFG_FIB_PDOWN in addition to
   block-level power off.
 - _activate: clear CFG_FIB_PDOWN and set EN_RX/EN_TX before block-level
   power on. The pulse-start EN=0 is omitted since _deactivate already
   established EN=0 and nothing in between touches REG0[1:0].

Shrink rtpcs_838x_sds_reset() accordingly: it now owns only the SOFT_RST
toggle, making it a pure digital reset primitive. The stale "SerDes %d
reset" dev_info was dropped along with the analog/fiber writes.

Behavioural note: the EN and FIB_PDOWN writes now happen *after* the
SOFT_RST release inside rtpcs_838x_sds_reset(), rather than before it as
in the old combined sds_reset. This creates a brief window where the
SerDes is out of digital reset with lanes still disabled, before
activate re-enables them. Consistent with the new
power_off/deactivate -> configure -> reset -> activate/power_on phase
structure, but diverges from the SDK ordering (EN pulse before SOFT_RST
release). Testing on real hardware shows no difference.

Link: https://github.com/openwrt/openwrt/pull/23741
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agorealtek: support Teltonika TSW202 21003/head
Patrick Grimm [Thu, 11 Jun 2026 17:52:05 +0000 (19:52 +0200)] 
realtek: support Teltonika TSW202

Add support for TSW202 PoE switch. This is an RTL8380 based switch
with two SFP slots, and 8 PoE 802.3af one every RJ-45 port.

The max budget is 240W.
The vendor firmware configures the PSE
with a per-port budget of 30.0W.

Specifications:
---------------
* SoC:       Realtek RTL8380M
* Flash:     16 MiB SPI NOR W25Q80RV, 8Mb_Serial_Flash, low_power
* RAM:       128 MiB Winbond W631GG8NB 151
* Ethernet:  8x 10/100/1000 Mbps with PoE
             2x SFP slots
* Buttons:   1 "Reset" button on front panel
* Power:     48V-54V DC barrel jack
* UART:      1 serial header with terminal on the back side.
             With ground, rx, tx, and 3.3V
* PoE:       2 XS2184
* LED:       2 i2c SL74HC164

Works:
------
  - (8) RJ-45 ethernet ports
  - (2) SFP with ethernet or fiber
  - Switch functions

TODO:
------
  - LEDs are always on
  - Power-over-Ethernet are always on

Install via web interface:
-------------------------

The openwrt firmware will not accept and flash the sysupgrade image.

It is recommended to flash with sysupgrade -n -f over ssh.

Dokumantation, Bootlogs, and Fotos can be found on

https://git.f2a.space/patrick/openwrt-24.10-tsw202/-/wikis/home

Signed-off-by: Patrick Grimm <patrick@lunatiki.de>
Link: https://github.com/openwrt/openwrt/pull/21003
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agokernel: backport rtl8365mb DSA driver improvements 23738/head
Luiz Angelo Daros de Luca [Sat, 16 May 2026 16:32:04 +0000 (18:32 +0200)] 
kernel: backport rtl8365mb DSA driver improvements

Backport several fixes and enhancements for the rtl8365mb DSA driver
from upstream.

The backport includes the following changes:
- Fix for rtl8_4 tag (from v7.1)
- VLAN and Forwarding offload (from v7.2)

Before this backport, all bridge forwarding was handled by the CPU,
causing a significant performance drop between LAN ports, similar
to standard WAN/LAN routing. Enabling hardware forwarding offload
alleviates CPU overhead and restores line-rate switching performance.

Link: https://patch.msgid.link/20260408-realtek_fixes-v1-0-915ff1404d56@gmail.com
Link: https://patch.msgid.link/20260606-realtek_forward-v13-0-b9e409687cbe@gmail.com
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23738
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 days agoqualcommbe: kiwi: include Realtek PHY kmod and RTL8261N firmware
Robert Marko [Thu, 11 Jun 2026 11:33:09 +0000 (13:33 +0200)] 
qualcommbe: kiwi: include Realtek PHY kmod and RTL8261N firmware

Since 6.18 RTL8261N support was added to the generic Realtek PHY driver
and was dropped from the downstream driver.

So, fix the missing RTL8261N support by including the Realtek PHY kmod
and the relevant firmware.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
4 days agoqualcommbe: ipq95xx: 6.18: refresh config
Robert Marko [Thu, 11 Jun 2026 11:32:27 +0000 (13:32 +0200)] 
qualcommbe: ipq95xx: 6.18: refresh config

Refresh the really outdated kernel config.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
4 days agoscripts: dhcp/dhcpv6: handling of invalid client ID values 23662/head
Shine [Sun, 31 May 2026 13:16:09 +0000 (15:16 +0200)] 
scripts: dhcp/dhcpv6: handling of invalid client ID values

Verify and clean up client ID and global DUID config values before use, in
order to prevent DHCP client malfunction and loss of IPv4 and/or IPv6
connectivity.

- Accept common separators in the string (colon, dash, spaces/tabs, lf)
- Ignore invalid values (non-hex or odd-numbered length)
- Log a warning for invalid settings

The fall back mechanism is as follows:

If a (user-configured) network.<ifname>.clientid setting is found invalid,
ignore and fall back to using network.globals.dhcp_default_duid. In case
that's also invalid (e.g. has been tampered with), don't pass a client
ID to updhc/odhcpc. In that case, udhcpc/odhcpc will use their defaults,
which currently is the i/f MAC address resp. the i/f DUID-LL.

Only error handling is introduced, no behavior change for valid settings.

Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23662
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 days agoipq40xx: remove ethernet0 alias 22550/head
Rosen Penev [Sat, 21 Mar 2026 01:19:37 +0000 (18:19 -0700)] 
ipq40xx: remove ethernet0 alias

Not needed when using nvmem. All others left alone.

Move some swport nvmem definitions to the root gmac to avoid a
randomized MAC address for the GMAC. The former inherits from the latter anyway.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22550
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agoath79: iodata etg3-r: set eth MAC in dts 21119/head
Rosen Penev [Tue, 9 Dec 2025 00:49:32 +0000 (16:49 -0800)] 
ath79: iodata etg3-r: set eth MAC in dts

Userspace handling is deprecated. WAN stuff needs to remain as no DSA
yet.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21119
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agonvram: use strdup 22370/head
Rosen Penev [Mon, 23 Feb 2026 02:06:07 +0000 (18:06 -0800)] 
nvram: use strdup

No need for malloc + strcpy.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22370
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agonvram: move variable assignment out of if
Rosen Penev [Sun, 22 Feb 2026 21:08:16 +0000 (13:08 -0800)] 
nvram: move variable assignment out of if

More readable.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22370
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agonvram: use flex array
Rosen Penev [Wed, 11 Feb 2026 02:10:15 +0000 (18:10 -0800)] 
nvram: use flex array

Clarifies that the struct needs to be over allocated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22370
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agoramips: mt7621: use dts for label mac 22306/head
Rosen Penev [Sun, 1 Mar 2026 01:57:16 +0000 (17:57 -0800)] 
ramips: mt7621: use dts for label mac

Userspace handling was needed before band mac overrides.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22306
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agoramips: mr600-v2-eu: fix WAN MAC address
Rosen Penev [Fri, 20 Mar 2026 01:56:08 +0000 (18:56 -0700)] 
ramips: mr600-v2-eu: fix WAN MAC address

78110c3 states that the MAC for the WAN interface is LAN + 1.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22306
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agoipq40xx: use nvmem for mikrotik mac address 16257/head
Rosen Penev [Sat, 24 Aug 2024 20:54:10 +0000 (13:54 -0700)] 
ipq40xx: use nvmem for mikrotik mac address

Userspace handling is deprecated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16257
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agogpio-rb91x-key: add gc owner 23731/head
Rosen Penev [Thu, 23 Apr 2026 22:01:41 +0000 (15:01 -0700)] 
gpio-rb91x-key: add gc owner

For platform drivers themselves this is not needed. but for gpiochips,
it is to avoid module unload.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23731
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agogpio-rb4xx: use GPIO_LINE_DIRECTION_OUT
Rosen Penev [Thu, 23 Apr 2026 21:56:29 +0000 (14:56 -0700)] 
gpio-rb4xx: use GPIO_LINE_DIRECTION_OUT

Remove the comment since the macro is descriptive enough.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23731
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agogpio-rb4xx: fix rb4xx_gpio_set on newer kernels
Rosen Penev [Thu, 23 Apr 2026 21:54:33 +0000 (14:54 -0700)] 
gpio-rb4xx: fix rb4xx_gpio_set on newer kernels

Propagate error code from rb4xx_gpio_cpld_set instead of just returning
0.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23731
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agogpio-rb4xx: use dev and remove of_node
Rosen Penev [Thu, 23 Apr 2026 21:49:11 +0000 (14:49 -0700)] 
gpio-rb4xx: use dev and remove of_node

Claude seems to get confused by a supposedly NULL of_node. Just use dev.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23731
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agogpio-rb4xx: fix unset ret
Rosen Penev [Thu, 23 Apr 2026 21:45:11 +0000 (14:45 -0700)] 
gpio-rb4xx: fix unset ret

Add an else branch to do so.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23731
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agolibnl: add host package 22889/head
John Audia [Sat, 11 Apr 2026 13:16:44 +0000 (09:16 -0400)] 
libnl: add host package

Add a host package, which is a new requirement for nfs-kernel-server.

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22889
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agopackage: nftables backport of reproducible builds patches 23735/head
Paul Spooren [Wed, 10 Jun 2026 14:21:40 +0000 (16:21 +0200)] 
package: nftables backport of reproducible builds patches

Building `nftables` twice results in slightly different binaries and since
it's including in the OpenWrt default firmware, breaks reproducibility of
shipped artifacts.

Enabling autoreconf, since the patches introduce a `nftvbersion.h.in` file.

This commit backports patches netfilter to fix this:

* https://git.netfilter.org/nftables/commit/?id=ca86f206c92704170a295b8dc7a41f6448835dde
* https://git.netfilter.org/nftables/commit/?id=b92571cc59ce49fdd9fe2daac9350529adfb2424
* https://git.netfilter.org/nftables/commit/?id=2a0ec8a7246e5c5eb85270e3d4de43e20a00c577

Fixes: https://github.com/openwrt/openwrt/issues/23709
Link: https://github.com/openwrt/openwrt/pull/23735
Signed-off-by: Paul Spooren <mail@aparcar.org>
5 days agopackage: make APK embedded help gzip reproducible 23736/head
Paul Spooren [Wed, 10 Jun 2026 15:18:37 +0000 (17:18 +0200)] 
package: make APK embedded help gzip reproducible

APK compresses it's helptext using LUA and require `zlib`, which isn't
available on the Buildbots. It thens falls back to `gzip`, which embeds the
MTIME, making the binary itself unreproducible.

This commits adds a downstream patch to run `gzip` with `-n`, setting the time
to 0.

Link: https://github.com/openwrt/openwrt/pull/23736
Signed-off-by: Paul Spooren <mail@aparcar.org>
5 days agoprereq-build: increase GCC requirement to 10 23718/head
Rosen Penev [Tue, 9 Jun 2026 02:25:58 +0000 (19:25 -0700)] 
prereq-build: increase GCC requirement to 10

With ccache 4.13, it mandates a minimum of 10.

Fixes: 84cb042e3a8e ("tools/ccache: update to 4.13.3")
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23718
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 days agoath79: wndap360: switch MACs to newer firmware 22895/head
Rosen Penev [Sat, 11 Apr 2026 22:31:22 +0000 (15:31 -0700)] 
ath79: wndap360: switch MACs to newer firmware

Original ar71xx has this setup:

define WNDAP360_WMAC0_MAC_OFFSET               0x120c
define WNDAP360_WMAC1_MAC_OFFSET               0x520c

/* Reusing wifi MAC with offset of 1 as eth0 MAC */
ath79_init_mac(ath79_eth0_data.mac_addr,
               art + WNDAP360_WMAC0_MAC_OFFSET, 1);

ap94_pci_init(art + WNDAP360_CALDATA0_OFFSET,
              art + WNDAP360_WMAC0_MAC_OFFSET,
              art + WNDAP360_CALDATA1_OFFSET,
              art + WNDAP360_WMAC1_MAC_OFFSET);

The ath79 port made a questionable change for eth0 being just art with
no offset. That MAC ends up being the OUI for Atheros.

WNDAP360_WMAC1_MAC_OFFSET is the same as WNDAP360_WMAC0_MAC_OFFSET
except with the first hex value being subtracted by 2, which is not a
valid OUI.

And newer Netgear firmware seems to assign differently as well,
art_120C as a base and the others incremented by 0x8.

Switch the assignment to the latest firmware and add label-mac-device to
document that the first Wi-FI MAC address is printed on the device.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22895
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agotreewide: remove usage of of_device.h 23071/head
Rosen Penev [Thu, 23 Apr 2026 22:12:31 +0000 (15:12 -0700)] 
treewide: remove usage of of_device.h

of_device.h was used only for of_match_device. That is no longer
used in most places so we can drop the extra header.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23071
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agoprereq-build: bump python requirement to 3.8 23521/head
Rosen Penev [Mon, 25 May 2026 01:49:04 +0000 (18:49 -0700)] 
prereq-build: bump python requirement to 3.8

Even though 3.8 is quite old, it's still used by Ubuntu 20.04 LTS. Bump
the version to get some extra features.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23521
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
6 days agoath79: mynet-wifi-rangeextender: use nvmem 14666/head
Rosen Penev [Sat, 9 May 2026 20:57:32 +0000 (13:57 -0700)] 
ath79: mynet-wifi-rangeextender: use nvmem

Convert the last remaining userspace eeprom for ath9k to nvmem. Well,
easily converted at least.

wifi MAC has to be handled in userspace as the kernel nvram driver works
on memory mapped addresses, not mtd ones.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14666
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
6 days agoath79: fix label-mac-device
Rosen Penev [Thu, 4 Dec 2025 03:15:05 +0000 (19:15 -0800)] 
ath79: fix label-mac-device

It appears 683-of_net-add-mac-address-to-of-tree.patch relies on the
mac-address nvmem property being present. These nodes don't need it as
they take it from the eeprom but label-mac-device needs it.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14666
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
6 days agomicrochipsw: lan969x: refresh config
Robert Marko [Wed, 29 Apr 2026 15:39:26 +0000 (17:39 +0200)] 
microchipsw: lan969x: refresh config

Refresh the kernel config.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
6 days agomicrochipsw: use upstreamed NVMEM support
Robert Marko [Tue, 9 Jun 2026 09:27:38 +0000 (11:27 +0200)] 
microchipsw: use upstreamed NVMEM support

NVMEM OTP support was upstreamed, so backport those patches instead of
our downstream ones.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
6 days agomicrochipsw: replace hwmon patch with upstreamed one
Robert Marko [Tue, 9 Jun 2026 09:08:31 +0000 (11:08 +0200)] 
microchipsw: replace hwmon patch with upstreamed one

Selection of Sparx5 hwmon driver for LAN969x was upstreamed, so use that
instead of the downstream patch.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
6 days agomicrochipsw: renumber upstreamed patches
Robert Marko [Tue, 9 Jun 2026 09:01:57 +0000 (11:01 +0200)] 
microchipsw: renumber upstreamed patches

Lets restart the numbering from 0 as most of the patches were upstreamed.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
6 days agomicrochipsw: backport MDIO probe defferal silencing
Robert Marko [Tue, 9 Jun 2026 07:48:11 +0000 (09:48 +0200)] 
microchipsw: backport MDIO probe defferal silencing

Currently, MDIO driver will print the probe defferal as error.
So, instead of spaming the log, backport the upstream fix for it.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
6 days agorealtek: rtl930x: add support for Sirivision SR-ST3408F 23686/head
Darell Tan [Sat, 6 Jun 2026 11:35:53 +0000 (11:35 +0000)] 
realtek: rtl930x: add support for Sirivision SR-ST3408F

This commit adds support for the Sirivision SR-ST3408F,
an 8-port 10G switch with 4x RJ45 ports and 4x SFP ports.

SoC:      Realtek RTL9303
RAM:      512 MiB DDR3
Flash:    SPI-NOR 16 MiB (Winbond)
Ethernet: 4x RJ45 via RTL8261BE PHY (10G/5G/2.5G/1G/100M/10M)
          4x SFP+
LEDs:     1x power, 1x system green
          2x RJ45 LEDs/port (link/act, 10G)
          1x SFP+ LED/port (link/act)
Button:   Reset
Console:  Cisco-style RJ45, 115200 8n1
Fan:      4040 12V fan (hardwired)
Power:    12V 3A internal PSU

OpenWrt installation
---------------------

1. Attach to serial console using a Cisco cable, 115200 8n1
2. Power on the switch and rapidly press Esc to interrupt U-Boot
3. Initialize the RJ45 ports by running `rtk network on`
4. Serve the initramfs-kernel.bin image on TFTP, IP 192.168.1.111
5. Use any RJ45 port to connect to your TFTP server
6. Run `tftpboot 0x81000000 initramfs-kernel.bin; bootm`
7. Use `mtd dump` or `dd` to backup the original firmware at `mtd5` first
8. Run sysupgrade to flash sysupgrade.bin into the switch and reboot

Restoring original firmware
-----------------------------

Vendor does not provide firmware images, so you should have made a backup.
Use `mtd write` to restore your backed up copy into the `mtd5` partition.

MAC Address
------------
All interfaces are assigned the same MAC address, from the U-Boot env
`ethaddr`. This MAC address is also printed on the device label.

Signed-off-by: Darell Tan <darell.tan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23686
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
6 days agokernel: iio: add kmod-iio-ad7405 package 22989/head
Thomas Richard [Sat, 18 Apr 2026 12:54:38 +0000 (14:54 +0200)] 
kernel: iio: add kmod-iio-ad7405 package

Create kernel package for the AD7405 ADC driver.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
6 days agostm32: add kmod-stm32-omm package
Thomas Richard [Sat, 18 Apr 2026 12:53:22 +0000 (14:53 +0200)] 
stm32: add kmod-stm32-omm package

This adds STM32 Octo Memory Manager support.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
6 days agostm32: add kmod-stm32-csi package
Thomas Richard [Sat, 18 Apr 2026 12:52:20 +0000 (14:52 +0200)] 
stm32: add kmod-stm32-csi package

This adds STM32 Camera Serial Interface (CSI) support.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
6 days agostm32: add kmod-spi-stm32-ospi and kmod-spi-stm32-qspi
Thomas Richard [Sat, 18 Apr 2026 12:50:26 +0000 (14:50 +0200)] 
stm32: add kmod-spi-stm32-ospi and kmod-spi-stm32-qspi

This adds STM32 OCTO and QUAD SPI controller support.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
6 days agostm32: 6.18: disable some unnecessary options
Thomas Richard [Sat, 18 Apr 2026 12:37:33 +0000 (14:37 +0200)] 
stm32: 6.18: disable some unnecessary options

The COMMON_CLK_STM32MP215 option is for clock support on MP215 platforms,
and PINCTRL_STM32_HDP is for Hardware Debug Port pin control. They can be
safely removed.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
6 days agostm32: enable 6.18 testing kernel
Thomas Richard [Sat, 18 Apr 2026 12:30:44 +0000 (14:30 +0200)] 
stm32: enable 6.18 testing kernel

The stm32 target now supports 6.18 kernel as testing.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
6 days agostm32: 6.18: update kernel 6.18 config
Thomas Richard [Sat, 18 Apr 2026 12:28:34 +0000 (14:28 +0200)] 
stm32: 6.18: update kernel 6.18 config

Update stm32mp1 kernel config for 6.18.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
6 days agostm32: fix return value of phy_power_on() in dwmac-stm32 driver
Thomas Richard [Mon, 18 May 2026 08:36:04 +0000 (10:36 +0200)] 
stm32: fix return value of phy_power_on() in dwmac-stm32 driver

Patch 700-net-stmmac-dwmac-stm32-add-support-of-phy-supply-pro.patch
introduces phy-supply support in dwmac-stm32 driver. But the phy_power_on()
function always returns 0 even if it failed to drive the regulator. So fix
phy_power_on() to return an error if something wrong happened.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
6 days agostm32: 6.18: refresh kernel patches
Thomas Richard [Sat, 18 Apr 2026 12:24:16 +0000 (14:24 +0200)] 
stm32: 6.18: refresh kernel patches

Drop upstreamed patches and refresh remaining ones.

Manually rebased:
- 700-net-stmmac-dwmac-stm32-add-support-of-phy-supply-pro.patch

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>