From: John Audia Date: Tue, 9 Jun 2026 12:42:01 +0000 (-0400) Subject: kernel: bump 6.18 to 6.18.35 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F23722%2Fhead;p=thirdparty%2Fopenwrt.git 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 Link: https://github.com/openwrt/openwrt/pull/23722 Signed-off-by: Jonas Jelonek --- diff --git a/target/linux/airoha/patches-6.18/886-uart-add-en7523-support.patch b/target/linux/airoha/patches-6.18/886-uart-add-en7523-support.patch index db613856b5e..4a94fb49453 100644 --- a/target/linux/airoha/patches-6.18/886-uart-add-en7523-support.patch +++ b/target/linux/airoha/patches-6.18/886-uart-add-en7523-support.patch @@ -122,7 +122,7 @@ }; /* Uart divisor latch read */ -@@ -2766,6 +2774,12 @@ serial8250_do_set_termios(struct uart_po +@@ -2769,6 +2777,12 @@ serial8250_do_set_termios(struct uart_po baud = serial8250_get_baud_rate(port, termios, old); quot = serial8250_get_divisor(port, baud, &frac); diff --git a/target/linux/ath79/patches-6.18/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.18/900-unaligned_access_hacks.patch index 1e6471aee9e..0938cdfe9aa 100644 --- a/target/linux/ath79/patches-6.18/900-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-6.18/900-unaligned_access_hacks.patch @@ -295,7 +295,7 @@ SVN-Revision: 35130 &sin->sin6_addr); sin->sin6_scope_id = 0; } -@@ -853,12 +853,12 @@ int ip6_datagram_send_ctl(struct net *ne +@@ -891,12 +891,12 @@ int ip6_datagram_send_ctl(struct net *ne } if (fl6->flowlabel&IPV6_FLOWINFO_MASK) { @@ -312,7 +312,7 @@ SVN-Revision: 35130 case IPV6_2292HOPOPTS: --- a/net/ipv6/exthdrs.c +++ b/net/ipv6/exthdrs.c -@@ -1002,7 +1002,7 @@ static bool ipv6_hop_jumbo(struct sk_buf +@@ -1006,7 +1006,7 @@ static bool ipv6_hop_jumbo(struct sk_buf goto drop; } diff --git a/target/linux/generic/kernel-6.18 b/target/linux/generic/kernel-6.18 index ccd85ab5bbb..b268a2d8f1b 100644 --- a/target/linux/generic/kernel-6.18 +++ b/target/linux/generic/kernel-6.18 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.18 = .34 -LINUX_KERNEL_HASH-6.18.34 = 640c4732fb42842166db97e032c1fe7e5ff72c85a8982c75b40f74be3555d760 +LINUX_VERSION-6.18 = .35 +LINUX_KERNEL_HASH-6.18.35 = f78602932219125e211c5f5bfd84edcfd4ec5ce88fc944f8248413f665bef236 diff --git a/target/linux/generic/pending-6.18/640-net-bridge-fix-switchdev-host-mdb-entry-updates.patch b/target/linux/generic/pending-6.18/640-net-bridge-fix-switchdev-host-mdb-entry-updates.patch index bf8af7c3f9f..cab539833bb 100644 --- a/target/linux/generic/pending-6.18/640-net-bridge-fix-switchdev-host-mdb-entry-updates.patch +++ b/target/linux/generic/pending-6.18/640-net-bridge-fix-switchdev-host-mdb-entry-updates.patch @@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau --- a/net/bridge/br_switchdev.c +++ b/net/bridge/br_switchdev.c -@@ -576,10 +576,18 @@ static void br_switchdev_host_mdb(struct +@@ -575,10 +575,18 @@ static void br_switchdev_host_mdb(struct struct net_bridge_mdb_entry *mp, int type) { struct net_device *lower_dev; diff --git a/target/linux/generic/pending-6.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-6.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index 9a660b9f105..08e20df6b7c 100644 --- a/target/linux/generic/pending-6.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/pending-6.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski static const struct rt6_info ip6_blk_hole_entry_template = { .dst = { .__rcuref = RCUREF_INIT(1), -@@ -1085,6 +1099,7 @@ static const int fib6_prop[RTN_MAX + 1] +@@ -1088,6 +1102,7 @@ static const int fib6_prop[RTN_MAX + 1] [RTN_BLACKHOLE] = -EINVAL, [RTN_UNREACHABLE] = -EHOSTUNREACH, [RTN_PROHIBIT] = -EACCES, @@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski [RTN_THROW] = -EAGAIN, [RTN_NAT] = -EINVAL, [RTN_XRESOLVE] = -EINVAL, -@@ -1120,6 +1135,10 @@ static void ip6_rt_init_dst_reject(struc +@@ -1123,6 +1138,10 @@ static void ip6_rt_init_dst_reject(struc rt->dst.output = ip6_pkt_prohibit_out; rt->dst.input = ip6_pkt_prohibit; break; @@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski case RTN_THROW: case RTN_UNREACHABLE: default: -@@ -4654,6 +4673,17 @@ static int ip6_pkt_prohibit_out(struct n +@@ -4657,6 +4676,17 @@ static int ip6_pkt_prohibit_out(struct n return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES); } @@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski /* * Allocate a dst for local (unicast / anycast) address. */ -@@ -5206,7 +5236,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -5209,7 +5239,8 @@ static int rtm_to_fib6_config(struct sk_ if (rtm->rtm_type == RTN_UNREACHABLE || rtm->rtm_type == RTN_BLACKHOLE || rtm->rtm_type == RTN_PROHIBIT || @@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -6475,6 +6506,8 @@ static int ip6_route_dev_notify(struct n +@@ -6480,6 +6511,8 @@ static int ip6_route_dev_notify(struct n #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); @@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -6486,6 +6519,7 @@ static int ip6_route_dev_notify(struct n +@@ -6491,6 +6524,7 @@ static int ip6_route_dev_notify(struct n in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev); #ifdef CONFIG_IPV6_MULTIPLE_TABLES in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev); @@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); #endif } -@@ -6681,6 +6715,8 @@ static int __net_init ip6_route_net_init +@@ -6686,6 +6720,8 @@ static int __net_init ip6_route_net_init #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.fib6_has_custom_rules = false; @@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template, sizeof(*net->ipv6.ip6_prohibit_entry), GFP_KERNEL); -@@ -6691,11 +6727,21 @@ static int __net_init ip6_route_net_init +@@ -6696,11 +6732,21 @@ static int __net_init ip6_route_net_init ip6_template_metrics, true); INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->dst.rt_uncached); @@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, ip6_template_metrics, true); -@@ -6722,6 +6768,8 @@ out: +@@ -6727,6 +6773,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -6741,6 +6789,7 @@ static void __net_exit ip6_route_net_exi +@@ -6746,6 +6794,7 @@ static void __net_exit ip6_route_net_exi kfree(net->ipv6.ip6_null_entry); #ifdef CONFIG_IPV6_MULTIPLE_TABLES kfree(net->ipv6.ip6_prohibit_entry); @@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski kfree(net->ipv6.ip6_blk_hole_entry); #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); -@@ -6824,6 +6873,9 @@ void __init ip6_route_init_special_entri +@@ -6829,6 +6878,9 @@ void __init ip6_route_init_special_entri init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); diff --git a/target/linux/generic/pending-6.18/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch b/target/linux/generic/pending-6.18/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch index 80a1f6fedf8..034675f9511 100644 --- a/target/linux/generic/pending-6.18/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch +++ b/target/linux/generic/pending-6.18/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch @@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau if (p->br->stp_enabled == BR_NO_STP || --- a/net/bridge/br_sysfs_if.c +++ b/net/bridge/br_sysfs_if.c -@@ -240,6 +240,7 @@ BRPORT_ATTR_FLAG(multicast_flood, BR_MCA +@@ -258,6 +258,7 @@ BRPORT_ATTR_FLAG(multicast_flood, BR_MCA BRPORT_ATTR_FLAG(broadcast_flood, BR_BCAST_FLOOD); BRPORT_ATTR_FLAG(neigh_suppress, BR_NEIGH_SUPPRESS); BRPORT_ATTR_FLAG(isolated, BR_ISOLATED); @@ -64,7 +64,7 @@ Signed-off-by: Felix Fietkau #ifdef CONFIG_BRIDGE_IGMP_SNOOPING static ssize_t show_multicast_router(struct net_bridge_port *p, char *buf) -@@ -292,6 +293,7 @@ static const struct brport_attribute *br +@@ -310,6 +311,7 @@ static const struct brport_attribute *br &brport_attr_group_fwd_mask, &brport_attr_neigh_suppress, &brport_attr_isolated, diff --git a/target/linux/ipq40xx/patches-6.18/701-net-dsa-add-out-of-band-tagging-protocol.patch b/target/linux/ipq40xx/patches-6.18/701-net-dsa-add-out-of-band-tagging-protocol.patch index fe5457d8290..de5435c590c 100644 --- a/target/linux/ipq40xx/patches-6.18/701-net-dsa-add-out-of-band-tagging-protocol.patch +++ b/target/linux/ipq40xx/patches-6.18/701-net-dsa-add-out-of-band-tagging-protocol.patch @@ -136,7 +136,7 @@ Signed-off-by: Maxime Chevallier #include #include #include -@@ -5089,6 +5093,9 @@ static const u8 skb_ext_type_len[] = { +@@ -5112,6 +5116,9 @@ static const u8 skb_ext_type_len[] = { #if IS_ENABLED(CONFIG_INET_PSP) [SKB_EXT_PSP] = SKB_EXT_CHUNKSIZEOF(struct psp_skb_ext), #endif diff --git a/target/linux/mediatek/patches-6.18/410-bt-mtk-serial-fix.patch b/target/linux/mediatek/patches-6.18/410-bt-mtk-serial-fix.patch index 9550723c78d..1ad4005acc0 100644 --- a/target/linux/mediatek/patches-6.18/410-bt-mtk-serial-fix.patch +++ b/target/linux/mediatek/patches-6.18/410-bt-mtk-serial-fix.patch @@ -31,7 +31,7 @@ Signed-off-by: John Crispin }, [PORT_NPCM] = { .name = "Nuvoton 16550", -@@ -2766,6 +2766,11 @@ serial8250_do_set_termios(struct uart_po +@@ -2769,6 +2769,11 @@ serial8250_do_set_termios(struct uart_po baud = serial8250_get_baud_rate(port, termios, old); quot = serial8250_get_divisor(port, baud, &frac); diff --git a/target/linux/mediatek/patches-6.18/433-drivers-spi-mem-Add-spi-calibration-hook.patch b/target/linux/mediatek/patches-6.18/433-drivers-spi-mem-Add-spi-calibration-hook.patch index e7b916e1692..465fa557b8d 100644 --- a/target/linux/mediatek/patches-6.18/433-drivers-spi-mem-Add-spi-calibration-hook.patch +++ b/target/linux/mediatek/patches-6.18/433-drivers-spi-mem-Add-spi-calibration-hook.patch @@ -11,7 +11,7 @@ Signed-off-by: SkyLake.Huang --- a/drivers/spi/spi-mem.c +++ b/drivers/spi/spi-mem.c -@@ -511,6 +511,14 @@ int spi_mem_exec_op(struct spi_mem *mem, +@@ -518,6 +518,14 @@ int spi_mem_exec_op(struct spi_mem *mem, } EXPORT_SYMBOL_GPL(spi_mem_exec_op); diff --git a/target/linux/microchipsw/patches-6.18/0009-v7.2-net-phy-micrel-fix-LAN8814-QSGMII-soft-reset.patch b/target/linux/microchipsw/patches-6.18/0009-v7.2-net-phy-micrel-fix-LAN8814-QSGMII-soft-reset.patch deleted file mode 100644 index 9d5c17ae011..00000000000 --- a/target/linux/microchipsw/patches-6.18/0009-v7.2-net-phy-micrel-fix-LAN8814-QSGMII-soft-reset.patch +++ /dev/null @@ -1,58 +0,0 @@ -From e027c218c482c6a0ae1948129ccda3b0a2033368 Mon Sep 17 00:00:00 2001 -From: Robert Marko -Date: Tue, 28 Apr 2026 15:41:01 +0200 -Subject: [PATCH] net: phy: micrel: fix LAN8814 QSGMII soft reset - -LAN8814 QSGMII soft reset was moved into the probe function to avoid -triggering it for each of 4 PHY-s in the package. - -However, that broke QSGMII link between the MAC and PHY on most LAN8814 -PHY-s, specificaly for us on the Microchip LAN969x switch. -Reading the QSGMII status registers it was visible that lanes were only -partially synced. - -It looks like the reset timing is crucial, so lets move the reset back -into the .config_init function but guard it with phy_package_init_once() -to avoid it being triggered on each of 4 PHY-s in the package. -Change the probe function to use phy_package_probe_once() for coma and PtP -setup. - -Fixes: 96a9178a29a6 ("net: phy: micrel: lan8814 fix reset of the QSGMII interface") -Signed-off-by: Robert Marko -Link: https://patch.msgid.link/20260428134138.1741253-1-robert.marko@sartura.hr -Signed-off-by: Jakub Kicinski ---- - drivers/net/phy/micrel.c | 15 ++++++++------- - 1 file changed, 8 insertions(+), 7 deletions(-) - ---- a/drivers/net/phy/micrel.c -+++ b/drivers/net/phy/micrel.c -@@ -4389,6 +4389,13 @@ static int lan8814_config_init(struct ph - { - struct kszphy_priv *lan8814 = phydev->priv; - -+ if (phy_package_init_once(phydev)) -+ /* Reset the PHY */ -+ lanphy_modify_page_reg(phydev, LAN8814_PAGE_COMMON_REGS, -+ LAN8814_QSGMII_SOFT_RESET, -+ LAN8814_QSGMII_SOFT_RESET_BIT, -+ LAN8814_QSGMII_SOFT_RESET_BIT); -+ - /* Disable ANEG with QSGMII PCS Host side */ - lanphy_modify_page_reg(phydev, LAN8814_PAGE_PORT_REGS, - LAN8814_QSGMII_PCS1G_ANEG_CONFIG, -@@ -4473,13 +4480,7 @@ static int lan8814_probe(struct phy_devi - devm_phy_package_join(&phydev->mdio.dev, phydev, - addr, sizeof(struct lan8814_shared_priv)); - -- if (phy_package_init_once(phydev)) { -- /* Reset the PHY */ -- lanphy_modify_page_reg(phydev, LAN8814_PAGE_COMMON_REGS, -- LAN8814_QSGMII_SOFT_RESET, -- LAN8814_QSGMII_SOFT_RESET_BIT, -- LAN8814_QSGMII_SOFT_RESET_BIT); -- -+ if (phy_package_probe_once(phydev)) { - err = lan8814_release_coma_mode(phydev); - if (err) - return err; diff --git a/target/linux/pistachio/patches-6.18/401-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/pistachio/patches-6.18/401-mtd-nor-support-mtd-name-from-device-tree.patch index 7e3e37bd313..dfbc2e8368b 100644 --- a/target/linux/pistachio/patches-6.18/401-mtd-nor-support-mtd-name-from-device-tree.patch +++ b/target/linux/pistachio/patches-6.18/401-mtd-nor-support-mtd-name-from-device-tree.patch @@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma --- a/drivers/spi/spi-mem.c +++ b/drivers/spi/spi-mem.c -@@ -1016,7 +1016,9 @@ static int spi_mem_probe(struct spi_devi +@@ -1023,7 +1023,9 @@ static int spi_mem_probe(struct spi_devi { struct spi_mem_driver *memdrv = to_spi_mem_drv(spi->dev.driver); struct spi_controller *ctlr = spi->controller; @@ -20,7 +20,7 @@ Signed-off-by: Abhimanyu Vishwakarma mem = devm_kzalloc(&spi->dev, sizeof(*mem), GFP_KERNEL); if (!mem) -@@ -1024,10 +1026,15 @@ static int spi_mem_probe(struct spi_devi +@@ -1031,10 +1033,15 @@ static int spi_mem_probe(struct spi_devi mem->spi = spi; diff --git a/target/linux/starfive/patches-6.18/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch b/target/linux/starfive/patches-6.18/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch index 9383402793f..155d31e169b 100644 --- a/target/linux/starfive/patches-6.18/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch +++ b/target/linux/starfive/patches-6.18/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch @@ -67,7 +67,7 @@ Signed-off-by: Minda Chen } /* -@@ -2565,7 +2578,6 @@ static unsigned int serial8250_get_baud_ +@@ -2568,7 +2581,6 @@ static unsigned int serial8250_get_baud_ min = port->uartclk / 16 / UART_DIV_MAX; max = (port->uartclk + tolerance) / 16; }