From: Shiji Yang Date: Fri, 3 Apr 2026 14:38:49 +0000 (+0800) Subject: ath79: refresh 6.18 kernel patches X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b384ad22e75db2ea4fdb2b672b55708864df625c;p=thirdparty%2Fopenwrt.git ath79: refresh 6.18 kernel patches Remove upstreamed: 001-irqchip-ath79-misc-fix-missing-prototypes-warnings.patch [1] Manually rebased: 341-wifi-ath9k-obtain-system-gpios.patch 820-mfd-syscon-support-skip-reset-control-for-syscon-devices.patch 900-unaligned_access_hacks.patch [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=3085ef9d9e7ab5ae4cddbe809e2e3b8dc11cdc75 Signed-off-by: Shiji Yang Link: https://github.com/openwrt/openwrt/pull/22771 Signed-off-by: Nick Hainke --- diff --git a/target/linux/ath79/patches-6.18/001-irqchip-ath79-misc-fix-missing-prototypes-warnings.patch b/target/linux/ath79/patches-6.18/001-irqchip-ath79-misc-fix-missing-prototypes-warnings.patch deleted file mode 100644 index cb83dd78601..00000000000 --- a/target/linux/ath79/patches-6.18/001-irqchip-ath79-misc-fix-missing-prototypes-warnings.patch +++ /dev/null @@ -1,55 +0,0 @@ -From: Shiji Yang -Date: Thu, 1 May 2025 01:59:06 +0800 -Subject: [PATCH] irqchip/ath79-misc: fix missing prototypes warnings - -ath79_misc_irq_init() was defined but unused since commit -51fa4f8912c0 ("MIPS: ath79: drop legacy IRQ code"), so it's time -to drop it. This patch also adds the missing header "asm/time.h" -which defines the prototype of get_c0_perfcount_int(). - -Fix the following warnings: - -drivers/irqchip/irq-ath79-misc.c:26:5: error: no previous prototype for 'get_c0_perfcount_int' [-Werror=missing-prototypes] - 26 | int get_c0_perfcount_int(void) - | ^~~~~~~~~~~~~~~~~~~~ -drivers/irqchip/irq-ath79-misc.c:181:13: error: no previous prototype for 'ath79_misc_irq_init' [-Werror=missing-prototypes] - 181 | void __init ath79_misc_irq_init(void __iomem *regs, int irq, - | ^~~~~~~~~~~~~~~~~~~ - -Signed-off-by: Shiji Yang ---- - drivers/irqchip/irq-ath79-misc.c | 19 +------------------ - 1 file changed, 1 insertion(+), 18 deletions(-) - ---- a/drivers/irqchip/irq-ath79-misc.c -+++ b/drivers/irqchip/irq-ath79-misc.c -@@ -10,6 +10,7 @@ - * Parts of this file are based on Atheros' 2.6.15/2.6.31 BSP - */ - -+#include - #include - #include - #include -@@ -177,21 +178,3 @@ static int __init ar7240_misc_intc_of_in - - IRQCHIP_DECLARE(ar7240_misc_intc, "qca,ar7240-misc-intc", - ar7240_misc_intc_of_init); -- --void __init ath79_misc_irq_init(void __iomem *regs, int irq, -- int irq_base, bool is_ar71xx) --{ -- struct irq_domain *domain; -- -- if (is_ar71xx) -- ath79_misc_irq_chip.irq_mask_ack = ar71xx_misc_irq_mask; -- else -- ath79_misc_irq_chip.irq_ack = ar724x_misc_irq_ack; -- -- domain = irq_domain_add_legacy(NULL, ATH79_MISC_IRQ_COUNT, -- irq_base, 0, &misc_irq_domain_ops, regs); -- if (!domain) -- panic("Failed to create MISC irqdomain"); -- -- ath79_misc_intc_domain_init(domain, irq); --} diff --git a/target/linux/ath79/patches-6.18/340-register_gpio_driver_earlier.patch b/target/linux/ath79/patches-6.18/340-register_gpio_driver_earlier.patch index e6415b3dca3..2d37be2c52d 100644 --- a/target/linux/ath79/patches-6.18/340-register_gpio_driver_earlier.patch +++ b/target/linux/ath79/patches-6.18/340-register_gpio_driver_earlier.patch @@ -11,7 +11,7 @@ Submitted-by: John Crispin --- a/drivers/gpio/gpio-ath79.c +++ b/drivers/gpio/gpio-ath79.c -@@ -291,7 +291,11 @@ static struct platform_driver ath79_gpio +@@ -287,7 +287,11 @@ static struct platform_driver ath79_gpio .probe = ath79_gpio_probe, }; diff --git a/target/linux/ath79/patches-6.18/341-wifi-ath9k-obtain-system-gpios.patch b/target/linux/ath79/patches-6.18/341-wifi-ath9k-obtain-system-gpios.patch index e7017a4674f..54c13d56206 100644 --- a/target/linux/ath79/patches-6.18/341-wifi-ath9k-obtain-system-gpios.patch +++ b/target/linux/ath79/patches-6.18/341-wifi-ath9k-obtain-system-gpios.patch @@ -172,15 +172,15 @@ Best regards, --- a/drivers/gpio/gpio-ath79.c +++ b/drivers/gpio/gpio-ath79.c -@@ -10,6 +10,7 @@ - +@@ -11,6 +11,7 @@ #include #include + #include +#include /* For WLAN GPIOs */ #include #include #include -@@ -222,6 +223,37 @@ static const struct of_device_id ath79_g +@@ -214,6 +215,37 @@ static const struct of_device_id ath79_g }; MODULE_DEVICE_TABLE(of, ath79_gpio_of_match); @@ -217,17 +217,17 @@ Best regards, + static int ath79_gpio_probe(struct platform_device *pdev) { - struct device *dev = &pdev->dev; -@@ -280,7 +312,11 @@ static int ath79_gpio_probe(struct platf + struct gpio_generic_chip_config config; +@@ -276,7 +308,11 @@ static int ath79_gpio_probe(struct platf girq->handler = handle_simple_irq; } -- return devm_gpiochip_add_data(dev, &ctrl->gc, ctrl); -+ err = devm_gpiochip_add_data(dev, &ctrl->gc, ctrl); +- return devm_gpiochip_add_data(dev, &ctrl->chip.gc, ctrl); ++ err = devm_gpiochip_add_data(dev, &ctrl->chip.gc, ctrl); + if (err) + return err; + -+ return ath79_gpio_register_wifi_descriptors(dev, ctrl->gc.label); ++ return ath79_gpio_register_wifi_descriptors(dev, ctrl->chip.gc.label); } static struct platform_driver ath79_gpio_driver = { diff --git a/target/linux/ath79/patches-6.18/370-MIPS-ath79-sanitize-symbols.patch b/target/linux/ath79/patches-6.18/370-MIPS-ath79-sanitize-symbols.patch index b7cc5fe022e..ea6f3cc9a60 100644 --- a/target/linux/ath79/patches-6.18/370-MIPS-ath79-sanitize-symbols.patch +++ b/target/linux/ath79/patches-6.18/370-MIPS-ath79-sanitize-symbols.patch @@ -15,7 +15,7 @@ Signed-off-by: John Crispin --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -242,6 +242,8 @@ config ATH79 +@@ -243,6 +243,8 @@ config ATH79 select SYS_SUPPORTS_BIG_ENDIAN select SYS_SUPPORTS_MIPS16 select SYS_SUPPORTS_ZBOOT_UART_PROM diff --git a/target/linux/ath79/patches-6.18/400-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/ath79/patches-6.18/400-mtd-nor-support-mtd-name-from-device-tree.patch index ccef8fe7efa..59be5a28090 100644 --- a/target/linux/ath79/patches-6.18/400-mtd-nor-support-mtd-name-from-device-tree.patch +++ b/target/linux/ath79/patches-6.18/400-mtd-nor-support-mtd-name-from-device-tree.patch @@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma --- a/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c -@@ -3526,12 +3526,19 @@ static int spi_nor_set_mtd_info(struct s +@@ -3503,12 +3503,19 @@ static int spi_nor_set_mtd_info(struct s { struct mtd_info *mtd = &nor->mtd; struct device *dev = nor->dev; @@ -33,7 +33,7 @@ Signed-off-by: Abhimanyu Vishwakarma mtd->flags = MTD_CAP_NORFLASH; --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c -@@ -849,6 +849,17 @@ out_error: +@@ -902,6 +902,17 @@ out_error: */ static void mtd_set_dev_defaults(struct mtd_info *mtd) { diff --git a/target/linux/ath79/patches-6.18/430-mtd-ar934x-nand-driver.patch b/target/linux/ath79/patches-6.18/430-mtd-ar934x-nand-driver.patch index e82c0a77c8e..21dae19f765 100644 --- a/target/linux/ath79/patches-6.18/430-mtd-ar934x-nand-driver.patch +++ b/target/linux/ath79/patches-6.18/430-mtd-ar934x-nand-driver.patch @@ -9,7 +9,7 @@ SVN-Revision: 33385 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig -@@ -548,4 +548,12 @@ config MTD_NAND_DISKONCHIP_BBTWRITE +@@ -537,4 +537,12 @@ config MTD_NAND_DISKONCHIP_BBTWRITE load time (assuming you build diskonchip as a module) with the module parameter "inftl_bbt_write=1". @@ -24,10 +24,10 @@ SVN-Revision: 33385 endif # MTD_RAW_NAND --- a/drivers/mtd/nand/raw/Makefile +++ b/drivers/mtd/nand/raw/Makefile -@@ -58,6 +58,7 @@ obj-$(CONFIG_MTD_NAND_INTEL_LGM) += inte - obj-$(CONFIG_MTD_NAND_ROCKCHIP) += rockchip-nand-controller.o - obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-nand-controller.o +@@ -59,6 +59,7 @@ obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-n obj-$(CONFIG_MTD_NAND_RENESAS) += renesas-nand-controller.o + obj-$(CONFIG_MTD_NAND_NUVOTON_MA35) += nuvoton-ma35d1-nand-controller.o + obj-$(CONFIG_MTD_NAND_LOONGSON) += loongson-nand-controller.o +obj-$(CONFIG_MTD_NAND_AR934X) += ar934x_nand.o nand-objs := nand_base.o nand_legacy.o nand_bbt.o nand_timings.o nand_ids.o diff --git a/target/linux/ath79/patches-6.18/450-mtd-spi-nor-macronix-locking-support-for-mx25l64-ser.patch b/target/linux/ath79/patches-6.18/450-mtd-spi-nor-macronix-locking-support-for-mx25l64-ser.patch index deefe58fe7d..7b2c7620db0 100644 --- a/target/linux/ath79/patches-6.18/450-mtd-spi-nor-macronix-locking-support-for-mx25l64-ser.patch +++ b/target/linux/ath79/patches-6.18/450-mtd-spi-nor-macronix-locking-support-for-mx25l64-ser.patch @@ -14,9 +14,9 @@ Signed-off-by: Shiji Yang --- a/drivers/mtd/spi-nor/macronix.c +++ b/drivers/mtd/spi-nor/macronix.c -@@ -8,6 +8,11 @@ - - #include "core.h" +@@ -25,6 +25,11 @@ + SPI_MEM_OP_NO_DUMMY, \ + SPI_MEM_OP_DATA_OUT(ndata, buf, 0)) +static void macronix_no_16bit_sr_default_init(struct spi_nor *nor) +{ @@ -26,7 +26,7 @@ Signed-off-by: Shiji Yang static int mx25l25635_post_bfpt_fixups(struct spi_nor *nor, const struct sfdp_parameter_header *bfpt_header, -@@ -28,6 +33,10 @@ mx25l25635_post_bfpt_fixups(struct spi_n +@@ -83,6 +88,10 @@ mx25l3255e_late_init_fixups(struct spi_n return 0; } @@ -36,8 +36,8 @@ Signed-off-by: Shiji Yang + static const struct spi_nor_fixups mx25l25635_fixups = { .post_bfpt = mx25l25635_post_bfpt_fixups, - }; -@@ -66,7 +75,9 @@ static const struct flash_info macronix_ + .post_sfdp = macronix_qpp4b_post_sfdp_fixups, +@@ -128,7 +137,9 @@ static const struct flash_info macronix_ .id = SNOR_ID(0xc2, 0x20, 0x17), .name = "mx25l6405d", .size = SZ_8M, @@ -45,5 +45,5 @@ Signed-off-by: Shiji Yang .no_sfdp_flags = SECT_4K, + .fixups = &mx25l64_fixups, }, { + /* MX25L12805D */ .id = SNOR_ID(0xc2, 0x20, 0x18), - .name = "mx25l12805d", diff --git a/target/linux/ath79/patches-6.18/701-usb-add-more-OF-quirk-properties.patch b/target/linux/ath79/patches-6.18/701-usb-add-more-OF-quirk-properties.patch index 293a3598845..f1c1a735976 100644 --- a/target/linux/ath79/patches-6.18/701-usb-add-more-OF-quirk-properties.patch +++ b/target/linux/ath79/patches-6.18/701-usb-add-more-OF-quirk-properties.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/drivers/usb/host/ehci-platform.c +++ b/drivers/usb/host/ehci-platform.c -@@ -274,6 +274,11 @@ static int ehci_platform_probe(struct pl +@@ -275,6 +275,11 @@ static int ehci_platform_probe(struct pl ehci = hcd_to_ehci(hcd); if (pdata == &ehci_platform_defaults && dev->dev.of_node) { diff --git a/target/linux/ath79/patches-6.18/800-leds-add-reset-controller-based-driver.patch b/target/linux/ath79/patches-6.18/800-leds-add-reset-controller-based-driver.patch index b40982046e5..7fe2ae176e0 100644 --- a/target/linux/ath79/patches-6.18/800-leds-add-reset-controller-based-driver.patch +++ b/target/linux/ath79/patches-6.18/800-leds-add-reset-controller-based-driver.patch @@ -13,7 +13,7 @@ Signed-off-by: John Crispin --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig -@@ -977,6 +977,17 @@ source "drivers/leds/flash/Kconfig" +@@ -1028,6 +1028,17 @@ source "drivers/leds/flash/Kconfig" comment "RGB LED drivers" source "drivers/leds/rgb/Kconfig" @@ -176,7 +176,7 @@ Signed-off-by: John Crispin +MODULE_ALIAS("platform:leds-reset"); --- a/drivers/leds/Makefile +++ b/drivers/leds/Makefile -@@ -93,6 +93,7 @@ obj-$(CONFIG_LEDS_TURRIS_OMNIA) += leds +@@ -98,6 +98,7 @@ obj-$(CONFIG_LEDS_UPBOARD) += leds-upbo obj-$(CONFIG_LEDS_WM831X_STATUS) += leds-wm831x-status.o obj-$(CONFIG_LEDS_WM8350) += leds-wm8350.o obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o diff --git a/target/linux/ath79/patches-6.18/820-mfd-syscon-support-skip-reset-control-for-syscon-devices.patch b/target/linux/ath79/patches-6.18/820-mfd-syscon-support-skip-reset-control-for-syscon-devices.patch index 3bdc2faf3ff..34bb9cf3ce0 100644 --- a/target/linux/ath79/patches-6.18/820-mfd-syscon-support-skip-reset-control-for-syscon-devices.patch +++ b/target/linux/ath79/patches-6.18/820-mfd-syscon-support-skip-reset-control-for-syscon-devices.patch @@ -16,16 +16,16 @@ Signed-off-by: Shiji Yang --- a/drivers/mfd/syscon.c +++ b/drivers/mfd/syscon.c -@@ -53,7 +53,7 @@ static struct syscon *of_syscon_register +@@ -46,7 +46,7 @@ static struct syscon *of_syscon_register int ret; struct regmap_config syscon_config = syscon_regmap_config; struct resource res; - struct reset_control *reset; + struct reset_control *reset = NULL; + resource_size_t res_size; WARN_ON(!mutex_is_locked(&syscon_list_lock)); - -@@ -133,7 +133,8 @@ static struct syscon *of_syscon_register +@@ -135,7 +135,8 @@ static struct syscon *of_syscon_register goto err_attach_clk; } 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 4a5a1a32bd4..8d55d231de8 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 @@ -185,7 +185,7 @@ SVN-Revision: 35130 /* index values for the variables in ipv6_devconf */ --- a/include/uapi/linux/tcp.h +++ b/include/uapi/linux/tcp.h -@@ -55,7 +55,7 @@ struct tcphdr { +@@ -57,7 +57,7 @@ struct tcphdr { __be16 window; __sum16 check; __be16 urg_ptr; @@ -194,7 +194,7 @@ SVN-Revision: 35130 /* * The union cast uses a gcc extension to avoid aliasing problems -@@ -65,7 +65,7 @@ struct tcphdr { +@@ -67,7 +67,7 @@ struct tcphdr { union tcp_word_hdr { struct tcphdr hdr; __be32 words[5]; @@ -259,7 +259,7 @@ SVN-Revision: 35130 #include #include #include -@@ -915,10 +916,10 @@ static void tcp_v6_send_response(const s +@@ -917,10 +918,10 @@ static void tcp_v6_send_response(const s topt = (__be32 *)(t1 + 1); if (tsecr) { @@ -312,7 +312,7 @@ SVN-Revision: 35130 case IPV6_2292HOPOPTS: --- a/net/ipv6/exthdrs.c +++ b/net/ipv6/exthdrs.c -@@ -986,7 +986,7 @@ static bool ipv6_hop_jumbo(struct sk_buf +@@ -984,7 +984,7 @@ static bool ipv6_hop_jumbo(struct sk_buf goto drop; } @@ -323,9 +323,9 @@ SVN-Revision: 35130 SKB_DROP_REASON_IP_INHDR); --- a/include/linux/types.h +++ b/include/linux/types.h -@@ -248,5 +248,11 @@ typedef void (*swap_func_t)(void *a, voi - typedef int (*cmp_r_func_t)(const void *a, const void *b, const void *priv); - typedef int (*cmp_func_t)(const void *a, const void *b); +@@ -265,5 +265,11 @@ struct rcuwait { + struct task_struct __rcu *task; + }; +struct net_hdr_word { + u32 words[1]; @@ -337,7 +337,7 @@ SVN-Revision: 35130 #endif /* _LINUX_TYPES_H */ --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c -@@ -1507,7 +1507,7 @@ struct sk_buff *inet_gro_receive(struct +@@ -1492,7 +1492,7 @@ struct sk_buff *inet_gro_receive(struct goto out; NAPI_GRO_CB(skb)->proto = proto; @@ -348,7 +348,7 @@ SVN-Revision: 35130 struct iphdr *iph2; --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -668,8 +668,9 @@ static void tcp_options_write(struct tcp +@@ -638,8 +638,9 @@ static void tcp_options_write(struct tcp u16 options = opts->options; /* mungable copy */ if (tcp_key_is_md5(key)) { @@ -360,7 +360,7 @@ SVN-Revision: 35130 /* overload cookie hash location */ opts->hash_location = (__u8 *)ptr; ptr += 4; -@@ -677,40 +678,44 @@ static void tcp_options_write(struct tcp +@@ -647,26 +648,28 @@ static void tcp_options_write(struct tcp ptr = process_tcp_ao_options(tp, tcprsk, opts, key, ptr); } if (unlikely(opts->mss)) { @@ -401,45 +401,55 @@ SVN-Revision: 35130 + net_hdr_word(ptr++) = htonl(opts->tsecr); } + if (OPTION_ACCECN & options) { +@@ -717,10 +720,11 @@ static void tcp_options_write(struct tcp + } + if (unlikely(OPTION_SACK_ADVERTISE & options)) { -- *ptr++ = htonl((TCPOPT_NOP << 24) | -- (TCPOPT_NOP << 16) | +- *ptr++ = htonl((leftover_highbyte << 24) | +- (leftover_lowbyte << 16) | - (TCPOPT_SACK_PERM << 8) | - TCPOLEN_SACK_PERM); + net_hdr_word(ptr++) = -+ htonl((TCPOPT_NOP << 24) | -+ (TCPOPT_NOP << 16) | ++ htonl((leftover_highbyte << 24) | ++ (leftover_lowbyte << 16) | + (TCPOPT_SACK_PERM << 8) | + TCPOLEN_SACK_PERM); + leftover_highbyte = TCPOPT_NOP; + leftover_lowbyte = TCPOPT_NOP; } - - if (unlikely(OPTION_WSCALE & options)) { -- *ptr++ = htonl((TCPOPT_NOP << 24) | +@@ -737,10 +741,11 @@ static void tcp_options_write(struct tcp + highbyte = leftover_highbyte; + leftover_highbyte = TCPOPT_NOP; + } +- *ptr++ = htonl((highbyte << 24) | - (TCPOPT_WINDOW << 16) | - (TCPOLEN_WINDOW << 8) | - opts->ws); + net_hdr_word(ptr++) = -+ htonl((TCPOPT_NOP << 24) | ++ htonl((highbyte << 24) | + (TCPOPT_WINDOW << 16) | + (TCPOLEN_WINDOW << 8) | + opts->ws); } if (unlikely(opts->num_sack_blocks)) { -@@ -718,16 +723,17 @@ static void tcp_options_write(struct tcp +@@ -748,18 +753,19 @@ static void tcp_options_write(struct tcp tp->duplicate_sack : tp->selective_acks; int this_sack; -- *ptr++ = htonl((TCPOPT_NOP << 24) | -- (TCPOPT_NOP << 16) | +- *ptr++ = htonl((leftover_highbyte << 24) | +- (leftover_lowbyte << 16) | - (TCPOPT_SACK << 8) | - (TCPOLEN_SACK_BASE + (opts->num_sack_blocks * + net_hdr_word(ptr++) = -+ htonl((TCPOPT_NOP << 24) | -+ (TCPOPT_NOP << 16) | ++ htonl((leftover_highbyte << 24) | ++ (leftover_lowbyte << 16) | + (TCPOPT_SACK << 8) | + (TCPOLEN_SACK_BASE + (opts->num_sack_blocks * TCPOLEN_SACK_PERBLOCK))); + leftover_highbyte = TCPOPT_NOP; + leftover_lowbyte = TCPOPT_NOP; for (this_sack = 0; this_sack < opts->num_sack_blocks; ++this_sack) { @@ -450,7 +460,7 @@ SVN-Revision: 35130 } tp->rx_opt.dsack = 0; -@@ -740,13 +746,14 @@ static void tcp_options_write(struct tcp +@@ -780,13 +786,14 @@ static void tcp_options_write(struct tcp if (foc->exp) { len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len; @@ -508,7 +518,7 @@ SVN-Revision: 35130 #define IGMP_HOST_MEMBERSHIP_REPORT 0x12 /* Ditto */ --- a/net/core/flow_dissector.c +++ b/net/core/flow_dissector.c -@@ -132,7 +132,7 @@ __be32 __skb_flow_get_ports(const struct +@@ -132,7 +132,7 @@ __be32 skb_flow_get_ports(const struct s ports = __skb_header_pointer(skb, thoff + poff, sizeof(_ports), data, hlen, &_ports); if (ports) @@ -530,7 +540,7 @@ SVN-Revision: 35130 #define ICMPV6_ROUTER_PREF_LOW 0x3 --- a/include/net/ndisc.h +++ b/include/net/ndisc.h -@@ -93,7 +93,7 @@ struct ra_msg { +@@ -84,7 +84,7 @@ struct ra_msg { struct icmp6hdr icmph; __be32 reachable_time; __be32 retrans_timer; @@ -539,7 +549,7 @@ SVN-Revision: 35130 struct rd_msg { struct icmp6hdr icmph; -@@ -357,10 +357,10 @@ static inline u32 ndisc_hashfn(const voi +@@ -348,10 +348,10 @@ static inline u32 ndisc_hashfn(const voi { const u32 *p32 = pkey; @@ -600,7 +610,7 @@ SVN-Revision: 35130 static_assert(sizeof(struct prefix_info) == 32); --- a/include/net/inet_ecn.h +++ b/include/net/inet_ecn.h -@@ -138,9 +138,9 @@ static inline int IP6_ECN_set_ce(struct +@@ -152,9 +152,9 @@ static inline int IP6_ECN_set_ce(struct if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph))) return 0; @@ -623,7 +633,7 @@ SVN-Revision: 35130 /* * Jumbo payload option, as described in RFC 2675 2. -@@ -642,8 +642,8 @@ static inline void __ipv6_addr_set_half( +@@ -650,8 +650,8 @@ static inline void __ipv6_addr_set_half( } #endif #endif @@ -634,7 +644,7 @@ SVN-Revision: 35130 } static inline void ipv6_addr_set(struct in6_addr *addr, -@@ -702,6 +702,8 @@ static inline bool ipv6_prefix_equal(con +@@ -710,6 +710,8 @@ static inline bool ipv6_prefix_equal(con const __be32 *a1 = addr1->s6_addr32; const __be32 *a2 = addr2->s6_addr32; unsigned int pdw, pbi; @@ -643,7 +653,7 @@ SVN-Revision: 35130 /* check complete u32 in prefix */ pdw = prefixlen >> 5; -@@ -710,7 +712,9 @@ static inline bool ipv6_prefix_equal(con +@@ -718,7 +720,9 @@ static inline bool ipv6_prefix_equal(con /* check incomplete u32 in prefix */ pbi = prefixlen & 0x1f; @@ -654,7 +664,7 @@ SVN-Revision: 35130 return false; return true; -@@ -827,13 +831,13 @@ static inline void ipv6_addr_set_v4mappe +@@ -835,13 +839,13 @@ static inline void ipv6_addr_set_v4mappe */ static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen) { @@ -670,7 +680,7 @@ SVN-Revision: 35130 if (xb) return i * 32 + 31 - __fls(ntohl(xb)); } -@@ -1028,17 +1032,18 @@ static inline u32 ip6_multipath_hash_fie +@@ -1036,17 +1040,18 @@ static inline u32 ip6_multipath_hash_fie static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass, __be32 flowlabel) { @@ -701,10 +711,10 @@ SVN-Revision: 35130 +#include struct net; - + extern struct net init_net; --- a/include/uapi/linux/in.h +++ b/include/uapi/linux/in.h -@@ -93,7 +93,7 @@ enum { +@@ -95,7 +95,7 @@ enum { /* Internet address. */ struct in_addr { __be32 s_addr; @@ -750,7 +760,7 @@ SVN-Revision: 35130 EXPORT_SYMBOL(xfrm_parse_spi); --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -4337,14 +4337,16 @@ static bool tcp_parse_aligned_timestamp( +@@ -4413,14 +4413,16 @@ static bool tcp_parse_aligned_timestamp( { const __be32 *ptr = (const __be32 *)(th + 1); @@ -784,7 +794,7 @@ SVN-Revision: 35130 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h -@@ -287,8 +287,10 @@ static inline bool neigh_key_eq128(const +@@ -294,8 +294,10 @@ static inline bool neigh_key_eq128(const const u32 *n32 = (const u32 *)n->primary_key; const u32 *p32 = pkey; @@ -866,7 +876,7 @@ SVN-Revision: 35130 iph->daddr == iph2->daddr && iph->saddr == iph2->saddr) return segs; -@@ -268,7 +268,7 @@ struct sk_buff *tcp_gro_lookup(struct li +@@ -272,7 +272,7 @@ struct sk_buff *tcp_gro_lookup(struct li continue; th2 = tcp_hdr(p); @@ -875,8 +885,8 @@ SVN-Revision: 35130 NAPI_GRO_CB(p)->same_flow = 0; continue; } -@@ -332,8 +332,8 @@ struct sk_buff *tcp_gro_receive(struct l - ~(TCP_FLAG_CWR | TCP_FLAG_FIN | TCP_FLAG_PSH)); +@@ -336,8 +336,8 @@ struct sk_buff *tcp_gro_receive(struct l + ~(TCP_FLAG_FIN | TCP_FLAG_PSH)); flush |= (__force int)(th->ack_seq ^ th2->ack_seq); for (i = sizeof(*th); i < thlen; i += 4) - flush |= *(u32 *)((u8 *)th + i) ^ diff --git a/target/linux/ath79/patches-6.18/910-mikrotik-rb4xx.patch b/target/linux/ath79/patches-6.18/910-mikrotik-rb4xx.patch index 56c42681584..7c1954d2833 100644 --- a/target/linux/ath79/patches-6.18/910-mikrotik-rb4xx.patch +++ b/target/linux/ath79/patches-6.18/910-mikrotik-rb4xx.patch @@ -45,7 +45,7 @@ Submitted-by: Christopher Hill --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig -@@ -2354,6 +2354,14 @@ config RAVE_SP_CORE +@@ -2436,6 +2436,14 @@ config RAVE_SP_CORE Select this to get support for the Supervisory Processor device found on several devices in RAVE line of hardware. @@ -62,7 +62,7 @@ Submitted-by: Christopher Hill depends on PCI && MIPS && 64BIT --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile -@@ -276,6 +276,7 @@ obj-$(CONFIG_MFD_KHADAS_MCU) += khadas- +@@ -282,6 +282,7 @@ obj-$(CONFIG_MFD_KHADAS_MCU) += khadas- obj-$(CONFIG_MFD_ACER_A500_EC) += acer-ec-a500.o obj-$(CONFIG_MFD_QCOM_PM8008) += qcom-pm8008.o @@ -72,7 +72,7 @@ Submitted-by: Christopher Hill obj-$(CONFIG_MFD_SMPRO) += smpro-core.o --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig -@@ -1772,6 +1772,12 @@ config GPIO_SODAVILLE +@@ -1872,6 +1872,12 @@ config GPIO_SODAVILLE help Say Y here to support Intel Sodaville GPIO. @@ -87,8 +87,8 @@ Submitted-by: Christopher Hill menu "SPI GPIO expanders" --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile -@@ -137,6 +137,7 @@ obj-$(CONFIG_GPIO_PL061) += gpio-pl061. - obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio-pmic-eic-sprd.o +@@ -148,6 +148,7 @@ obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio + obj-$(CONFIG_GPIO_POLARFIRE_SOC) += gpio-mpfs.o obj-$(CONFIG_GPIO_PXA) += gpio-pxa.o obj-$(CONFIG_GPIO_RASPBERRYPI_EXP) += gpio-raspberrypi-exp.o +obj-$(CONFIG_GPIO_RB4XX) += gpio-rb4xx.o @@ -97,7 +97,7 @@ Submitted-by: Christopher Hill obj-$(CONFIG_GPIO_RDA) += gpio-rda.o --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig -@@ -556,4 +556,11 @@ config MTD_NAND_AR934X +@@ -545,4 +545,11 @@ config MTD_NAND_AR934X Enables support for NAND controller on Qualcomm Atheros SoCs. This controller is found on AR934x and QCA955x SoCs. @@ -111,9 +111,9 @@ Submitted-by: Christopher Hill endif # MTD_RAW_NAND --- a/drivers/mtd/nand/raw/Makefile +++ b/drivers/mtd/nand/raw/Makefile -@@ -59,6 +59,7 @@ obj-$(CONFIG_MTD_NAND_ROCKCHIP) += rock - obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-nand-controller.o - obj-$(CONFIG_MTD_NAND_RENESAS) += renesas-nand-controller.o +@@ -60,6 +60,7 @@ obj-$(CONFIG_MTD_NAND_RENESAS) += renes + obj-$(CONFIG_MTD_NAND_NUVOTON_MA35) += nuvoton-ma35d1-nand-controller.o + obj-$(CONFIG_MTD_NAND_LOONGSON) += loongson-nand-controller.o obj-$(CONFIG_MTD_NAND_AR934X) += ar934x_nand.o +obj-$(CONFIG_MTD_NAND_RB4XX) += nand_rb4xx.o diff --git a/target/linux/ath79/patches-6.18/911-mikrotik-rb91x.patch b/target/linux/ath79/patches-6.18/911-mikrotik-rb91x.patch index 430189dc588..6379c0628b0 100644 --- a/target/linux/ath79/patches-6.18/911-mikrotik-rb91x.patch +++ b/target/linux/ath79/patches-6.18/911-mikrotik-rb91x.patch @@ -29,7 +29,7 @@ Tested-by: Koen Vandeputte --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig -@@ -398,6 +398,12 @@ config GPIO_IXP4XX +@@ -418,6 +418,12 @@ config GPIO_IXP4XX If unsure, say N. @@ -42,7 +42,7 @@ Tested-by: Koen Vandeputte config GPIO_LOGICVC tristate "Xylon LogiCVC GPIO support" depends on MFD_SYSCON && OF -@@ -555,6 +561,10 @@ config GPIO_PXA +@@ -583,6 +589,10 @@ config GPIO_PXA help Say yes here to support the PXA GPIO device. @@ -55,7 +55,7 @@ Tested-by: Koen Vandeputte depends on ARCH_RENESAS || COMPILE_TEST --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile -@@ -84,6 +84,7 @@ obj-$(CONFIG_GPIO_IXP4XX) += gpio-ixp4x +@@ -89,6 +89,7 @@ obj-$(CONFIG_GPIO_IXP4XX) += gpio-ixp4x obj-$(CONFIG_GPIO_JANZ_TTL) += gpio-janz-ttl.o obj-$(CONFIG_GPIO_KEMPLD) += gpio-kempld.o obj-$(CONFIG_GPIO_LATCH) += gpio-latch.o @@ -63,7 +63,7 @@ Tested-by: Koen Vandeputte obj-$(CONFIG_GPIO_LINE_MUX) += gpio-line-mux.o obj-$(CONFIG_GPIO_LJCA) += gpio-ljca.o obj-$(CONFIG_GPIO_LOGICVC) += gpio-logicvc.o -@@ -138,6 +139,7 @@ obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio +@@ -149,6 +150,7 @@ obj-$(CONFIG_GPIO_POLARFIRE_SOC) += gpio obj-$(CONFIG_GPIO_PXA) += gpio-pxa.o obj-$(CONFIG_GPIO_RASPBERRYPI_EXP) += gpio-raspberrypi-exp.o obj-$(CONFIG_GPIO_RB4XX) += gpio-rb4xx.o @@ -73,7 +73,7 @@ Tested-by: Koen Vandeputte obj-$(CONFIG_GPIO_RDA) += gpio-rda.o --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig -@@ -563,4 +563,10 @@ config MTD_NAND_RB4XX +@@ -552,4 +552,10 @@ config MTD_NAND_RB4XX Enables support for the NAND flash chip on Mikrotik Routerboard RB4xx series. @@ -86,8 +86,8 @@ Tested-by: Koen Vandeputte endif # MTD_RAW_NAND --- a/drivers/mtd/nand/raw/Makefile +++ b/drivers/mtd/nand/raw/Makefile -@@ -60,6 +60,7 @@ obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-n - obj-$(CONFIG_MTD_NAND_RENESAS) += renesas-nand-controller.o +@@ -61,6 +61,7 @@ obj-$(CONFIG_MTD_NAND_NUVOTON_MA35) += n + obj-$(CONFIG_MTD_NAND_LOONGSON) += loongson-nand-controller.o obj-$(CONFIG_MTD_NAND_AR934X) += ar934x_nand.o obj-$(CONFIG_MTD_NAND_RB4XX) += nand_rb4xx.o +obj-$(CONFIG_MTD_NAND_RB91X) += rb91x_nand.o