[openwrt/openwrt] generic: 6.1: refresh pending patches

LEDE Commits lede-commits at lists.infradead.org
Mon May 22 13:40:31 PDT 2023


ansuel pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/4ed347aaad5de7b50d047f29aa99138b9b265daa

commit 4ed347aaad5de7b50d047f29aa99138b9b265daa
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Mon May 22 18:07:49 2023 +0200

    generic: 6.1: refresh pending patches
    
    Refresh pending patches with make target/linux/refresh.
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 ...only-include-asm-rwonce.h-for-kernel-code.patch |  8 ++---
 ...rocess-negative-stack-offsets-on-stack-tr.patch |  2 +-
 .../pending-6.1/103-kbuild-export-SUBARCH.patch    |  2 +-
 ...Add-Silicon-Labs-EM3581-device-compatible.patch |  4 +--
 ...Add-Silicon-Labs-SI3210-device-compatible.patch |  4 +--
 ...c_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch |  2 +-
 ...dynamically-allocate-note.data-in-parse_e.patch |  6 ++--
 ...-bridge_allow_receiption_on_disabled_port.patch |  8 ++---
 ...0-rtc-rs5c372-support_alarms_up_to_1_week.patch |  8 ++---
 ...let_the_alarm_to_be_used_as_wakeup_source.patch | 10 +++---
 .../pending-6.1/203-kallsyms_uncompressed.patch    | 20 ++++++------
 .../pending-6.1/205-backtrace_module_info.patch    |  4 +--
 ...unsane-filenames-from-deps_initramfs-list.patch |  2 +-
 .../270-platform-mikrotik-build-bits.patch         |  4 +--
 .../pending-6.1/300-mips_expose_boot_raw.patch     |  4 +--
 ...dd-barriers-between-dcache-icache-flushes.patch |  8 ++---
 .../pending-6.1/302-mips_no_branch_likely.patch    |  2 +-
 .../pending-6.1/305-mips_module_reloc.patch        |  8 ++---
 .../generic/pending-6.1/308-mips32r2_tune.patch    |  2 +-
 .../310-arm_module_unresolved_weak_sym.patch       |  2 +-
 ...ble-kernel-XZ-compression-option-on-PPC_8.patch |  2 +-
 ...irqchip-bcm-6345-l1-request-memory-region.patch |  4 +--
 .../pending-6.1/400-mtd-mtdsplit-support.patch     |  4 +--
 ...rite-support-for-minor-aligned-partitions.patch | 10 +++---
 .../pending-6.1/420-mtd-redboot_space.patch        |  2 +-
 .../430-mtd-add-myloader-partition-parser.patch    |  6 ++--
 .../435-mtd-add-routerbootpart-parser-config.patch |  4 +--
 .../460-mtd-cfi_cmdset_0002-no-erase_suspend.patch |  2 +-
 ..._cmdset_0002-add-buffer-write-cmd-timeout.patch |  2 +-
 ...465-m25p80-mx-disable-software-protection.patch |  4 +--
 .../476-mtd-spi-nor-add-eon-en25q128.patch         |  2 +-
 .../477-mtd-spi-nor-add-eon-en25qx128a.patch       |  2 +-
 .../479-mtd-spi-nor-add-xtx-xt25f128b.patch        |  9 +++---
 ...pi-nor-add-support-for-Gigadevice-GD25D05.patch |  2 +-
 .../pending-6.1/482-mtd-spi-nor-add-gd25q512.patch |  2 +-
 .../484-mtd-spi-nor-add-esmt-f25l16pa.patch        |  6 ++--
 .../485-mtd-spi-nor-add-xmc-xm25qh128c.patch       |  8 ++---
 ...d-spinand-add-support-for-ESMT-F50x1G41LB.patch |  4 +--
 ...spinand-Add-support-for-Etron-EM73D044VCx.patch |  6 ++--
 .../488-mtd-spi-nor-add-xmc-xm25qh64c.patch        |  2 +-
 ...tach-mtd-device-named-ubi-or-data-on-boot.patch |  4 +--
 ...bi-auto-create-ubiblock-device-for-rootfs.patch |  4 +--
 ...-mounting-ubi0-rootfs-in-init-do_mounts.c.patch |  4 +--
 ...-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch |  4 +--
 ...td-spi-nor-locking-support-for-MX25L6405D.patch |  6 ++--
 ...td-spi-nor-disable-16-bit-sr-for-macronix.patch |  2 +-
 .../530-jffs2_make_lzma_available.patch            |  6 ++--
 .../600-netfilter_conntrack_flush.patch            |  4 +--
 ...610-netfilter_match_bypass_default_checks.patch |  8 ++---
 .../611-netfilter_match_bypass_default_table.patch |  6 ++--
 .../pending-6.1/630-packet_socket_type.patch       | 16 +++++-----
 .../generic/pending-6.1/655-increase_skb_pad.patch |  2 +-
 .../666-Add-support-for-MAP-E-FMRs-mesh-mode.patch | 28 ++++++++---------
 ...jecting-with-source-address-failed-policy.patch | 36 +++++++++++-----------
 ...-defines-for-_POLICY_FAILED-until-all-cod.patch |  2 +-
 ...80-NET-skip-GRO-for-foreign-MAC-addresses.patch | 18 +++++------
 ...-of_net-add-mac-address-increment-support.patch |  3 +-
 ...ft_flow_offload-handle-netdevice-events-f.patch | 20 +++++-------
 ...ethernet-mtk_eth_soc-enable-threaded-NAPI.patch |  6 ++--
 ...-add-detach-callback-to-struct-phy_driver.patch |  4 +--
 ...ge-add-knob-for-filtering-rx-tx-BPDU-pack.patch | 20 ++++++------
 ...ltek-rtl8221-allow-to-configure-SERDES-mo.patch |  6 ++--
 ...ltek-support-switching-between-SGMII-and-.patch |  4 +--
 ...ensure-all-MACs-are-powered-down-before-r.patch |  2 +-
 ...altek-use-genphy_soft_reset-for-2.5G-PHYs.patch | 12 ++++----
 ...ek-disable-SGMII-in-band-AN-for-2-5G-PHYs.patch |  4 +--
 ...ltek-make-sure-paged-read-is-protected-by.patch |  2 +-
 ...ltek-use-inline-functions-for-10GbE-adver.patch |  4 +--
 ...ltek-check-validity-of-10GbE-link-partner.patch |  2 +-
 ...9-net-phy-realtek-introduce-rtl822x_probe.patch | 14 ++++-----
 ...-realtek-detect-early-version-of-RTL8221B.patch |  4 +--
 ...t-mediatek-ppe-add-support-for-flow-accou.patch | 34 ++++++++++----------
 ...ieee80211_ptr-even-with-no-CFG82111-suppo.patch | 13 ++------
 ...t-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch | 14 ++++-----
 ...t-mtk_eth_soc-work-around-issue-with-send.patch |  6 ++--
 ...t-mtk_eth_soc-fix-remaining-throughput-re.patch |  4 +--
 ...t-mtk_eth_soc-ppe-fix-L2-offloading-with-.patch |  2 +-
 ...t-mtk_eth_soc-add-code-for-offloading-flo.patch |  6 ++--
 ...t-mediatek-mtk_ppe-prefer-newly-added-l2-.patch |  2 +-
 ...t-mtk_eth_soc-improve-keeping-track-of-of.patch | 18 +++++------
 ...t-mediatek-fix-ppe-flow-accounting-for-L2.patch | 20 ++++++------
 ...t-mediatek-fix-ppe-flow-accounting-for-v1.patch |  4 +--
 ...d-optional-threading-for-backlog-processi.patch | 36 +++++++++++-----------
 ...xxx-Request-assisted-learning-on-CPU-port.patch |  2 +-
 ...et-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch |  4 +--
 .../773-net-dsa-b53-mmap-add-more-63xx-SoCs.patch  |  2 +-
 ...-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch |  8 ++---
 ...net-dsa-b53-mdio-add-support-for-BCM53134.patch | 14 ++++-----
 ...d-add-missing-linux-if_ether.h-for-ETH_AL.patch |  2 +-
 .../790-bus-mhi-core-add-SBL-state-callback.patch  |  2 +-
 ...30-register-OF-node-for-internal-MDIO-bus.patch |  4 +--
 ...pio-gpio-cascade-add-generic-GPIO-cascade.patch |  4 +--
 ...rovide-old-opp-to-config_clks-on-_set_opp.patch | 25 +++++----------
 .../810-pci_disable_common_quirks.patch            |  8 ++---
 .../811-pci_disable_usb_common_quirks.patch        |  2 +-
 .../generic/pending-6.1/834-ledtrig-libata.patch   | 22 ++++++-------
 ...k-Make-main-irq_chip-structure-a-static-d.patch |  8 ++---
 .../generic/pending-6.1/920-mangle_bootargs.patch  |  6 ++--
 98 files changed, 348 insertions(+), 374 deletions(-)

diff --git a/target/linux/generic/pending-6.1/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch b/target/linux/generic/pending-6.1/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch
index 22f52c1d46..7b342e6962 100644
--- a/target/linux/generic/pending-6.1/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch
+++ b/target/linux/generic/pending-6.1/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch
@@ -11,16 +11,16 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/include/linux/compiler.h
 +++ b/include/linux/compiler.h
-@@ -220,6 +220,8 @@ void ftrace_likely_update(struct ftrace_
- #define function_nocfi(x) (x)
- #endif
+@@ -203,6 +203,8 @@ void ftrace_likely_update(struct ftrace_
+ 	__v;								\
+ })
  
 +#include <asm/rwonce.h>
 +
  #endif /* __KERNEL__ */
  
  /*
-@@ -252,6 +254,4 @@ static inline void *offset_to_ptr(const
+@@ -243,6 +245,4 @@ static inline void *offset_to_ptr(const
   */
  #define prevent_tail_call_optimization()	mb()
  
diff --git a/target/linux/generic/pending-6.1/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch b/target/linux/generic/pending-6.1/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch
index 95a9656d26..7ce3d491cd 100644
--- a/target/linux/generic/pending-6.1/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch
+++ b/target/linux/generic/pending-6.1/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch
@@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/arch/mips/kernel/process.c
 +++ b/arch/mips/kernel/process.c
-@@ -393,6 +393,8 @@ static inline int is_sp_move_ins(union m
+@@ -394,6 +394,8 @@ static inline int is_sp_move_ins(union m
  
  	if (ip->i_format.opcode == addiu_op ||
  	    ip->i_format.opcode == daddiu_op) {
diff --git a/target/linux/generic/pending-6.1/103-kbuild-export-SUBARCH.patch b/target/linux/generic/pending-6.1/103-kbuild-export-SUBARCH.patch
index 513e394092..e6480ac03e 100644
--- a/target/linux/generic/pending-6.1/103-kbuild-export-SUBARCH.patch
+++ b/target/linux/generic/pending-6.1/103-kbuild-export-SUBARCH.patch
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -523,7 +523,7 @@ KBUILD_LDFLAGS_MODULE :=
+@@ -606,7 +606,7 @@ endif
  # Allows the usage of unstable features in stable compilers.
  export RUSTC_BOOTSTRAP := 1
  
diff --git a/target/linux/generic/pending-6.1/110-v6.3-0001-spidev-Add-Silicon-Labs-EM3581-device-compatible.patch b/target/linux/generic/pending-6.1/110-v6.3-0001-spidev-Add-Silicon-Labs-EM3581-device-compatible.patch
index c2940b601b..ebeeae2f8f 100644
--- a/target/linux/generic/pending-6.1/110-v6.3-0001-spidev-Add-Silicon-Labs-EM3581-device-compatible.patch
+++ b/target/linux/generic/pending-6.1/110-v6.3-0001-spidev-Add-Silicon-Labs-EM3581-device-compatible.patch
@@ -14,7 +14,7 @@ Signed-off-by: Vincent Tremblay <vincent at vtremblay.dev>
 
 --- a/drivers/spi/spidev.c
 +++ b/drivers/spi/spidev.c
-@@ -691,6 +691,7 @@ static const struct spi_device_id spidev
+@@ -700,6 +700,7 @@ static const struct spi_device_id spidev
  	{ .name = "m53cpld" },
  	{ .name = "spi-petra" },
  	{ .name = "spi-authenta" },
@@ -22,7 +22,7 @@ Signed-off-by: Vincent Tremblay <vincent at vtremblay.dev>
  	{},
  };
  MODULE_DEVICE_TABLE(spi, spidev_spi_ids);
-@@ -705,6 +706,7 @@ static const struct of_device_id spidev_
+@@ -726,6 +727,7 @@ static const struct of_device_id spidev_
  	{ .compatible = "menlo,m53cpld", .data = &spidev_of_check },
  	{ .compatible = "cisco,spi-petra", .data = &spidev_of_check },
  	{ .compatible = "micron,spi-authenta", .data = &spidev_of_check },
diff --git a/target/linux/generic/pending-6.1/110-v6.3-0002-spidev-Add-Silicon-Labs-SI3210-device-compatible.patch b/target/linux/generic/pending-6.1/110-v6.3-0002-spidev-Add-Silicon-Labs-SI3210-device-compatible.patch
index d88e5106c1..db5b5800f4 100644
--- a/target/linux/generic/pending-6.1/110-v6.3-0002-spidev-Add-Silicon-Labs-SI3210-device-compatible.patch
+++ b/target/linux/generic/pending-6.1/110-v6.3-0002-spidev-Add-Silicon-Labs-SI3210-device-compatible.patch
@@ -14,7 +14,7 @@ Signed-off-by: Vincent Tremblay <vincent at vtremblay.dev>
 
 --- a/drivers/spi/spidev.c
 +++ b/drivers/spi/spidev.c
-@@ -692,6 +692,7 @@ static const struct spi_device_id spidev
+@@ -701,6 +701,7 @@ static const struct spi_device_id spidev
  	{ .name = "spi-petra" },
  	{ .name = "spi-authenta" },
  	{ .name = "em3581" },
@@ -22,7 +22,7 @@ Signed-off-by: Vincent Tremblay <vincent at vtremblay.dev>
  	{},
  };
  MODULE_DEVICE_TABLE(spi, spidev_spi_ids);
-@@ -707,6 +708,7 @@ static const struct of_device_id spidev_
+@@ -728,6 +729,7 @@ static const struct of_device_id spidev_
  	{ .compatible = "cisco,spi-petra", .data = &spidev_of_check },
  	{ .compatible = "micron,spi-authenta", .data = &spidev_of_check },
  	{ .compatible = "silabs,em3581", .data = &spidev_of_check },
diff --git a/target/linux/generic/pending-6.1/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch b/target/linux/generic/pending-6.1/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
index 4e347a4671..c381bcf8e1 100644
--- a/target/linux/generic/pending-6.1/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
+++ b/target/linux/generic/pending-6.1/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
@@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO at vplace.de>
 
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
-@@ -7556,7 +7556,7 @@ static void __init alloc_node_mem_map(st
+@@ -7911,7 +7911,7 @@ static void __init alloc_node_mem_map(st
  	if (pgdat == NODE_DATA(0)) {
  		mem_map = NODE_DATA(0)->node_mem_map;
  		if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
diff --git a/target/linux/generic/pending-6.1/130-binfmt_elf-dynamically-allocate-note.data-in-parse_e.patch b/target/linux/generic/pending-6.1/130-binfmt_elf-dynamically-allocate-note.data-in-parse_e.patch
index f04007e982..8ec51a9977 100644
--- a/target/linux/generic/pending-6.1/130-binfmt_elf-dynamically-allocate-note.data-in-parse_e.patch
+++ b/target/linux/generic/pending-6.1/130-binfmt_elf-dynamically-allocate-note.data-in-parse_e.patch
@@ -26,7 +26,7 @@ Cc: stable at vger.kernel.org # v5.8+
 
 --- a/fs/binfmt_elf.c
 +++ b/fs/binfmt_elf.c
-@@ -768,7 +768,7 @@ static int parse_elf_properties(struct f
+@@ -769,7 +769,7 @@ static int parse_elf_properties(struct f
  {
  	union {
  		struct elf_note nhdr;
@@ -35,7 +35,7 @@ Cc: stable at vger.kernel.org # v5.8+
  	} note;
  	loff_t pos;
  	ssize_t n;
-@@ -788,26 +788,38 @@ static int parse_elf_properties(struct f
+@@ -789,26 +789,38 @@ static int parse_elf_properties(struct f
  	if (phdr->p_filesz > sizeof(note))
  		return -ENOEXEC;
  
@@ -83,7 +83,7 @@ Cc: stable at vger.kernel.org # v5.8+
  	datasz = off + note.nhdr.n_descsz;
  
  	have_prev_type = false;
-@@ -817,6 +829,8 @@ static int parse_elf_properties(struct f
+@@ -818,6 +830,8 @@ static int parse_elf_properties(struct f
  		have_prev_type = true;
  	} while (!ret);
  
diff --git a/target/linux/generic/pending-6.1/150-bridge_allow_receiption_on_disabled_port.patch b/target/linux/generic/pending-6.1/150-bridge_allow_receiption_on_disabled_port.patch
index 9968a79699..93a2d146b5 100644
--- a/target/linux/generic/pending-6.1/150-bridge_allow_receiption_on_disabled_port.patch
+++ b/target/linux/generic/pending-6.1/150-bridge_allow_receiption_on_disabled_port.patch
@@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/net/bridge/br_input.c
 +++ b/net/bridge/br_input.c
-@@ -204,6 +204,9 @@ static void __br_handle_local_finish(str
+@@ -222,6 +222,9 @@ static void __br_handle_local_finish(str
  /* note: already called with rcu_read_lock */
  static int br_handle_local_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
  {
@@ -25,9 +25,9 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	__br_handle_local_finish(skb);
  
  	/* return 1 to signal the okfn() was called so it's ok to use the skb */
-@@ -369,6 +372,17 @@ static rx_handler_result_t br_handle_fra
+@@ -390,6 +393,17 @@ forward:
+ 		goto defer_stp_filtering;
  
- forward:
  	switch (p->state) {
 +	case BR_STATE_DISABLED:
 +		if (ether_addr_equal(p->br->dev->dev_addr, dest))
@@ -42,4 +42,4 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +
  	case BR_STATE_FORWARDING:
  	case BR_STATE_LEARNING:
- 		if (ether_addr_equal(p->br->dev->dev_addr, dest))
+ defer_stp_filtering:
diff --git a/target/linux/generic/pending-6.1/190-rtc-rs5c372-support_alarms_up_to_1_week.patch b/target/linux/generic/pending-6.1/190-rtc-rs5c372-support_alarms_up_to_1_week.patch
index 13b79b5c09..2f5c2228c7 100644
--- a/target/linux/generic/pending-6.1/190-rtc-rs5c372-support_alarms_up_to_1_week.patch
+++ b/target/linux/generic/pending-6.1/190-rtc-rs5c372-support_alarms_up_to_1_week.patch
@@ -14,7 +14,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu at gmail.com>
 
 --- a/drivers/rtc/rtc-rs5c372.c
 +++ b/drivers/rtc/rtc-rs5c372.c
-@@ -393,7 +393,9 @@ static int rs5c_read_alarm(struct device
+@@ -399,7 +399,9 @@ static int rs5c_read_alarm(struct device
  {
  	struct i2c_client	*client = to_i2c_client(dev);
  	struct rs5c372		*rs5c = i2c_get_clientdata(client);
@@ -25,7 +25,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu at gmail.com>
  
  	status = rs5c_get_regs(rs5c);
  	if (status < 0)
-@@ -403,6 +405,30 @@ static int rs5c_read_alarm(struct device
+@@ -409,6 +411,30 @@ static int rs5c_read_alarm(struct device
  	t->time.tm_sec = 0;
  	t->time.tm_min = bcd2bin(rs5c->regs[RS5C_REG_ALARM_A_MIN] & 0x7f);
  	t->time.tm_hour = rs5c_reg2hr(rs5c, rs5c->regs[RS5C_REG_ALARM_A_HOURS]);
@@ -56,7 +56,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu at gmail.com>
  
  	/* ... and status */
  	t->enabled = !!(rs5c->regs[RS5C_REG_CTRL1] & RS5C_CTRL1_AALE);
-@@ -417,12 +443,20 @@ static int rs5c_set_alarm(struct device
+@@ -423,12 +449,20 @@ static int rs5c_set_alarm(struct device
  	struct rs5c372		*rs5c = i2c_get_clientdata(client);
  	int			status, addr, i;
  	unsigned char		buf[3];
@@ -81,7 +81,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu at gmail.com>
  
  	/* REVISIT: round up tm_sec */
  
-@@ -443,7 +477,9 @@ static int rs5c_set_alarm(struct device
+@@ -449,7 +483,9 @@ static int rs5c_set_alarm(struct device
  	/* set alarm */
  	buf[0] = bin2bcd(t->time.tm_min);
  	buf[1] = rs5c_hr2reg(rs5c, t->time.tm_hour);
diff --git a/target/linux/generic/pending-6.1/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch b/target/linux/generic/pending-6.1/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch
index a934af402e..a9a5cdf8ba 100644
--- a/target/linux/generic/pending-6.1/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch
+++ b/target/linux/generic/pending-6.1/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch
@@ -17,7 +17,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu at gmail.com>
 
 --- a/drivers/rtc/rtc-rs5c372.c
 +++ b/drivers/rtc/rtc-rs5c372.c
-@@ -654,6 +654,7 @@ static int rs5c372_probe(struct i2c_clie
+@@ -833,6 +833,7 @@ static int rs5c372_probe(struct i2c_clie
  	int err = 0;
  	int smbus_mode = 0;
  	struct rs5c372 *rs5c372;
@@ -25,7 +25,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu at gmail.com>
  
  	dev_dbg(&client->dev, "%s\n", __func__);
  
-@@ -689,6 +690,12 @@ static int rs5c372_probe(struct i2c_clie
+@@ -868,6 +869,12 @@ static int rs5c372_probe(struct i2c_clie
  	else
  		rs5c372->type = id->driver_data;
  
@@ -38,7 +38,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu at gmail.com>
  	/* we read registers 0x0f then 0x00-0x0f; skip the first one */
  	rs5c372->regs = &rs5c372->buf[1];
  	rs5c372->smbus = smbus_mode;
-@@ -722,6 +729,8 @@ static int rs5c372_probe(struct i2c_clie
+@@ -901,6 +908,8 @@ static int rs5c372_probe(struct i2c_clie
  		goto exit;
  	}
  
@@ -47,7 +47,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu at gmail.com>
  	/* if the oscillator lost power and no other software (like
  	 * the bootloader) set it up, do it here.
  	 *
-@@ -748,6 +757,10 @@ static int rs5c372_probe(struct i2c_clie
+@@ -927,6 +936,10 @@ static int rs5c372_probe(struct i2c_clie
  			);
  
  	/* REVISIT use client->irq to register alarm irq ... */
@@ -58,7 +58,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu at gmail.com>
  	rs5c372->rtc = devm_rtc_device_register(&client->dev,
  					rs5c372_driver.driver.name,
  					&rs5c372_rtc_ops, THIS_MODULE);
-@@ -761,6 +774,10 @@ static int rs5c372_probe(struct i2c_clie
+@@ -940,6 +953,10 @@ static int rs5c372_probe(struct i2c_clie
  	if (err)
  		goto exit;
  
diff --git a/target/linux/generic/pending-6.1/203-kallsyms_uncompressed.patch b/target/linux/generic/pending-6.1/203-kallsyms_uncompressed.patch
index bc9fdda9f1..7b7aea0601 100644
--- a/target/linux/generic/pending-6.1/203-kallsyms_uncompressed.patch
+++ b/target/linux/generic/pending-6.1/203-kallsyms_uncompressed.patch
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1447,6 +1447,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
+@@ -1481,6 +1481,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
  	  the unaligned access emulation.
  	  see arch/parisc/kernel/unaligned.c for reference
  
@@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
 --- a/kernel/kallsyms.c
 +++ b/kernel/kallsyms.c
-@@ -80,6 +80,11 @@ static unsigned int kallsyms_expand_symb
+@@ -69,6 +69,11 @@ static unsigned int kallsyms_expand_symb
  	 * For every byte on the compressed symbol data, copy the table
  	 * entry for that byte.
  	 */
@@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	while (len) {
  		tptr = &kallsyms_token_table[kallsyms_token_index[*data]];
  		data++;
-@@ -112,6 +117,9 @@ tail:
+@@ -101,6 +106,9 @@ tail:
   */
  static char kallsyms_get_symbol_type(unsigned int off)
  {
@@ -57,7 +57,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	 * and return the first char from this token.
 --- a/scripts/kallsyms.c
 +++ b/scripts/kallsyms.c
-@@ -58,6 +58,7 @@ static struct addr_range percpu_range =
+@@ -75,6 +75,7 @@ static struct addr_range percpu_range =
  static struct sym_entry **table;
  static unsigned int table_size, table_cnt;
  static int all_symbols;
@@ -65,7 +65,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  static int absolute_percpu;
  static int base_relative;
  
-@@ -486,6 +487,9 @@ static void write_src(void)
+@@ -535,6 +536,9 @@ static void write_src(void)
  
  	free(markers);
  
@@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	output_label("kallsyms_token_table");
  	off = 0;
  	for (i = 0; i < 256; i++) {
-@@ -537,6 +541,9 @@ static unsigned char *find_token(unsigne
+@@ -586,6 +590,9 @@ static unsigned char *find_token(unsigne
  {
  	int i;
  
@@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	for (i = 0; i < len - 1; i++) {
  		if (str[i] == token[0] && str[i+1] == token[1])
  			return &str[i];
-@@ -609,6 +616,9 @@ static void optimize_result(void)
+@@ -658,6 +665,9 @@ static void optimize_result(void)
  {
  	int i, best;
  
@@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	/* using the '\0' symbol last allows compress_symbols to use standard
  	 * fast string functions */
  	for (i = 255; i >= 0; i--) {
-@@ -773,6 +783,7 @@ int main(int argc, char **argv)
+@@ -818,6 +828,7 @@ int main(int argc, char **argv)
  			{"all-symbols",     no_argument, &all_symbols,     1},
  			{"absolute-percpu", no_argument, &absolute_percpu, 1},
  			{"base-relative",   no_argument, &base_relative,   1},
@@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
 --- a/scripts/link-vmlinux.sh
 +++ b/scripts/link-vmlinux.sh
-@@ -266,6 +266,10 @@ kallsyms()
+@@ -156,6 +156,10 @@ kallsyms()
  		kallsymopt="${kallsymopt} --base-relative"
  	fi
  
@@ -114,5 +114,5 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +	fi
 +
  	info KSYMS ${2}
- 	${NM} -n ${1} | scripts/kallsyms ${kallsymopt} > ${2}
+ 	scripts/kallsyms ${kallsymopt} ${1} > ${2}
  }
diff --git a/target/linux/generic/pending-6.1/205-backtrace_module_info.patch b/target/linux/generic/pending-6.1/205-backtrace_module_info.patch
index 6379ce071d..27a1347981 100644
--- a/target/linux/generic/pending-6.1/205-backtrace_module_info.patch
+++ b/target/linux/generic/pending-6.1/205-backtrace_module_info.patch
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/lib/vsprintf.c
 +++ b/lib/vsprintf.c
-@@ -1003,8 +1003,10 @@ char *symbol_string(char *buf, char *end
+@@ -985,8 +985,10 @@ char *symbol_string(char *buf, char *end
  		    struct printf_spec spec, const char *fmt)
  {
  	unsigned long value;
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #endif
  
  	if (fmt[1] == 'R')
-@@ -1025,8 +1027,14 @@ char *symbol_string(char *buf, char *end
+@@ -1007,8 +1009,14 @@ char *symbol_string(char *buf, char *end
  
  	return string_nocheck(buf, end, sym, spec);
  #else
diff --git a/target/linux/generic/pending-6.1/240-remove-unsane-filenames-from-deps_initramfs-list.patch b/target/linux/generic/pending-6.1/240-remove-unsane-filenames-from-deps_initramfs-list.patch
index 29cfade716..9e78284ecf 100644
--- a/target/linux/generic/pending-6.1/240-remove-unsane-filenames-from-deps_initramfs-list.patch
+++ b/target/linux/generic/pending-6.1/240-remove-unsane-filenames-from-deps_initramfs-list.patch
@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/usr/Makefile
 +++ b/usr/Makefile
-@@ -61,6 +61,8 @@ hostprogs := gen_init_cpio
+@@ -56,6 +56,8 @@ hostprogs := gen_init_cpio
  # The dependency list is generated by gen_initramfs.sh -l
  -include $(obj)/.initramfs_data.cpio.d
  
diff --git a/target/linux/generic/pending-6.1/270-platform-mikrotik-build-bits.patch b/target/linux/generic/pending-6.1/270-platform-mikrotik-build-bits.patch
index f847db983a..997e6142a7 100644
--- a/target/linux/generic/pending-6.1/270-platform-mikrotik-build-bits.patch
+++ b/target/linux/generic/pending-6.1/270-platform-mikrotik-build-bits.patch
@@ -16,7 +16,7 @@ Signed-off-by: Thibaut VARÈNE <hacks at slashdirt.org>
 
 --- a/drivers/platform/Kconfig
 +++ b/drivers/platform/Kconfig
-@@ -15,3 +15,5 @@ source "drivers/platform/mellanox/Kconfi
+@@ -16,3 +16,5 @@ source "drivers/platform/olpc/Kconfig"
  source "drivers/platform/surface/Kconfig"
  
  source "drivers/platform/x86/Kconfig"
@@ -24,7 +24,7 @@ Signed-off-by: Thibaut VARÈNE <hacks at slashdirt.org>
 +source "drivers/platform/mikrotik/Kconfig"
 --- a/drivers/platform/Makefile
 +++ b/drivers/platform/Makefile
-@@ -10,3 +10,4 @@ obj-$(CONFIG_OLPC_EC)		+= olpc/
+@@ -11,3 +11,4 @@ obj-$(CONFIG_OLPC_EC)		+= olpc/
  obj-$(CONFIG_GOLDFISH)		+= goldfish/
  obj-$(CONFIG_CHROME_PLATFORMS)	+= chrome/
  obj-$(CONFIG_SURFACE_PLATFORMS)	+= surface/
diff --git a/target/linux/generic/pending-6.1/300-mips_expose_boot_raw.patch b/target/linux/generic/pending-6.1/300-mips_expose_boot_raw.patch
index 05d024925d..a4413e919b 100644
--- a/target/linux/generic/pending-6.1/300-mips_expose_boot_raw.patch
+++ b/target/linux/generic/pending-6.1/300-mips_expose_boot_raw.patch
@@ -9,7 +9,7 @@ Acked-by: Rob Landley <rob at landley.net>
 ---
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1100,9 +1100,6 @@ config FW_ARC
+@@ -1032,9 +1032,6 @@ config FW_ARC
  config ARCH_MAY_HAVE_PC_FDC
  	bool
  
@@ -19,7 +19,7 @@ Acked-by: Rob Landley <rob at landley.net>
  config CEVT_BCM1480
  	bool
  
-@@ -3182,6 +3179,18 @@ choice
+@@ -3089,6 +3086,18 @@ choice
  		bool "Extend builtin kernel arguments with bootloader arguments"
  endchoice
  
diff --git a/target/linux/generic/pending-6.1/301-MIPS-Add-barriers-between-dcache-icache-flushes.patch b/target/linux/generic/pending-6.1/301-MIPS-Add-barriers-between-dcache-icache-flushes.patch
index 726c884027..bd56adad3a 100644
--- a/target/linux/generic/pending-6.1/301-MIPS-Add-barriers-between-dcache-icache-flushes.patch
+++ b/target/linux/generic/pending-6.1/301-MIPS-Add-barriers-between-dcache-icache-flushes.patch
@@ -26,7 +26,7 @@ Cc: James Hogan <james.hogan at imgtec.com>
 
 --- a/arch/mips/mm/c-r4k.c
 +++ b/arch/mips/mm/c-r4k.c
-@@ -515,6 +515,7 @@ static inline void local_r4k___flush_cac
+@@ -514,6 +514,7 @@ static inline void local_r4k___flush_cac
  
  	default:
  		r4k_blast_dcache();
@@ -34,7 +34,7 @@ Cc: James Hogan <james.hogan at imgtec.com>
  		r4k_blast_icache();
  		break;
  	}
-@@ -595,8 +596,10 @@ static inline void local_r4k_flush_cache
+@@ -594,8 +595,10 @@ static inline void local_r4k_flush_cache
  	if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc))
  		r4k_blast_dcache();
  	/* If executable, blast stale lines from icache */
@@ -46,7 +46,7 @@ Cc: James Hogan <james.hogan at imgtec.com>
  }
  
  static void r4k_flush_cache_range(struct vm_area_struct *vma,
-@@ -697,8 +700,13 @@ static inline void local_r4k_flush_cache
+@@ -696,8 +699,13 @@ static inline void local_r4k_flush_cache
  	if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc)) {
  		vaddr ? r4k_blast_dcache_page(addr) :
  			r4k_blast_dcache_user_page(addr);
@@ -61,7 +61,7 @@ Cc: James Hogan <james.hogan at imgtec.com>
  	}
  	if (exec) {
  		if (vaddr && cpu_has_vtag_icache && mm == current->active_mm) {
-@@ -765,6 +773,7 @@ static inline void __local_r4k_flush_ica
+@@ -764,6 +772,7 @@ static inline void __local_r4k_flush_ica
  			else
  				blast_dcache_range(start, end);
  		}
diff --git a/target/linux/generic/pending-6.1/302-mips_no_branch_likely.patch b/target/linux/generic/pending-6.1/302-mips_no_branch_likely.patch
index 271923fca8..542fba651f 100644
--- a/target/linux/generic/pending-6.1/302-mips_no_branch_likely.patch
+++ b/target/linux/generic/pending-6.1/302-mips_no_branch_likely.patch
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/arch/mips/Makefile
 +++ b/arch/mips/Makefile
-@@ -95,7 +95,7 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin
+@@ -94,7 +94,7 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin
  # machines may also.  Since BFD is incredibly buggy with respect to
  # crossformat linking we rely on the elf2ecoff tool for format conversion.
  #
diff --git a/target/linux/generic/pending-6.1/305-mips_module_reloc.patch b/target/linux/generic/pending-6.1/305-mips_module_reloc.patch
index bbea1f61c1..5de9019677 100644
--- a/target/linux/generic/pending-6.1/305-mips_module_reloc.patch
+++ b/target/linux/generic/pending-6.1/305-mips_module_reloc.patch
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/arch/mips/Makefile
 +++ b/arch/mips/Makefile
-@@ -98,8 +98,18 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin
+@@ -97,8 +97,18 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin
  cflags-y			+= -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely
  cflags-y			+= -msoft-float
  LDFLAGS_vmlinux			+= -G 0 -static -n -nostdlib
@@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  typedef uint8_t Elf64_Byte;		/* Type for a 8-bit quantity.  */
 --- a/arch/mips/kernel/module.c
 +++ b/arch/mips/kernel/module.c
-@@ -31,23 +31,261 @@ struct mips_hi16 {
+@@ -32,23 +32,261 @@ struct mips_hi16 {
  static LIST_HEAD(dbe_list);
  static DEFINE_SPINLOCK(dbe_lock);
  
@@ -309,7 +309,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	if (v % 4) {
  		pr_err("module %s: dangerous R_MIPS_26 relocation\n",
  		       me->name);
-@@ -55,13 +293,17 @@ static int apply_r_mips_26(struct module
+@@ -56,13 +294,17 @@ static int apply_r_mips_26(struct module
  	}
  
  	if ((v & 0xf0000000) != (((unsigned long)location + 4) & 0xf0000000)) {
@@ -331,7 +331,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  	return 0;
  }
-@@ -441,9 +683,36 @@ int module_finalize(const Elf_Ehdr *hdr,
+@@ -442,9 +684,36 @@ int module_finalize(const Elf_Ehdr *hdr,
  		list_add(&me->arch.dbe_list, &dbe_list);
  		spin_unlock_irq(&dbe_lock);
  	}
diff --git a/target/linux/generic/pending-6.1/308-mips32r2_tune.patch b/target/linux/generic/pending-6.1/308-mips32r2_tune.patch
index ef92a5dfb6..db410a6bc0 100644
--- a/target/linux/generic/pending-6.1/308-mips32r2_tune.patch
+++ b/target/linux/generic/pending-6.1/308-mips32r2_tune.patch
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/arch/mips/Makefile
 +++ b/arch/mips/Makefile
-@@ -175,7 +175,7 @@ cflags-$(CONFIG_CPU_VR41XX)	+= -march=r4
+@@ -172,7 +172,7 @@ cflags-$(CONFIG_CPU_R4300)	+= -march=r43
  cflags-$(CONFIG_CPU_R4X00)	+= -march=r4600 -Wa,--trap
  cflags-$(CONFIG_CPU_TX49XX)	+= -march=r4600 -Wa,--trap
  cflags-$(CONFIG_CPU_MIPS32_R1)	+= -march=mips32 -Wa,--trap
diff --git a/target/linux/generic/pending-6.1/310-arm_module_unresolved_weak_sym.patch b/target/linux/generic/pending-6.1/310-arm_module_unresolved_weak_sym.patch
index 191dc6ac3c..54cc9ba647 100644
--- a/target/linux/generic/pending-6.1/310-arm_module_unresolved_weak_sym.patch
+++ b/target/linux/generic/pending-6.1/310-arm_module_unresolved_weak_sym.patch
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/arch/arm/kernel/module.c
 +++ b/arch/arm/kernel/module.c
-@@ -105,6 +105,10 @@ apply_relocate(Elf32_Shdr *sechdrs, cons
+@@ -146,6 +146,10 @@ apply_relocate(Elf32_Shdr *sechdrs, cons
  			return -ENOEXEC;
  		}
  
diff --git a/target/linux/generic/pending-6.1/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch b/target/linux/generic/pending-6.1/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch
index 082b122cb4..e9b47d185d 100644
--- a/target/linux/generic/pending-6.1/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch
+++ b/target/linux/generic/pending-6.1/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch
@@ -14,7 +14,7 @@ Signed-off-by: Pawel Dembicki <paweldembicki at gmail.com>
 
 --- a/arch/powerpc/Kconfig
 +++ b/arch/powerpc/Kconfig
-@@ -221,7 +221,7 @@ config PPC
+@@ -229,7 +229,7 @@ config PPC
  	select HAVE_KERNEL_GZIP
  	select HAVE_KERNEL_LZMA			if DEFAULT_UIMAGE
  	select HAVE_KERNEL_LZO			if DEFAULT_UIMAGE
diff --git a/target/linux/generic/pending-6.1/351-irqchip-bcm-6345-l1-request-memory-region.patch b/target/linux/generic/pending-6.1/351-irqchip-bcm-6345-l1-request-memory-region.patch
index 9fad4f62c6..91654cc294 100644
--- a/target/linux/generic/pending-6.1/351-irqchip-bcm-6345-l1-request-memory-region.patch
+++ b/target/linux/generic/pending-6.1/351-irqchip-bcm-6345-l1-request-memory-region.patch
@@ -91,7 +91,7 @@ Acked-by: Florian Fainelli <f.fainelli at gmail.com>
 
 --- a/drivers/irqchip/irq-bcm6345-l1.c
 +++ b/drivers/irqchip/irq-bcm6345-l1.c
-@@ -261,6 +261,9 @@ static int __init bcm6345_l1_init_one(st
+@@ -257,6 +257,9 @@ static int __init bcm6345_l1_init_one(st
  	if (!cpu->map_base)
  		return -ENOMEM;
  
@@ -101,7 +101,7 @@ Acked-by: Florian Fainelli <f.fainelli at gmail.com>
  	for (i = 0; i < n_words; i++) {
  		cpu->enable_cache[i] = 0;
  		__raw_writel(0, cpu->map_base + reg_enable(intc, i));
-@@ -339,8 +342,7 @@ static int __init bcm6345_l1_of_init(str
+@@ -335,8 +338,7 @@ static int __init bcm6345_l1_of_init(str
  	for_each_cpu(idx, &intc->cpumask) {
  		struct bcm6345_l1_cpu *cpu = intc->cpus[idx];
  
diff --git a/target/linux/generic/pending-6.1/400-mtd-mtdsplit-support.patch b/target/linux/generic/pending-6.1/400-mtd-mtdsplit-support.patch
index 2360d6dcd0..c619d12ce5 100644
--- a/target/linux/generic/pending-6.1/400-mtd-mtdsplit-support.patch
+++ b/target/linux/generic/pending-6.1/400-mtd-mtdsplit-support.patch
@@ -264,7 +264,7 @@ Subject: [PATCH] mtd: mtdsplit support
   * one chunk. Do that by default.
 --- a/include/linux/mtd/mtd.h
 +++ b/include/linux/mtd/mtd.h
-@@ -620,6 +620,24 @@ static inline void mtd_align_erase_req(s
+@@ -615,6 +615,24 @@ static inline void mtd_align_erase_req(s
  		req->len += mtd->erasesize - mod;
  }
  
@@ -289,7 +289,7 @@ Subject: [PATCH] mtd: mtdsplit support
  static inline uint32_t mtd_div_by_ws(uint64_t sz, struct mtd_info *mtd)
  {
  	if (mtd->writesize_shift)
-@@ -685,6 +703,13 @@ extern void __put_mtd_device(struct mtd_
+@@ -688,6 +706,13 @@ extern struct mtd_info *of_get_mtd_devic
  extern struct mtd_info *get_mtd_device_nm(const char *name);
  extern void put_mtd_device(struct mtd_info *mtd);
  
diff --git a/target/linux/generic/pending-6.1/402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch b/target/linux/generic/pending-6.1/402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch
index d12bc9c3d5..f04da4000c 100644
--- a/target/linux/generic/pending-6.1/402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch
+++ b/target/linux/generic/pending-6.1/402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch
@@ -193,7 +193,7 @@ Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
  	default y
 --- a/drivers/mtd/spi-nor/core.c
 +++ b/drivers/mtd/spi-nor/core.c
-@@ -1271,6 +1271,8 @@ static u8 spi_nor_convert_3to4_erase(u8
+@@ -1049,6 +1049,8 @@ static u8 spi_nor_convert_3to4_erase(u8
  
  static bool spi_nor_has_uniform_erase(const struct spi_nor *nor)
  {
@@ -202,7 +202,7 @@ Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
  	return !!nor->params->erase_map.uniform_erase_type;
  }
  
-@@ -2400,6 +2402,7 @@ static int spi_nor_select_erase(struct s
+@@ -2157,6 +2159,7 @@ static int spi_nor_select_erase(struct s
  {
  	struct spi_nor_erase_map *map = &nor->params->erase_map;
  	const struct spi_nor_erase_type *erase = NULL;
@@ -210,7 +210,7 @@ Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
  	struct mtd_info *mtd = &nor->mtd;
  	u32 wanted_size = nor->info->sector_size;
  	int i;
-@@ -2432,8 +2435,9 @@ static int spi_nor_select_erase(struct s
+@@ -2189,8 +2192,9 @@ static int spi_nor_select_erase(struct s
  	 */
  	for (i = SNOR_ERASE_TYPE_MAX - 1; i >= 0; i--) {
  		if (map->erase_type[i].size) {
@@ -222,7 +222,7 @@ Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
  		}
  	}
  
-@@ -2441,6 +2445,9 @@ static int spi_nor_select_erase(struct s
+@@ -2198,6 +2202,9 @@ static int spi_nor_select_erase(struct s
  		return -EINVAL;
  
  	mtd->erasesize = erase->size;
@@ -234,7 +234,7 @@ Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
  
 --- a/include/linux/mtd/mtd.h
 +++ b/include/linux/mtd/mtd.h
-@@ -250,6 +250,8 @@ struct mtd_info {
+@@ -245,6 +245,8 @@ struct mtd_info {
  	 * information below if they desire
  	 */
  	uint32_t erasesize;
diff --git a/target/linux/generic/pending-6.1/420-mtd-redboot_space.patch b/target/linux/generic/pending-6.1/420-mtd-redboot_space.patch
index fee1936593..5518ea71dd 100644
--- a/target/linux/generic/pending-6.1/420-mtd-redboot_space.patch
+++ b/target/linux/generic/pending-6.1/420-mtd-redboot_space.patch
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/mtd/parsers/redboot.c
 +++ b/drivers/mtd/parsers/redboot.c
-@@ -277,14 +277,21 @@ nogood:
+@@ -278,14 +278,21 @@ nogood:
  #endif
  		names += strlen(names) + 1;
  
diff --git a/target/linux/generic/pending-6.1/430-mtd-add-myloader-partition-parser.patch b/target/linux/generic/pending-6.1/430-mtd-add-myloader-partition-parser.patch
index 8a6e630530..c8cf3f5d3b 100644
--- a/target/linux/generic/pending-6.1/430-mtd-add-myloader-partition-parser.patch
+++ b/target/linux/generic/pending-6.1/430-mtd-add-myloader-partition-parser.patch
@@ -10,7 +10,7 @@ Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
 
 --- a/drivers/mtd/parsers/Kconfig
 +++ b/drivers/mtd/parsers/Kconfig
-@@ -57,6 +57,22 @@ config MTD_CMDLINE_PARTS
+@@ -67,6 +67,22 @@ config MTD_CMDLINE_PARTS
  
  	  If unsure, say 'N'.
  
@@ -35,9 +35,9 @@ Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
  	default y
 --- a/drivers/mtd/parsers/Makefile
 +++ b/drivers/mtd/parsers/Makefile
-@@ -3,6 +3,7 @@ obj-$(CONFIG_MTD_AR7_PARTS)		+= ar7part.
- obj-$(CONFIG_MTD_BCM47XX_PARTS)		+= bcm47xxpart.o
+@@ -4,6 +4,7 @@ obj-$(CONFIG_MTD_BCM47XX_PARTS)		+= bcm4
  obj-$(CONFIG_MTD_BCM63XX_PARTS)		+= bcm63xxpart.o
+ obj-$(CONFIG_MTD_BRCM_U_BOOT)		+= brcm_u-boot.o
  obj-$(CONFIG_MTD_CMDLINE_PARTS)		+= cmdlinepart.o
 +obj-$(CONFIG_MTD_MYLOADER_PARTS)		+= myloader.o
  obj-$(CONFIG_MTD_OF_PARTS)		+= ofpart.o
diff --git a/target/linux/generic/pending-6.1/435-mtd-add-routerbootpart-parser-config.patch b/target/linux/generic/pending-6.1/435-mtd-add-routerbootpart-parser-config.patch
index ee949f73c0..a42dcc868f 100644
--- a/target/linux/generic/pending-6.1/435-mtd-add-routerbootpart-parser-config.patch
+++ b/target/linux/generic/pending-6.1/435-mtd-add-routerbootpart-parser-config.patch
@@ -16,7 +16,7 @@ Signed-off-by: Thibaut VARÈNE <hacks at slashdirt.org>
 
 --- a/drivers/mtd/parsers/Kconfig
 +++ b/drivers/mtd/parsers/Kconfig
-@@ -226,3 +226,12 @@ config MTD_SERCOMM_PARTS
+@@ -236,3 +236,12 @@ config MTD_SERCOMM_PARTS
  	  partition map. This partition table contains real partition
  	  offsets, which may differ from device to device depending on the
  	  number and location of bad blocks on NAND.
@@ -31,7 +31,7 @@ Signed-off-by: Thibaut VARÈNE <hacks at slashdirt.org>
 +	 formatted DTS.
 --- a/drivers/mtd/parsers/Makefile
 +++ b/drivers/mtd/parsers/Makefile
-@@ -16,3 +16,4 @@ obj-$(CONFIG_MTD_SERCOMM_PARTS)		+= scpa
+@@ -17,3 +17,4 @@ obj-$(CONFIG_MTD_SERCOMM_PARTS)		+= scpa
  obj-$(CONFIG_MTD_SHARPSL_PARTS)		+= sharpslpart.o
  obj-$(CONFIG_MTD_REDBOOT_PARTS)		+= redboot.o
  obj-$(CONFIG_MTD_QCOMSMEM_PARTS)	+= qcomsmempart.o
diff --git a/target/linux/generic/pending-6.1/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch b/target/linux/generic/pending-6.1/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch
index 0be74a5977..1b653fb735 100644
--- a/target/linux/generic/pending-6.1/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch
+++ b/target/linux/generic/pending-6.1/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch
@@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
 +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -907,7 +907,7 @@ static int get_chip(struct map_info *map
+@@ -908,7 +908,7 @@ static int get_chip(struct map_info *map
  		return 0;
  
  	case FL_ERASING:
diff --git a/target/linux/generic/pending-6.1/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch b/target/linux/generic/pending-6.1/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch
index ca56de8271..f2788c5214 100644
--- a/target/linux/generic/pending-6.1/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch
+++ b/target/linux/generic/pending-6.1/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch
@@ -7,7 +7,7 @@ Signed-off-by: George Kashperko <george at znau.edu.ua>
  1 file changed, 1 insertion(+)
 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
 +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -2051,6 +2051,7 @@ static int __xipram do_write_buffer(stru
+@@ -2052,6 +2052,7 @@ static int __xipram do_write_buffer(stru
  
  	/* Write Buffer Load */
  	map_write(map, CMD(0x25), cmd_adr);
diff --git a/target/linux/generic/pending-6.1/465-m25p80-mx-disable-software-protection.patch b/target/linux/generic/pending-6.1/465-m25p80-mx-disable-software-protection.patch
index f58d5452ab..1e28077338 100644
--- a/target/linux/generic/pending-6.1/465-m25p80-mx-disable-software-protection.patch
+++ b/target/linux/generic/pending-6.1/465-m25p80-mx-disable-software-protection.patch
@@ -8,11 +8,11 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/mtd/spi-nor/macronix.c
 +++ b/drivers/mtd/spi-nor/macronix.c
-@@ -93,6 +93,7 @@ static void macronix_default_init(struct
+@@ -106,6 +106,7 @@ static void macronix_nor_default_init(st
  {
  	nor->params->quad_enable = spi_nor_sr1_bit6_quad_enable;
  	nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode;
 +	nor->flags |= SNOR_F_HAS_LOCK;
  }
  
- static const struct spi_nor_fixups macronix_fixups = {
+ static const struct spi_nor_fixups macronix_nor_fixups = {
diff --git a/target/linux/generic/pending-6.1/476-mtd-spi-nor-add-eon-en25q128.patch b/target/linux/generic/pending-6.1/476-mtd-spi-nor-add-eon-en25q128.patch
index 4caf97fcf2..303e488433 100644
--- a/target/linux/generic/pending-6.1/476-mtd-spi-nor-add-eon-en25q128.patch
+++ b/target/linux/generic/pending-6.1/476-mtd-spi-nor-add-eon-en25q128.patch
@@ -8,7 +8,7 @@ Signed-off-by: Piotr Dymacz <pepe2k at gmail.com>
 
 --- a/drivers/mtd/spi-nor/eon.c
 +++ b/drivers/mtd/spi-nor/eon.c
-@@ -15,6 +15,8 @@ static const struct flash_info eon_parts
+@@ -17,6 +17,8 @@ static const struct flash_info eon_nor_p
  	{ "en25p64",    INFO(0x1c2017, 0, 64 * 1024,  128) },
  	{ "en25q64",    INFO(0x1c3017, 0, 64 * 1024,  128)
  		NO_SFDP_FLAGS(SECT_4K) },
diff --git a/target/linux/generic/pending-6.1/477-mtd-spi-nor-add-eon-en25qx128a.patch b/target/linux/generic/pending-6.1/477-mtd-spi-nor-add-eon-en25qx128a.patch
index e94c836f62..6740d1d7be 100644
--- a/target/linux/generic/pending-6.1/477-mtd-spi-nor-add-eon-en25qx128a.patch
+++ b/target/linux/generic/pending-6.1/477-mtd-spi-nor-add-eon-en25qx128a.patch
@@ -11,7 +11,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
 
 --- a/drivers/mtd/spi-nor/eon.c
 +++ b/drivers/mtd/spi-nor/eon.c
-@@ -26,6 +26,7 @@ static const struct flash_info eon_parts
+@@ -19,6 +19,7 @@ static const struct flash_info eon_nor_p
  		NO_SFDP_FLAGS(SECT_4K) },
  	{ "en25q128",   INFO(0x1c3018, 0, 64 * 1024,  256)
  		NO_SFDP_FLAGS(SECT_4K) },
diff --git a/target/linux/generic/pending-6.1/479-mtd-spi-nor-add-xtx-xt25f128b.patch b/target/linux/generic/pending-6.1/479-mtd-spi-nor-add-xtx-xt25f128b.patch
index 8eb09596ad..0ec6aa7fb6 100644
--- a/target/linux/generic/pending-6.1/479-mtd-spi-nor-add-xtx-xt25f128b.patch
+++ b/target/linux/generic/pending-6.1/479-mtd-spi-nor-add-xtx-xt25f128b.patch
@@ -31,7 +31,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/mtd/spi-nor/Makefile
 +++ b/drivers/mtd/spi-nor/Makefile
-@@ -17,7 +17,8 @@ spi-nor-objs			+= sst.o
+@@ -17,6 +17,7 @@ spi-nor-objs			+= sst.o
  spi-nor-objs			+= winbond.o
  spi-nor-objs			+= xilinx.o
  spi-nor-objs			+= xmc.o
@@ -39,7 +39,6 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  spi-nor-$(CONFIG_DEBUG_FS)	+= debugfs.o
  obj-$(CONFIG_MTD_SPI_NOR)	+= spi-nor.o
  
- obj-$(CONFIG_MTD_SPI_NOR)	+= controllers/
 --- /dev/null
 +++ b/drivers/mtd/spi-nor/xtx.c
 @@ -0,0 +1,17 @@
@@ -62,17 +61,17 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +};
 --- a/drivers/mtd/spi-nor/core.c
 +++ b/drivers/mtd/spi-nor/core.c
-@@ -1859,6 +1859,7 @@ static const struct spi_nor_manufacturer
+@@ -1635,6 +1635,7 @@ static const struct spi_nor_manufacturer
  	&spi_nor_winbond,
  	&spi_nor_xilinx,
  	&spi_nor_xmc,
 +	&spi_nor_xtx,
  };
  
- static const struct flash_info *
+ static const struct flash_info *spi_nor_match_id(struct spi_nor *nor,
 --- a/drivers/mtd/spi-nor/core.h
 +++ b/drivers/mtd/spi-nor/core.h
-@@ -489,6 +489,7 @@ extern const struct spi_nor_manufacturer
+@@ -633,6 +633,7 @@ extern const struct spi_nor_manufacturer
  extern const struct spi_nor_manufacturer spi_nor_winbond;
  extern const struct spi_nor_manufacturer spi_nor_xilinx;
  extern const struct spi_nor_manufacturer spi_nor_xmc;
diff --git a/target/linux/generic/pending-6.1/481-mtd-spi-nor-add-support-for-Gigadevice-GD25D05.patch b/target/linux/generic/pending-6.1/481-mtd-spi-nor-add-support-for-Gigadevice-GD25D05.patch
index 764dfd68cb..581e06190b 100644
--- a/target/linux/generic/pending-6.1/481-mtd-spi-nor-add-support-for-Gigadevice-GD25D05.patch
+++ b/target/linux/generic/pending-6.1/481-mtd-spi-nor-add-support-for-Gigadevice-GD25D05.patch
@@ -10,7 +10,7 @@ Signed-off-by: Koen Vandeputte <koen.vandeputte at ncentric.com>
 
 --- a/drivers/mtd/spi-nor/gigadevice.c
 +++ b/drivers/mtd/spi-nor/gigadevice.c
-@@ -24,6 +24,10 @@ static struct spi_nor_fixups gd25q256_fi
+@@ -34,6 +34,10 @@ static const struct spi_nor_fixups gd25q
  };
  
  static const struct flash_info gigadevice_nor_parts[] = {
diff --git a/target/linux/generic/pending-6.1/482-mtd-spi-nor-add-gd25q512.patch b/target/linux/generic/pending-6.1/482-mtd-spi-nor-add-gd25q512.patch
index 614263f190..ddd3405ae7 100644
--- a/target/linux/generic/pending-6.1/482-mtd-spi-nor-add-gd25q512.patch
+++ b/target/linux/generic/pending-6.1/482-mtd-spi-nor-add-gd25q512.patch
@@ -9,7 +9,7 @@ Subject: [PATCH] spi-nor/gigadevic: add gd25q512
 
 --- a/drivers/mtd/spi-nor/gigadevice.c
 +++ b/drivers/mtd/spi-nor/gigadevice.c
-@@ -53,6 +53,11 @@ static const struct flash_info gigadevic
+@@ -71,6 +71,11 @@ static const struct flash_info gigadevic
  		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB | SPI_NOR_TB_SR_BIT6)
  		FIXUP_FLAGS(SPI_NOR_4B_OPCODES)
  		.fixups = &gd25q256_fixups },
diff --git a/target/linux/generic/pending-6.1/484-mtd-spi-nor-add-esmt-f25l16pa.patch b/target/linux/generic/pending-6.1/484-mtd-spi-nor-add-esmt-f25l16pa.patch
index d7223ae8c4..d5ebe20309 100644
--- a/target/linux/generic/pending-6.1/484-mtd-spi-nor-add-esmt-f25l16pa.patch
+++ b/target/linux/generic/pending-6.1/484-mtd-spi-nor-add-esmt-f25l16pa.patch
@@ -14,11 +14,11 @@ flash.
 +++ b/drivers/mtd/spi-nor/esmt.c
 @@ -10,6 +10,9 @@
  
- static const struct flash_info esmt_parts[] = {
+ static const struct flash_info esmt_nor_parts[] = {
  	/* ESMT */
 +	{ "f25l16pa-2s", INFO(0x8c2115, 0, 64 * 1024, 32)
 +			FLAGS(SPI_NOR_HAS_LOCK)
 +			NO_SFDP_FLAGS(SECT_4K) },
  	{ "f25l32pa", INFO(0x8c2016, 0, 64 * 1024, 64)
- 			FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE)
- 			NO_SFDP_FLAGS(SECT_4K) },
+ 		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE)
+ 		NO_SFDP_FLAGS(SECT_4K) },
diff --git a/target/linux/generic/pending-6.1/485-mtd-spi-nor-add-xmc-xm25qh128c.patch b/target/linux/generic/pending-6.1/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
index 4020a428be..e8583cc257 100644
--- a/target/linux/generic/pending-6.1/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
+++ b/target/linux/generic/pending-6.1/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
@@ -13,10 +13,10 @@ Datasheet available at https://www.xmcwh.com/uploads/435/XM25QH128C.pdf
 
 --- a/drivers/mtd/spi-nor/xmc.c
 +++ b/drivers/mtd/spi-nor/xmc.c
-@@ -14,6 +14,9 @@ static const struct flash_info xmc_parts
-	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256)
-		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-			      SPI_NOR_QUAD_READ) },
+@@ -16,6 +16,9 @@ static const struct flash_info xmc_nor_p
+ 	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256)
+ 		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
+ 			      SPI_NOR_QUAD_READ) },
 +	{ "XM25QH128C", INFO(0x204018, 0, 64 * 1024, 256)
 +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
 +			      SPI_NOR_QUAD_READ) },
diff --git a/target/linux/generic/pending-6.1/486-01-mtd-spinand-add-support-for-ESMT-F50x1G41LB.patch b/target/linux/generic/pending-6.1/486-01-mtd-spinand-add-support-for-ESMT-F50x1G41LB.patch
index 8191c3c61d..b8116db842 100644
--- a/target/linux/generic/pending-6.1/486-01-mtd-spinand-add-support-for-ESMT-F50x1G41LB.patch
+++ b/target/linux/generic/pending-6.1/486-01-mtd-spinand-add-support-for-ESMT-F50x1G41LB.patch
@@ -31,7 +31,7 @@ Signed-off-by: Chuanhong Guo <gch981213 at gmail.com>
  obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
 --- a/drivers/mtd/nand/spi/core.c
 +++ b/drivers/mtd/nand/spi/core.c
-@@ -896,6 +896,7 @@ static const struct nand_ops spinand_ops
+@@ -938,6 +938,7 @@ static const struct nand_ops spinand_ops
  
  static const struct spinand_manufacturer *spinand_manufacturers[] = {
  	&ato_spinand_manufacturer,
@@ -133,7 +133,7 @@ Signed-off-by: Chuanhong Guo <gch981213 at gmail.com>
 +};
 --- a/include/linux/mtd/spinand.h
 +++ b/include/linux/mtd/spinand.h
-@@ -260,6 +260,7 @@ struct spinand_manufacturer {
+@@ -261,6 +261,7 @@ struct spinand_manufacturer {
  
  /* SPI NAND manufacturers */
  extern const struct spinand_manufacturer ato_spinand_manufacturer;
diff --git a/target/linux/generic/pending-6.1/487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch b/target/linux/generic/pending-6.1/487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch
index 00c20e37ca..81378fba86 100644
--- a/target/linux/generic/pending-6.1/487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch
+++ b/target/linux/generic/pending-6.1/487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch
@@ -47,7 +47,7 @@ Submitted-by: Daniel Danzberger <daniel at dd-wrt.com>
  obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
 --- a/drivers/mtd/nand/spi/core.c
 +++ b/drivers/mtd/nand/spi/core.c
-@@ -908,6 +908,7 @@ static const struct nand_ops spinand_ops
+@@ -939,6 +939,7 @@ static const struct nand_ops spinand_ops
  static const struct spinand_manufacturer *spinand_manufacturers[] = {
  	&ato_spinand_manufacturer,
  	&esmt_c8_spinand_manufacturer,
@@ -158,9 +158,9 @@ Submitted-by: Daniel Danzberger <daniel at dd-wrt.com>
 +};
 --- a/include/linux/mtd/spinand.h
 +++ b/include/linux/mtd/spinand.h
-@@ -261,6 +261,7 @@ struct spinand_manufacturer {
- 
+@@ -262,6 +262,7 @@ struct spinand_manufacturer {
  /* SPI NAND manufacturers */
+ extern const struct spinand_manufacturer ato_spinand_manufacturer;
  extern const struct spinand_manufacturer esmt_c8_spinand_manufacturer;
 +extern const struct spinand_manufacturer etron_spinand_manufacturer;
  extern const struct spinand_manufacturer gigadevice_spinand_manufacturer;
diff --git a/target/linux/generic/pending-6.1/488-mtd-spi-nor-add-xmc-xm25qh64c.patch b/target/linux/generic/pending-6.1/488-mtd-spi-nor-add-xmc-xm25qh64c.patch
index 8c73b6031b..e1e4f25e11 100644
--- a/target/linux/generic/pending-6.1/488-mtd-spi-nor-add-xmc-xm25qh64c.patch
+++ b/target/linux/generic/pending-6.1/488-mtd-spi-nor-add-xmc-xm25qh64c.patch
@@ -11,7 +11,7 @@ Signed-off-by: Joe Mullally <jwmullally at gmail.com>
 
 --- a/drivers/mtd/spi-nor/xmc.c
 +++ b/drivers/mtd/spi-nor/xmc.c
-@@ -12,6 +12,9 @@ static const struct flash_info xmc_parts
+@@ -13,6 +13,9 @@ static const struct flash_info xmc_nor_p
  	{ "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128)
  		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
  			      SPI_NOR_QUAD_READ) },
diff --git a/target/linux/generic/pending-6.1/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch b/target/linux/generic/pending-6.1/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
index aa6700b017..99a03e31c3 100644
--- a/target/linux/generic/pending-6.1/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
+++ b/target/linux/generic/pending-6.1/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
@@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/drivers/mtd/ubi/build.c
 +++ b/drivers/mtd/ubi/build.c
-@@ -1200,6 +1200,73 @@ static struct mtd_info * __init open_mtd
+@@ -1205,6 +1205,73 @@ static struct mtd_info * __init open_mtd
  	return mtd;
  }
  
@@ -82,7 +82,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  static int __init ubi_init(void)
  {
  	int err, i, k;
-@@ -1283,6 +1350,12 @@ static int __init ubi_init(void)
+@@ -1289,6 +1356,12 @@ static int __init ubi_init(void)
  		}
  	}
  
diff --git a/target/linux/generic/pending-6.1/491-ubi-auto-create-ubiblock-device-for-rootfs.patch b/target/linux/generic/pending-6.1/491-ubi-auto-create-ubiblock-device-for-rootfs.patch
index ae53770c11..17e8d8bedb 100644
--- a/target/linux/generic/pending-6.1/491-ubi-auto-create-ubiblock-device-for-rootfs.patch
+++ b/target/linux/generic/pending-6.1/491-ubi-auto-create-ubiblock-device-for-rootfs.patch
@@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/drivers/mtd/ubi/block.c
 +++ b/drivers/mtd/ubi/block.c
-@@ -642,6 +642,47 @@ static void __init ubiblock_create_from_
+@@ -653,6 +653,47 @@ static void __init ubiblock_create_from_
  	}
  }
  
@@ -56,7 +56,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  static void ubiblock_remove_all(void)
  {
  	struct ubiblock *next;
-@@ -674,6 +715,10 @@ int __init ubiblock_init(void)
+@@ -685,6 +726,10 @@ int __init ubiblock_init(void)
  	 */
  	ubiblock_create_from_param();
  
diff --git a/target/linux/generic/pending-6.1/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch b/target/linux/generic/pending-6.1/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch
index cf41c8cad3..f95ec46f14 100644
--- a/target/linux/generic/pending-6.1/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch
+++ b/target/linux/generic/pending-6.1/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch
@@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/init/do_mounts.c
 +++ b/init/do_mounts.c
-@@ -447,7 +447,30 @@ retry:
+@@ -446,7 +446,30 @@ retry:
  out:
  	put_page(page);
  }
@@ -40,7 +40,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  #ifdef CONFIG_ROOT_NFS
  
  #define NFSROOT_TIMEOUT_MIN	5
-@@ -580,6 +603,10 @@ void __init mount_root(void)
+@@ -579,6 +602,10 @@ void __init mount_root(void)
  		return;
  	}
  #endif
diff --git a/target/linux/generic/pending-6.1/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch b/target/linux/generic/pending-6.1/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch
index 266a6331c2..e3493ef19e 100644
--- a/target/linux/generic/pending-6.1/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch
+++ b/target/linux/generic/pending-6.1/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch
@@ -16,7 +16,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  
  #include "ubi-media.h"
  #include "ubi.h"
-@@ -451,6 +452,15 @@ int ubiblock_create(struct ubi_volume_in
+@@ -459,6 +460,15 @@ int ubiblock_create(struct ubi_volume_in
  	dev_info(disk_to_dev(dev->gd), "created from ubi%d:%d(%s)",
  		 dev->ubi_num, dev->vol_id, vi->name);
  	mutex_unlock(&devices_mutex);
@@ -31,4 +31,4 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +
  	return 0;
  
- out_remove_minor:
+ out_destroy_wq:
diff --git a/target/linux/generic/pending-6.1/498-mtd-spi-nor-locking-support-for-MX25L6405D.patch b/target/linux/generic/pending-6.1/498-mtd-spi-nor-locking-support-for-MX25L6405D.patch
index 6c480673c6..1a4d5a766f 100644
--- a/target/linux/generic/pending-6.1/498-mtd-spi-nor-locking-support-for-MX25L6405D.patch
+++ b/target/linux/generic/pending-6.1/498-mtd-spi-nor-locking-support-for-MX25L6405D.patch
@@ -22,13 +22,11 @@ Signed-off-by: Nick Hainke <vincent at systemli.org>
 
 --- a/drivers/mtd/spi-nor/macronix.c
 +++ b/drivers/mtd/spi-nor/macronix.c
-@@ -41,7 +41,8 @@ static const struct flash_info macronix_
+@@ -48,6 +48,7 @@ static const struct flash_info macronix_
  	{ "mx25l3255e",  INFO(0xc29e16, 0, 64 * 1024,  64)
  		NO_SFDP_FLAGS(SECT_4K) },
  	{ "mx25l6405d",  INFO(0xc22017, 0, 64 * 1024, 128)
--		NO_SFDP_FLAGS(SECT_4K) },
 +		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_4BIT_BP)
-+		NO_SFDP_FLAGS(SECT_4K) },
+ 		NO_SFDP_FLAGS(SECT_4K) },
  	{ "mx25u2033e",  INFO(0xc22532, 0, 64 * 1024,   4)
  		NO_SFDP_FLAGS(SECT_4K) },
- 	{ "mx25u3235f",	 INFO(0xc22536, 0, 64 * 1024,  64)
diff --git a/target/linux/generic/pending-6.1/499-mtd-spi-nor-disable-16-bit-sr-for-macronix.patch b/target/linux/generic/pending-6.1/499-mtd-spi-nor-disable-16-bit-sr-for-macronix.patch
index ec14f6341c..99e0fc72bf 100644
--- a/target/linux/generic/pending-6.1/499-mtd-spi-nor-disable-16-bit-sr-for-macronix.patch
+++ b/target/linux/generic/pending-6.1/499-mtd-spi-nor-disable-16-bit-sr-for-macronix.patch
@@ -20,7 +20,7 @@ Signed-off-by: Nick Hainke <vincent at systemli.org>
 
 --- a/drivers/mtd/spi-nor/macronix.c
 +++ b/drivers/mtd/spi-nor/macronix.c
-@@ -94,6 +94,7 @@ static void macronix_default_init(struct
+@@ -107,6 +107,7 @@ static void macronix_nor_default_init(st
  {
  	nor->params->quad_enable = spi_nor_sr1_bit6_quad_enable;
  	nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode;
diff --git a/target/linux/generic/pending-6.1/530-jffs2_make_lzma_available.patch b/target/linux/generic/pending-6.1/530-jffs2_make_lzma_available.patch
index fd6ca784c0..b6b75d4ac5 100644
--- a/target/linux/generic/pending-6.1/530-jffs2_make_lzma_available.patch
+++ b/target/linux/generic/pending-6.1/530-jffs2_make_lzma_available.patch
@@ -1087,7 +1087,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex at ozo.com>
  #define JFFS2_NODE_ACCURATE 0x2000
 --- a/lib/Kconfig
 +++ b/lib/Kconfig
-@@ -340,6 +340,12 @@ config ZSTD_DECOMPRESS
+@@ -354,6 +354,12 @@ config ZSTD_DECOMPRESS
  
  source "lib/xz/Kconfig"
  
@@ -1102,7 +1102,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex at ozo.com>
  # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
 --- a/lib/Makefile
 +++ b/lib/Makefile
-@@ -135,6 +135,16 @@ CFLAGS_kobject.o += -DDEBUG
+@@ -134,6 +134,16 @@ CFLAGS_kobject.o += -DDEBUG
  CFLAGS_kobject_uevent.o += -DDEBUG
  endif
  
@@ -1119,7 +1119,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex at ozo.com>
  obj-$(CONFIG_DEBUG_INFO_REDUCED) += debug_info.o
  CFLAGS_debug_info.o += $(call cc-option, -femit-struct-debug-detailed=any)
  
-@@ -192,6 +202,8 @@ obj-$(CONFIG_ZSTD_COMPRESS) += zstd/
+@@ -194,6 +204,8 @@ obj-$(CONFIG_ZSTD_COMPRESS) += zstd/
  obj-$(CONFIG_ZSTD_DECOMPRESS) += zstd/
  obj-$(CONFIG_XZ_DEC) += xz/
  obj-$(CONFIG_RAID6_PQ) += raid6/
diff --git a/target/linux/generic/pending-6.1/600-netfilter_conntrack_flush.patch b/target/linux/generic/pending-6.1/600-netfilter_conntrack_flush.patch
index d8531ed740..d7548c1419 100644
--- a/target/linux/generic/pending-6.1/600-netfilter_conntrack_flush.patch
+++ b/target/linux/generic/pending-6.1/600-netfilter_conntrack_flush.patch
@@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #include <net/net_namespace.h>
  #ifdef CONFIG_SYSCTL
  #include <linux/sysctl.h>
-@@ -462,6 +463,58 @@ static int ct_cpu_seq_show(struct seq_fi
+@@ -465,6 +466,58 @@ static int ct_cpu_seq_show(struct seq_fi
  	return 0;
  }
  
@@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  static const struct seq_operations ct_cpu_seq_ops = {
  	.start	= ct_cpu_seq_start,
  	.next	= ct_cpu_seq_next,
-@@ -475,8 +526,9 @@ static int nf_conntrack_standalone_init_
+@@ -478,8 +531,9 @@ static int nf_conntrack_standalone_init_
  	kuid_t root_uid;
  	kgid_t root_gid;
  
diff --git a/target/linux/generic/pending-6.1/610-netfilter_match_bypass_default_checks.patch b/target/linux/generic/pending-6.1/610-netfilter_match_bypass_default_checks.patch
index c1e050e935..7e34ef3713 100644
--- a/target/linux/generic/pending-6.1/610-netfilter_match_bypass_default_checks.patch
+++ b/target/linux/generic/pending-6.1/610-netfilter_match_bypass_default_checks.patch
@@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  static bool
  ip_checkentry(const struct ipt_ip *ip)
  {
-@@ -524,6 +550,8 @@ find_check_entry(struct ipt_entry *e, st
+@@ -525,6 +551,8 @@ find_check_entry(struct ipt_entry *e, st
  	struct xt_mtchk_param mtpar;
  	struct xt_entry_match *ematch;
  
@@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	if (!xt_percpu_counter_alloc(alloc_state, &e->counters))
  		return -ENOMEM;
  
-@@ -818,6 +846,7 @@ copy_entries_to_user(unsigned int total_
+@@ -819,6 +847,7 @@ copy_entries_to_user(unsigned int total_
  	const struct xt_table_info *private = table->private;
  	int ret = 0;
  	const void *loc_cpu_entry;
@@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  	counters = alloc_counters(table);
  	if (IS_ERR(counters))
-@@ -845,6 +874,14 @@ copy_entries_to_user(unsigned int total_
+@@ -846,6 +875,14 @@ copy_entries_to_user(unsigned int total_
  			goto free_counters;
  		}
  
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		for (i = sizeof(struct ipt_entry);
  		     i < e->target_offset;
  		     i += m->u.match_size) {
-@@ -1222,12 +1259,15 @@ compat_copy_entry_to_user(struct ipt_ent
+@@ -1223,12 +1260,15 @@ compat_copy_entry_to_user(struct ipt_ent
  	compat_uint_t origsize;
  	const struct xt_entry_match *ematch;
  	int ret = 0;
diff --git a/target/linux/generic/pending-6.1/611-netfilter_match_bypass_default_table.patch b/target/linux/generic/pending-6.1/611-netfilter_match_bypass_default_table.patch
index baf738a8d2..dd557fd3ea 100644
--- a/target/linux/generic/pending-6.1/611-netfilter_match_bypass_default_table.patch
+++ b/target/linux/generic/pending-6.1/611-netfilter_match_bypass_default_table.patch
@@ -41,8 +41,8 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +
  /* Returns one of the generic firewall policies, like NF_ACCEPT. */
  unsigned int
- ipt_do_table(struct sk_buff *skb,
-@@ -266,27 +293,28 @@ ipt_do_table(struct sk_buff *skb,
+ ipt_do_table(void *priv,
+@@ -267,27 +294,28 @@ ipt_do_table(void *priv,
  	unsigned int addend;
  
  	/* Initialization */
@@ -86,7 +86,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	jumpstack  = (struct ipt_entry **)private->jumpstack[cpu];
  
  	/* Switch to alternate jumpstack if we're being invoked via TEE.
-@@ -299,7 +327,16 @@ ipt_do_table(struct sk_buff *skb,
+@@ -300,7 +328,16 @@ ipt_do_table(void *priv,
  	if (static_key_false(&xt_tee_enabled))
  		jumpstack += private->stacksize * __this_cpu_read(nf_skb_duplicated);
  
diff --git a/target/linux/generic/pending-6.1/630-packet_socket_type.patch b/target/linux/generic/pending-6.1/630-packet_socket_type.patch
index 2d2c7b6cc5..0d586a5584 100644
--- a/target/linux/generic/pending-6.1/630-packet_socket_type.patch
+++ b/target/linux/generic/pending-6.1/630-packet_socket_type.patch
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #define PACKET_FANOUT_LB		1
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
-@@ -1826,6 +1826,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1862,6 +1862,7 @@ static int packet_rcv_spkt(struct sk_buf
  {
  	struct sock *sk;
  	struct sockaddr_pkt *spkt;
@@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  	/*
  	 *	When we registered the protocol we saved the socket in the data
-@@ -1833,6 +1834,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1869,6 +1870,7 @@ static int packet_rcv_spkt(struct sk_buf
  	 */
  
  	sk = pt->af_packet_priv;
@@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  	/*
  	 *	Yank back the headers [hope the device set this
-@@ -1845,7 +1847,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1881,7 +1883,7 @@ static int packet_rcv_spkt(struct sk_buf
  	 *	so that this procedure is noop.
  	 */
  
@@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		goto out;
  
  	if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -2093,12 +2095,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -2129,12 +2131,12 @@ static int packet_rcv(struct sk_buff *sk
  	unsigned int snaplen, res;
  	bool is_drop_n_account = false;
  
@@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  		goto drop;
  
-@@ -2224,12 +2226,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -2261,12 +2263,12 @@ static int tpacket_rcv(struct sk_buff *s
  	BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
  	BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
  
@@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  		goto drop;
  
-@@ -3342,6 +3344,7 @@ static int packet_create(struct net *net
+@@ -3374,6 +3376,7 @@ static int packet_create(struct net *net
  	mutex_init(&po->pg_vec_lock);
  	po->rollover = NULL;
  	po->prot_hook.func = packet_rcv;
@@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  	if (sock->type == SOCK_PACKET)
  		po->prot_hook.func = packet_rcv_spkt;
-@@ -3979,6 +3982,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -4009,6 +4012,16 @@ packet_setsockopt(struct socket *sock, i
  		WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit);
  		return 0;
  	}
@@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	default:
  		return -ENOPROTOOPT;
  	}
-@@ -4035,6 +4048,13 @@ static int packet_getsockopt(struct sock
+@@ -4065,6 +4078,13 @@ static int packet_getsockopt(struct sock
  	case PACKET_VNET_HDR:
  		val = po->has_vnet_hdr;
  		break;
diff --git a/target/linux/generic/pending-6.1/655-increase_skb_pad.patch b/target/linux/generic/pending-6.1/655-increase_skb_pad.patch
index f89ee0b8d2..d9fb62b2c1 100644
--- a/target/linux/generic/pending-6.1/655-increase_skb_pad.patch
+++ b/target/linux/generic/pending-6.1/655-increase_skb_pad.patch
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -2782,7 +2782,7 @@ static inline int pskb_network_may_pull(
+@@ -2988,7 +2988,7 @@ static inline int pskb_network_may_pull(
   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
   */
  #ifndef NET_SKB_PAD
diff --git a/target/linux/generic/pending-6.1/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/target/linux/generic/pending-6.1/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
index 2f6fbd59e4..2bc25eb4fa 100644
--- a/target/linux/generic/pending-6.1/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
+++ b/target/linux/generic/pending-6.1/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
@@ -154,7 +154,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  	}
  	return &ip6n->tnls[prio][h];
  }
-@@ -378,6 +397,12 @@ ip6_tnl_dev_uninit(struct net_device *de
+@@ -376,6 +395,12 @@ ip6_tnl_dev_uninit(struct net_device *de
  	struct net *net = t->net;
  	struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
  
@@ -167,7 +167,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  	if (dev == ip6n->fb_tnl_dev)
  		RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL);
  	else
-@@ -790,6 +815,107 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
+@@ -788,6 +813,107 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
  }
  EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl);
  
@@ -275,7 +275,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  static int __ip6_tnl_rcv(struct ip6_tnl *tunnel, struct sk_buff *skb,
  			 const struct tnl_ptk_info *tpi,
  			 struct metadata_dst *tun_dst,
-@@ -843,6 +969,27 @@ static int __ip6_tnl_rcv(struct ip6_tnl
+@@ -840,6 +966,27 @@ static int __ip6_tnl_rcv(struct ip6_tnl
  	skb_reset_network_header(skb);
  	memset(skb->cb, 0, sizeof(struct inet6_skb_parm));
  
@@ -303,7 +303,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  	__skb_tunnel_rx(skb, tunnel->dev, tunnel->net);
  
  	err = dscp_ecn_decapsulate(tunnel, ipv6h, skb);
-@@ -994,6 +1141,7 @@ static void init_tel_txopt(struct ipv6_t
+@@ -987,6 +1134,7 @@ static void init_tel_txopt(struct ipv6_t
  	opt->ops.opt_nflen = 8;
  }
  
@@ -311,7 +311,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  /**
   * ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
   *   @t: the outgoing tunnel device
-@@ -1274,6 +1422,7 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1278,6 +1426,7 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str
  		u8 protocol)
  {
  	struct ip6_tnl *t = netdev_priv(dev);
@@ -319,7 +319,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  	struct ipv6hdr *ipv6h;
  	const struct iphdr  *iph;
  	int encap_limit = -1;
-@@ -1373,6 +1522,18 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1377,6 +1526,18 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str
  	fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
  	dsfield = INET_ECN_encapsulate(dsfield, orig_dsfield);
  
@@ -338,7 +338,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  	if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
  		return -1;
  
-@@ -1526,6 +1687,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
+@@ -1530,6 +1691,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
  	t->parms.link = p->link;
  	t->parms.proto = p->proto;
  	t->parms.fwmark = p->fwmark;
@@ -352,7 +352,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
 +
  	dst_cache_reset(&t->dst_cache);
  	ip6_tnl_link_config(t);
- 	return 0;
+ }
 @@ -1564,6 +1733,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
  	p->flowinfo = u->flowinfo;
  	p->link = u->link;
@@ -423,8 +423,8 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
 +	}
  }
  
- static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
-@@ -2102,6 +2321,12 @@ static void ip6_tnl_dellink(struct net_d
+ static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev,
+@@ -2070,6 +2289,12 @@ static void ip6_tnl_dellink(struct net_d
  
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  {
@@ -437,7 +437,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  	return
  		/* IFLA_IPTUN_LINK */
  		nla_total_size(4) +
-@@ -2131,6 +2356,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2099,6 +2324,24 @@ static size_t ip6_tnl_get_size(const str
  		nla_total_size(0) +
  		/* IFLA_IPTUN_FWMARK */
  		nla_total_size(4) +
@@ -462,7 +462,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  		0;
  }
  
-@@ -2138,6 +2381,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2106,6 +2349,9 @@ static int ip6_tnl_fill_info(struct sk_b
  {
  	struct ip6_tnl *tunnel = netdev_priv(dev);
  	struct __ip6_tnl_parm *parm = &tunnel->parms;
@@ -472,7 +472,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  
  	if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
  	    nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -2147,9 +2393,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2115,9 +2361,27 @@ static int ip6_tnl_fill_info(struct sk_b
  	    nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
  	    nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
  	    nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
@@ -501,7 +501,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  	if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
  	    nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
  	    nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
-@@ -2189,6 +2453,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2157,6 +2421,7 @@ static const struct nla_policy ip6_tnl_p
  	[IFLA_IPTUN_ENCAP_DPORT]	= { .type = NLA_U16 },
  	[IFLA_IPTUN_COLLECT_METADATA]	= { .type = NLA_FLAG },
  	[IFLA_IPTUN_FWMARK]		= { .type = NLA_U32 },
diff --git a/target/linux/generic/pending-6.1/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-6.1/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
index 86bd9664e5..e5103570f1 100644
--- a/target/linux/generic/pending-6.1/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
+++ b/target/linux/generic/pending-6.1/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
@@ -43,7 +43,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  
 --- a/include/uapi/linux/rtnetlink.h
 +++ b/include/uapi/linux/rtnetlink.h
-@@ -256,6 +256,7 @@ enum {
+@@ -265,6 +265,7 @@ enum {
  	RTN_THROW,		/* Not in this table		*/
  	RTN_NAT,		/* Translate this address	*/
  	RTN_XRESOLVE,		/* Use external resolver	*/
@@ -53,7 +53,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  
 --- a/net/ipv4/fib_semantics.c
 +++ b/net/ipv4/fib_semantics.c
-@@ -143,6 +143,10 @@ const struct fib_prop fib_props[RTN_MAX
+@@ -145,6 +145,10 @@ const struct fib_prop fib_props[RTN_MAX
  		.error	= -EINVAL,
  		.scope	= RT_SCOPE_NOWHERE,
  	},
@@ -66,7 +66,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  static void rt_fibinfo_free(struct rtable __rcu **rtp)
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2772,6 +2772,7 @@ static const char *const rtn_type_names[
+@@ -2778,6 +2778,7 @@ static const char *const rtn_type_names[
  	[RTN_THROW] = "THROW",
  	[RTN_NAT] = "NAT",
  	[RTN_XRESOLVE] = "XRESOLVE",
@@ -76,7 +76,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  static inline const char *rtn_type(char *buf, size_t len, unsigned int t)
 --- a/net/ipv4/ipmr.c
 +++ b/net/ipv4/ipmr.c
-@@ -175,6 +175,7 @@ static int ipmr_rule_action(struct fib_r
+@@ -180,6 +180,7 @@ static int ipmr_rule_action(struct fib_r
  	case FR_ACT_UNREACHABLE:
  		return -ENETUNREACH;
  	case FR_ACT_PROHIBIT:
@@ -86,7 +86,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  	default:
 --- a/net/ipv6/fib6_rules.c
 +++ b/net/ipv6/fib6_rules.c
-@@ -220,6 +220,10 @@ static int __fib6_rule_action(struct fib
+@@ -221,6 +221,10 @@ static int __fib6_rule_action(struct fib
  		err = -EACCES;
  		rt = net->ipv6.ip6_prohibit_entry;
  		goto discard_pkt;
@@ -99,7 +99,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  	tb_id = fib_rule_get_table(rule, arg);
 --- a/net/ipv6/ip6mr.c
 +++ b/net/ipv6/ip6mr.c
-@@ -163,6 +163,8 @@ static int ip6mr_rule_action(struct fib_
+@@ -170,6 +170,8 @@ static int ip6mr_rule_action(struct fib_
  		return -ENETUNREACH;
  	case FR_ACT_PROHIBIT:
  		return -EACCES;
@@ -119,7 +119,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  static void		ip6_link_failure(struct sk_buff *skb);
  static void		ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk,
  					   struct sk_buff *skb, u32 mtu,
-@@ -312,6 +314,18 @@ static const struct rt6_info ip6_prohibi
+@@ -317,6 +319,18 @@ static const struct rt6_info ip6_prohibi
  	.rt6i_flags	= (RTF_REJECT | RTF_NONEXTHOP),
  };
  
@@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  static const struct rt6_info ip6_blk_hole_entry_template = {
  	.dst = {
  		.__refcnt	= ATOMIC_INIT(1),
-@@ -1033,6 +1047,7 @@ static const int fib6_prop[RTN_MAX + 1]
+@@ -1036,6 +1050,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 <jogo at openwrt.org>
  	[RTN_THROW]	= -EAGAIN,
  	[RTN_NAT]	= -EINVAL,
  	[RTN_XRESOLVE]	= -EINVAL,
-@@ -1068,6 +1083,10 @@ static void ip6_rt_init_dst_reject(struc
+@@ -1071,6 +1086,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 <jogo at openwrt.org>
  	case RTN_THROW:
  	case RTN_UNREACHABLE:
  	default:
-@@ -4560,6 +4579,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -4539,6 +4558,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 <jogo at openwrt.org>
  /*
   *	Allocate a dst for local (unicast / anycast) address.
   */
-@@ -5047,7 +5077,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -5032,7 +5062,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 <jogo at openwrt.org>
  		cfg->fc_flags |= RTF_REJECT;
  
  	if (rtm->rtm_type == RTN_LOCAL)
-@@ -6301,6 +6332,8 @@ static int ip6_route_dev_notify(struct n
+@@ -6286,6 +6317,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 <jogo at openwrt.org>
  		net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
  		net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
-@@ -6312,6 +6345,7 @@ static int ip6_route_dev_notify(struct n
+@@ -6297,6 +6330,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 <jogo at openwrt.org>
  		in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
  #endif
  	}
-@@ -6503,6 +6537,8 @@ static int __net_init ip6_route_net_init
+@@ -6488,6 +6522,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 <jogo at openwrt.org>
  	net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
  					       sizeof(*net->ipv6.ip6_prohibit_entry),
  					       GFP_KERNEL);
-@@ -6513,11 +6549,21 @@ static int __net_init ip6_route_net_init
+@@ -6498,11 +6534,21 @@ static int __net_init ip6_route_net_init
  			 ip6_template_metrics, true);
  	INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
  
@@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  	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);
-@@ -6544,6 +6590,8 @@ out:
+@@ -6529,6 +6575,8 @@ out:
  	return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  out_ip6_prohibit_entry:
  	kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -6563,6 +6611,7 @@ static void __net_exit ip6_route_net_exi
+@@ -6548,6 +6596,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 <jogo at openwrt.org>
  	kfree(net->ipv6.ip6_blk_hole_entry);
  #endif
  	dst_entries_destroy(&net->ipv6.ip6_dst_ops);
-@@ -6646,6 +6695,9 @@ void __init ip6_route_init_special_entri
+@@ -6631,6 +6680,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.1/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch b/target/linux/generic/pending-6.1/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch
index bea43b2bad..94416a5d70 100644
--- a/target/linux/generic/pending-6.1/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch
+++ b/target/linux/generic/pending-6.1/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch
@@ -39,7 +39,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
   */
 --- a/include/uapi/linux/rtnetlink.h
 +++ b/include/uapi/linux/rtnetlink.h
-@@ -260,6 +260,8 @@ enum {
+@@ -269,6 +269,8 @@ enum {
  	__RTN_MAX
  };
  
diff --git a/target/linux/generic/pending-6.1/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-6.1/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index e61f59f756..0494762a1a 100644
--- a/target/linux/generic/pending-6.1/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
+++ b/target/linux/generic/pending-6.1/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -2075,6 +2075,8 @@ struct net_device {
+@@ -2132,6 +2132,8 @@ struct net_device {
  	struct netdev_hw_addr_list	mc;
  	struct netdev_hw_addr_list	dev_addrs;
  
@@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #endif
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -890,6 +890,7 @@ struct sk_buff {
+@@ -964,6 +964,7 @@ struct sk_buff {
  #ifdef CONFIG_IPV6_NDISC_NODETYPE
  	__u8			ndisc_nodetype:2;
  #endif
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	__u8			inner_protocol_type:1;
 --- a/net/core/gro.c
 +++ b/net/core/gro.c
-@@ -6062,6 +6062,9 @@ static enum gro_result dev_gro_receive(s
+@@ -491,6 +491,9 @@ static enum gro_result dev_gro_receive(s
  	int same_flow;
  	int grow;
  
@@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -8076,6 +8079,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -7604,6 +7604,48 @@ static void __netdev_adjacent_dev_unlink
  					   &upper_dev->adj_list.lower);
  }
  
@@ -93,7 +93,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  static int __netdev_upper_dev_link(struct net_device *dev,
  				   struct net_device *upper_dev, bool master,
  				   void *upper_priv, void *upper_info,
-@@ -8127,6 +8172,7 @@ static int __netdev_upper_dev_link(struc
+@@ -7655,6 +7697,7 @@ static int __netdev_upper_dev_link(struc
  	if (ret)
  		return ret;
  
@@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
  					    &changeupper_info.info);
  	ret = notifier_to_errno(ret);
-@@ -8223,6 +8269,7 @@ static void __netdev_upper_dev_unlink(st
+@@ -7751,6 +7794,7 @@ static void __netdev_upper_dev_unlink(st
  
  	__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
  
@@ -109,7 +109,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
  				      &changeupper_info.info);
  
-@@ -9042,6 +9089,7 @@ int dev_set_mac_address(struct net_devic
+@@ -8803,6 +8847,7 @@ int dev_set_mac_address(struct net_devic
  	if (err)
  		return err;
  	dev->addr_assign_type = NET_ADDR_SET;
@@ -119,7 +119,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	return 0;
 --- a/net/ethernet/eth.c
 +++ b/net/ethernet/eth.c
-@@ -142,6 +142,18 @@ u32 eth_get_headlen(const struct net_dev
+@@ -143,6 +143,18 @@ u32 eth_get_headlen(const struct net_dev
  }
  EXPORT_SYMBOL(eth_get_headlen);
  
@@ -138,7 +138,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  /**
   * eth_type_trans - determine the packet's protocol ID.
   * @skb: received socket data
-@@ -173,6 +185,10 @@ __be16 eth_type_trans(struct sk_buff *sk
+@@ -174,6 +186,10 @@ __be16 eth_type_trans(struct sk_buff *sk
  		} else {
  			skb->pkt_type = PACKET_OTHERHOST;
  		}
diff --git a/target/linux/generic/pending-6.1/682-of_net-add-mac-address-increment-support.patch b/target/linux/generic/pending-6.1/682-of_net-add-mac-address-increment-support.patch
index fe6faddc7d..f6ae9f31f1 100644
--- a/target/linux/generic/pending-6.1/682-of_net-add-mac-address-increment-support.patch
+++ b/target/linux/generic/pending-6.1/682-of_net-add-mac-address-increment-support.patch
@@ -20,7 +20,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth at gmail.com>
 
 --- a/net/core/of_net.c
 +++ b/net/core/of_net.c
-@@ -119,27 +119,62 @@ static int of_get_mac_addr_nvmem(struct
+@@ -119,28 +119,63 @@ static int of_get_mac_addr_nvmem(struct
   * this case, the real MAC is in 'local-mac-address', and 'mac-address' exists
   * but is all zeros.
   *
@@ -87,3 +87,4 @@ Signed-off-by: Ansuel Smith <ansuelsmth at gmail.com>
 +	return ret;
  }
  EXPORT_SYMBOL(of_get_mac_address);
+ 
diff --git a/target/linux/generic/pending-6.1/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch b/target/linux/generic/pending-6.1/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
index 3de0201f95..182a0cbc6a 100644
--- a/target/linux/generic/pending-6.1/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
+++ b/target/linux/generic/pending-6.1/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
@@ -10,7 +10,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo at netfilter.org>
 
 --- a/net/netfilter/nf_flow_table_core.c
 +++ b/net/netfilter/nf_flow_table_core.c
-@@ -608,28 +608,52 @@ void nf_flow_table_free(struct nf_flowta
+@@ -659,6 +659,23 @@ static struct pernet_operations nf_flow_
  	.exit_batch = nf_flow_table_pernet_exit,
  };
  
@@ -34,19 +34,14 @@ Signed-off-by: Pablo Neira Ayuso <pablo at netfilter.org>
  static int __init nf_flow_table_module_init(void)
  {
  	int ret;
- 
- 	ret = register_pernet_subsys(&nf_flow_table_net_ops);
- 	if (ret < 0)
- 		return ret;
- 
- 	ret = nf_flow_table_offload_init();
+@@ -671,8 +688,14 @@ static int __init nf_flow_table_module_i
  	if (ret)
  		goto out_offload;
-+
+ 
 +	ret = register_netdevice_notifier(&flow_offload_netdev_notifier);
 +	if (ret)
 +		goto out_offload_init;
- 
++
  	return 0;
  
 +out_offload_init:
@@ -54,18 +49,17 @@ Signed-off-by: Pablo Neira Ayuso <pablo at netfilter.org>
  out_offload:
  	unregister_pernet_subsys(&nf_flow_table_net_ops);
  	return ret;
- }
+@@ -680,6 +703,7 @@ out_offload:
  
  static void __exit nf_flow_table_module_exit(void)
  {
 +	unregister_netdevice_notifier(&flow_offload_netdev_notifier);
  	nf_flow_table_offload_exit();
-	unregister_pernet_subsys(&nf_flow_table_net_ops);
+ 	unregister_pernet_subsys(&nf_flow_table_net_ops);
  }
- 
 --- a/net/netfilter/nft_flow_offload.c
 +++ b/net/netfilter/nft_flow_offload.c
-@@ -444,47 +444,14 @@ static struct nft_expr_type nft_flow_off
+@@ -468,47 +468,14 @@ static struct nft_expr_type nft_flow_off
  	.owner		= THIS_MODULE,
  };
  
diff --git a/target/linux/generic/pending-6.1/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch b/target/linux/generic/pending-6.1/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch
index 649b301053..7d603f5de3 100644
--- a/target/linux/generic/pending-6.1/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch
+++ b/target/linux/generic/pending-6.1/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -2443,8 +2443,8 @@ static irqreturn_t mtk_handle_irq_rx(int
+@@ -3048,8 +3048,8 @@ static irqreturn_t mtk_handle_irq_rx(int
  
  	eth->rx_events++;
  	if (likely(napi_schedule_prep(&eth->rx_napi))) {
@@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	}
  
  	return IRQ_HANDLED;
-@@ -2456,8 +2456,8 @@ static irqreturn_t mtk_handle_irq_tx(int
+@@ -3061,8 +3061,8 @@ static irqreturn_t mtk_handle_irq_tx(int
  
  	eth->tx_events++;
  	if (likely(napi_schedule_prep(&eth->tx_napi))) {
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	}
  
  	return IRQ_HANDLED;
-@@ -3623,6 +3623,8 @@ static int mtk_probe(struct platform_dev
+@@ -4727,6 +4727,8 @@ static int mtk_probe(struct platform_dev
  	 * for NAPI to work
  	 */
  	init_dummy_netdev(&eth->dummy_dev);
diff --git a/target/linux/generic/pending-6.1/703-phy-add-detach-callback-to-struct-phy_driver.patch b/target/linux/generic/pending-6.1/703-phy-add-detach-callback-to-struct-phy_driver.patch
index 21c322b4f1..48b1afe3f2 100644
--- a/target/linux/generic/pending-6.1/703-phy-add-detach-callback-to-struct-phy_driver.patch
+++ b/target/linux/generic/pending-6.1/703-phy-add-detach-callback-to-struct-phy_driver.patch
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
 
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1738,6 +1738,9 @@ void phy_detach(struct phy_device *phyde
+@@ -1750,6 +1750,9 @@ void phy_detach(struct phy_device *phyde
  	struct module *ndev_owner = NULL;
  	struct mii_bus *bus;
  
@@ -23,7 +23,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  			sysfs_remove_link(&dev->dev.kobj, "phydev");
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -789,6 +789,12 @@ struct phy_driver {
+@@ -858,6 +858,12 @@ struct phy_driver {
  	/** @handle_interrupt: Override default interrupt handling */
  	irqreturn_t (*handle_interrupt)(struct phy_device *phydev);
  
diff --git a/target/linux/generic/pending-6.1/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch b/target/linux/generic/pending-6.1/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
index 3aa88066b5..0ecb870333 100644
--- a/target/linux/generic/pending-6.1/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
+++ b/target/linux/generic/pending-6.1/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
@@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/include/linux/if_bridge.h
 +++ b/include/linux/if_bridge.h
-@@ -58,6 +58,7 @@ struct br_ip_list {
+@@ -59,6 +59,7 @@ struct br_ip_list {
  #define BR_MRP_LOST_IN_CONT	BIT(19)
  #define BR_TX_FWD_OFFLOAD	BIT(20)
  #define BR_PORT_LOCKED		BIT(21)
@@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  			if (!(p->flags & BR_BCAST_FLOOD) && skb->dev != br->dev)
 --- a/net/bridge/br_input.c
 +++ b/net/bridge/br_input.c
-@@ -326,6 +326,8 @@ static rx_handler_result_t br_handle_fra
+@@ -344,6 +344,8 @@ static rx_handler_result_t br_handle_fra
  		fwd_mask |= p->group_fwd_mask;
  		switch (dest[5]) {
  		case 0x00:	/* Bridge Group Address */
@@ -106,7 +106,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
 --- a/include/uapi/linux/if_link.h
 +++ b/include/uapi/linux/if_link.h
-@@ -536,6 +536,7 @@ enum {
+@@ -561,6 +561,7 @@ enum {
  	IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT,
  	IFLA_BRPORT_MCAST_EHT_HOSTS_CNT,
  	IFLA_BRPORT_LOCKED,
@@ -116,7 +116,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
 --- a/net/bridge/br_netlink.c
 +++ b/net/bridge/br_netlink.c
-@@ -184,6 +184,7 @@ static inline size_t br_port_info_size(v
+@@ -188,6 +188,7 @@ static inline size_t br_port_info_size(v
  		+ nla_total_size(1)	/* IFLA_BRPORT_NEIGH_SUPPRESS */
  		+ nla_total_size(1)	/* IFLA_BRPORT_ISOLATED */
  		+ nla_total_size(1)	/* IFLA_BRPORT_LOCKED */
@@ -124,7 +124,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		+ nla_total_size(sizeof(struct ifla_bridge_id))	/* IFLA_BRPORT_ROOT_ID */
  		+ nla_total_size(sizeof(struct ifla_bridge_id))	/* IFLA_BRPORT_BRIDGE_ID */
  		+ nla_total_size(sizeof(u16))	/* IFLA_BRPORT_DESIGNATED_PORT */
-@@ -269,7 +270,8 @@ static int br_port_fill_attrs(struct sk_
+@@ -274,7 +275,8 @@ static int br_port_fill_attrs(struct sk_
  	    nla_put_u8(skb, IFLA_BRPORT_MRP_IN_OPEN,
  		       !!(p->flags & BR_MRP_LOST_IN_CONT)) ||
  	    nla_put_u8(skb, IFLA_BRPORT_ISOLATED, !!(p->flags & BR_ISOLATED)) ||
@@ -134,15 +134,15 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		return -EMSGSIZE;
  
  	timerval = br_timer_value(&p->message_age_timer);
-@@ -829,6 +831,7 @@ static const struct nla_policy br_port_p
- 	[IFLA_BRPORT_ISOLATED]	= { .type = NLA_U8 },
+@@ -878,6 +880,7 @@ static const struct nla_policy br_port_p
+ 	[IFLA_BRPORT_LOCKED] = { .type = NLA_U8 },
  	[IFLA_BRPORT_BACKUP_PORT] = { .type = NLA_U32 },
  	[IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT] = { .type = NLA_U32 },
 +	[IFLA_BRPORT_BPDU_FILTER] = { .type = NLA_U8 },
  };
  
  /* Change the state of the port and notify spanning tree */
-@@ -893,6 +896,7 @@ static int br_setport(struct net_bridge_
+@@ -943,6 +946,7 @@ static int br_setport(struct net_bridge_
  	br_set_port_flag(p, tb, IFLA_BRPORT_NEIGH_SUPPRESS, BR_NEIGH_SUPPRESS);
  	br_set_port_flag(p, tb, IFLA_BRPORT_ISOLATED, BR_ISOLATED);
  	br_set_port_flag(p, tb, IFLA_BRPORT_LOCKED, BR_PORT_LOCKED);
@@ -152,7 +152,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
 --- a/net/core/rtnetlink.c
 +++ b/net/core/rtnetlink.c
-@@ -55,7 +55,7 @@
+@@ -57,7 +57,7 @@
  #include "dev.h"
  
  #define RTNL_MAX_TYPE		50
@@ -161,7 +161,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  struct rtnl_link {
  	rtnl_doit_func		doit;
-@@ -4700,7 +4700,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu
+@@ -4811,7 +4811,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu
  	    brport_nla_put_flag(skb, flags, mask,
  				IFLA_BRPORT_MCAST_FLOOD, BR_MCAST_FLOOD) ||
  	    brport_nla_put_flag(skb, flags, mask,
diff --git a/target/linux/generic/pending-6.1/721-net-phy-realtek-rtl8221-allow-to-configure-SERDES-mo.patch b/target/linux/generic/pending-6.1/721-net-phy-realtek-rtl8221-allow-to-configure-SERDES-mo.patch
index c93fe42273..f29e690350 100644
--- a/target/linux/generic/pending-6.1/721-net-phy-realtek-rtl8221-allow-to-configure-SERDES-mo.patch
+++ b/target/linux/generic/pending-6.1/721-net-phy-realtek-rtl8221-allow-to-configure-SERDES-mo.patch
@@ -39,7 +39,7 @@ Signed-off-by: Alexander Couzens <lynxis at fe80.eu>
  #define RTL8366RB_POWER_SAVE			0x15
  #define RTL8366RB_POWER_SAVE_ON			BIT(12)
  
-@@ -841,6 +850,48 @@ static irqreturn_t rtl9000a_handle_inter
+@@ -849,6 +858,48 @@ static irqreturn_t rtl9000a_handle_inter
  	return IRQ_HANDLED;
  }
  
@@ -88,7 +88,7 @@ Signed-off-by: Alexander Couzens <lynxis at fe80.eu>
  static struct phy_driver realtek_drvs[] = {
  	{
  		PHY_ID_MATCH_EXACT(0x00008201),
-@@ -981,6 +1032,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1001,6 +1052,7 @@ static struct phy_driver realtek_drvs[]
  		PHY_ID_MATCH_EXACT(0x001cc849),
  		.name           = "RTL8221B-VB-CG 2.5Gbps PHY",
  		.get_features   = rtl822x_get_features,
@@ -96,7 +96,7 @@ Signed-off-by: Alexander Couzens <lynxis at fe80.eu>
  		.config_aneg    = rtl822x_config_aneg,
  		.read_status    = rtl822x_read_status,
  		.suspend        = genphy_suspend,
-@@ -992,6 +1044,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1012,6 +1064,7 @@ static struct phy_driver realtek_drvs[]
  		.name           = "RTL8221B-VM-CG 2.5Gbps PHY",
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
diff --git a/target/linux/generic/pending-6.1/722-net-phy-realtek-support-switching-between-SGMII-and-.patch b/target/linux/generic/pending-6.1/722-net-phy-realtek-support-switching-between-SGMII-and-.patch
index 211a8ed297..b236c0816c 100644
--- a/target/linux/generic/pending-6.1/722-net-phy-realtek-support-switching-between-SGMII-and-.patch
+++ b/target/linux/generic/pending-6.1/722-net-phy-realtek-support-switching-between-SGMII-and-.patch
@@ -16,7 +16,7 @@ Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
 
 --- a/drivers/net/phy/realtek.c
 +++ b/drivers/net/phy/realtek.c
-@@ -676,6 +676,25 @@ static int rtl822x_config_aneg(struct ph
+@@ -684,6 +684,25 @@ static int rtl822x_config_aneg(struct ph
  	return __genphy_config_aneg(phydev, ret);
  }
  
@@ -42,7 +42,7 @@ Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
  static int rtl822x_read_status(struct phy_device *phydev)
  {
  	int ret;
-@@ -694,11 +713,14 @@ static int rtl822x_read_status(struct ph
+@@ -702,11 +721,14 @@ static int rtl822x_read_status(struct ph
  			phydev->lp_advertising, lpadv & RTL_LPADV_2500FULL);
  	}
  
diff --git a/target/linux/generic/pending-6.1/723-net-mt7531-ensure-all-MACs-are-powered-down-before-r.patch b/target/linux/generic/pending-6.1/723-net-mt7531-ensure-all-MACs-are-powered-down-before-r.patch
index d93ee0685b..06642ec866 100644
--- a/target/linux/generic/pending-6.1/723-net-mt7531-ensure-all-MACs-are-powered-down-before-r.patch
+++ b/target/linux/generic/pending-6.1/723-net-mt7531-ensure-all-MACs-are-powered-down-before-r.patch
@@ -15,7 +15,7 @@ Signed-off-by: Alexander Couzens <lynxis at fe80.eu>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -2347,6 +2347,10 @@ mt7531_setup(struct dsa_switch *ds)
+@@ -2196,6 +2196,10 @@ mt7530_setup(struct dsa_switch *ds)
  		return -ENODEV;
  	}
  
diff --git a/target/linux/generic/pending-6.1/724-net-phy-realtek-use-genphy_soft_reset-for-2.5G-PHYs.patch b/target/linux/generic/pending-6.1/724-net-phy-realtek-use-genphy_soft_reset-for-2.5G-PHYs.patch
index 6941818351..cdc1817637 100644
--- a/target/linux/generic/pending-6.1/724-net-phy-realtek-use-genphy_soft_reset-for-2.5G-PHYs.patch
+++ b/target/linux/generic/pending-6.1/724-net-phy-realtek-use-genphy_soft_reset-for-2.5G-PHYs.patch
@@ -15,7 +15,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/drivers/net/phy/realtek.c
 +++ b/drivers/net/phy/realtek.c
-@@ -1018,6 +1018,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1038,6 +1038,7 @@ static struct phy_driver realtek_drvs[]
  		.write_page	= rtl821x_write_page,
  		.read_mmd	= rtl822x_read_mmd,
  		.write_mmd	= rtl822x_write_mmd,
@@ -23,7 +23,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	}, {
  		PHY_ID_MATCH_EXACT(0x001cc840),
  		.name		= "RTL8226B_RTL8221B 2.5Gbps PHY",
-@@ -1030,6 +1031,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1050,6 +1051,7 @@ static struct phy_driver realtek_drvs[]
  		.write_page	= rtl821x_write_page,
  		.read_mmd	= rtl822x_read_mmd,
  		.write_mmd	= rtl822x_write_mmd,
@@ -31,7 +31,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	}, {
  		PHY_ID_MATCH_EXACT(0x001cc838),
  		.name           = "RTL8226-CG 2.5Gbps PHY",
-@@ -1040,6 +1042,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1060,6 +1062,7 @@ static struct phy_driver realtek_drvs[]
  		.resume         = rtlgen_resume,
  		.read_page      = rtl821x_read_page,
  		.write_page     = rtl821x_write_page,
@@ -39,7 +39,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	}, {
  		PHY_ID_MATCH_EXACT(0x001cc848),
  		.name           = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY",
-@@ -1050,6 +1053,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1070,6 +1073,7 @@ static struct phy_driver realtek_drvs[]
  		.resume         = rtlgen_resume,
  		.read_page      = rtl821x_read_page,
  		.write_page     = rtl821x_write_page,
@@ -47,7 +47,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	}, {
  		PHY_ID_MATCH_EXACT(0x001cc849),
  		.name           = "RTL8221B-VB-CG 2.5Gbps PHY",
-@@ -1061,6 +1065,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1081,6 +1085,7 @@ static struct phy_driver realtek_drvs[]
  		.resume         = rtlgen_resume,
  		.read_page      = rtl821x_read_page,
  		.write_page     = rtl821x_write_page,
@@ -55,7 +55,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	}, {
  		PHY_ID_MATCH_EXACT(0x001cc84a),
  		.name           = "RTL8221B-VM-CG 2.5Gbps PHY",
-@@ -1072,6 +1077,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1092,6 +1097,7 @@ static struct phy_driver realtek_drvs[]
  		.resume         = rtlgen_resume,
  		.read_page      = rtl821x_read_page,
  		.write_page     = rtl821x_write_page,
diff --git a/target/linux/generic/pending-6.1/725-net-phy-realtek-disable-SGMII-in-band-AN-for-2-5G-PHYs.patch b/target/linux/generic/pending-6.1/725-net-phy-realtek-disable-SGMII-in-band-AN-for-2-5G-PHYs.patch
index 1370c6324b..d709a79099 100644
--- a/target/linux/generic/pending-6.1/725-net-phy-realtek-disable-SGMII-in-band-AN-for-2-5G-PHYs.patch
+++ b/target/linux/generic/pending-6.1/725-net-phy-realtek-disable-SGMII-in-band-AN-for-2-5G-PHYs.patch
@@ -19,7 +19,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/drivers/net/phy/realtek.c
 +++ b/drivers/net/phy/realtek.c
-@@ -875,6 +875,7 @@ static irqreturn_t rtl9000a_handle_inter
+@@ -883,6 +883,7 @@ static irqreturn_t rtl9000a_handle_inter
  static int rtl8221b_config_init(struct phy_device *phydev)
  {
  	u16 option_mode;
@@ -27,7 +27,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  
  	switch (phydev->interface) {
  	case PHY_INTERFACE_MODE_2500BASEX:
-@@ -911,6 +912,13 @@ static int rtl8221b_config_init(struct p
+@@ -919,6 +920,13 @@ static int rtl8221b_config_init(struct p
  		break;
  	}
  
diff --git a/target/linux/generic/pending-6.1/726-net-phy-realtek-make-sure-paged-read-is-protected-by.patch b/target/linux/generic/pending-6.1/726-net-phy-realtek-make-sure-paged-read-is-protected-by.patch
index 31f0622327..986e842e1c 100644
--- a/target/linux/generic/pending-6.1/726-net-phy-realtek-make-sure-paged-read-is-protected-by.patch
+++ b/target/linux/generic/pending-6.1/726-net-phy-realtek-make-sure-paged-read-is-protected-by.patch
@@ -18,7 +18,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/drivers/net/phy/realtek.c
 +++ b/drivers/net/phy/realtek.c
-@@ -727,9 +727,11 @@ static bool rtlgen_supports_2_5gbps(stru
+@@ -735,9 +735,11 @@ static bool rtlgen_supports_2_5gbps(stru
  {
  	int val;
  
diff --git a/target/linux/generic/pending-6.1/727-net-phy-realtek-use-inline-functions-for-10GbE-adver.patch b/target/linux/generic/pending-6.1/727-net-phy-realtek-use-inline-functions-for-10GbE-adver.patch
index a24b4dd79a..717ece0d5e 100644
--- a/target/linux/generic/pending-6.1/727-net-phy-realtek-use-inline-functions-for-10GbE-adver.patch
+++ b/target/linux/generic/pending-6.1/727-net-phy-realtek-use-inline-functions-for-10GbE-adver.patch
@@ -25,7 +25,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  
  #define RTL9000A_GINMR				0x14
  #define RTL9000A_GINMR_LINK_STATUS		BIT(4)
-@@ -661,14 +657,11 @@ static int rtl822x_config_aneg(struct ph
+@@ -669,14 +665,11 @@ static int rtl822x_config_aneg(struct ph
  	int ret = 0;
  
  	if (phydev->autoneg == AUTONEG_ENABLE) {
@@ -44,7 +44,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		if (ret < 0)
  			return ret;
  	}
-@@ -705,12 +698,7 @@ static int rtl822x_read_status(struct ph
+@@ -713,12 +706,7 @@ static int rtl822x_read_status(struct ph
  		if (lpadv < 0)
  			return lpadv;
  
diff --git a/target/linux/generic/pending-6.1/728-net-phy-realtek-check-validity-of-10GbE-link-partner.patch b/target/linux/generic/pending-6.1/728-net-phy-realtek-check-validity-of-10GbE-link-partner.patch
index 084ee4b645..bae24a2ec9 100644
--- a/target/linux/generic/pending-6.1/728-net-phy-realtek-check-validity-of-10GbE-link-partner.patch
+++ b/target/linux/generic/pending-6.1/728-net-phy-realtek-check-validity-of-10GbE-link-partner.patch
@@ -15,7 +15,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/drivers/net/phy/realtek.c
 +++ b/drivers/net/phy/realtek.c
-@@ -698,6 +698,10 @@ static int rtl822x_read_status(struct ph
+@@ -706,6 +706,10 @@ static int rtl822x_read_status(struct ph
  		if (lpadv < 0)
  			return lpadv;
  
diff --git a/target/linux/generic/pending-6.1/729-net-phy-realtek-introduce-rtl822x_probe.patch b/target/linux/generic/pending-6.1/729-net-phy-realtek-introduce-rtl822x_probe.patch
index 87102d3818..b5dbfa383a 100644
--- a/target/linux/generic/pending-6.1/729-net-phy-realtek-introduce-rtl822x_probe.patch
+++ b/target/linux/generic/pending-6.1/729-net-phy-realtek-introduce-rtl822x_probe.patch
@@ -24,7 +24,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  #define RTL8366RB_POWER_SAVE			0x15
  #define RTL8366RB_POWER_SAVE_ON			BIT(12)
  
-@@ -740,6 +744,25 @@ static int rtl8226_match_phy_device(stru
+@@ -748,6 +752,25 @@ static int rtl8226_match_phy_device(stru
  	       rtlgen_supports_2_5gbps(phydev);
  }
  
@@ -50,7 +50,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  static int rtlgen_resume(struct phy_device *phydev)
  {
  	int ret = genphy_resume(phydev);
-@@ -1013,6 +1036,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1033,6 +1056,7 @@ static struct phy_driver realtek_drvs[]
  		.match_phy_device = rtl8226_match_phy_device,
  		.get_features	= rtl822x_get_features,
  		.config_aneg	= rtl822x_config_aneg,
@@ -58,7 +58,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.read_status	= rtl822x_read_status,
  		.suspend	= genphy_suspend,
  		.resume		= rtlgen_resume,
-@@ -1026,6 +1050,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1046,6 +1070,7 @@ static struct phy_driver realtek_drvs[]
  		.name		= "RTL8226B_RTL8221B 2.5Gbps PHY",
  		.get_features	= rtl822x_get_features,
  		.config_aneg	= rtl822x_config_aneg,
@@ -66,7 +66,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.read_status	= rtl822x_read_status,
  		.suspend	= genphy_suspend,
  		.resume		= rtlgen_resume,
-@@ -1039,6 +1064,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1059,6 +1084,7 @@ static struct phy_driver realtek_drvs[]
  		.name           = "RTL8226-CG 2.5Gbps PHY",
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
@@ -74,7 +74,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.read_status    = rtl822x_read_status,
  		.suspend        = genphy_suspend,
  		.resume         = rtlgen_resume,
-@@ -1050,6 +1076,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1070,6 +1096,7 @@ static struct phy_driver realtek_drvs[]
  		.name           = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY",
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
@@ -82,7 +82,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.read_status    = rtl822x_read_status,
  		.suspend        = genphy_suspend,
  		.resume         = rtlgen_resume,
-@@ -1062,6 +1089,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1082,6 +1109,7 @@ static struct phy_driver realtek_drvs[]
  		.get_features   = rtl822x_get_features,
  		.config_init    = rtl8221b_config_init,
  		.config_aneg    = rtl822x_config_aneg,
@@ -90,7 +90,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.read_status    = rtl822x_read_status,
  		.suspend        = genphy_suspend,
  		.resume         = rtlgen_resume,
-@@ -1074,6 +1102,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1094,6 +1122,7 @@ static struct phy_driver realtek_drvs[]
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
  		.config_init    = rtl8221b_config_init,
diff --git a/target/linux/generic/pending-6.1/730-net-phy-realtek-detect-early-version-of-RTL8221B.patch b/target/linux/generic/pending-6.1/730-net-phy-realtek-detect-early-version-of-RTL8221B.patch
index 6d414bfbad..ac38555151 100644
--- a/target/linux/generic/pending-6.1/730-net-phy-realtek-detect-early-version-of-RTL8221B.patch
+++ b/target/linux/generic/pending-6.1/730-net-phy-realtek-detect-early-version-of-RTL8221B.patch
@@ -13,7 +13,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/drivers/net/phy/realtek.c
 +++ b/drivers/net/phy/realtek.c
-@@ -744,6 +744,38 @@ static int rtl8226_match_phy_device(stru
+@@ -752,6 +752,38 @@ static int rtl8226_match_phy_device(stru
  	       rtlgen_supports_2_5gbps(phydev);
  }
  
@@ -52,7 +52,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  static int rtl822x_probe(struct phy_device *phydev)
  {
  	struct device *dev = &phydev->mdio.dev;
-@@ -1084,7 +1116,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1104,7 +1136,7 @@ static struct phy_driver realtek_drvs[]
  		.write_page     = rtl821x_write_page,
  		.soft_reset     = genphy_soft_reset,
  	}, {
diff --git a/target/linux/generic/pending-6.1/731-net-ethernet-mediatek-ppe-add-support-for-flow-accou.patch b/target/linux/generic/pending-6.1/731-net-ethernet-mediatek-ppe-add-support-for-flow-accou.patch
index 2071bb0f94..e18b1d0ee8 100644
--- a/target/linux/generic/pending-6.1/731-net-ethernet-mediatek-ppe-add-support-for-flow-accou.patch
+++ b/target/linux/generic/pending-6.1/731-net-ethernet-mediatek-ppe-add-support-for-flow-accou.patch
@@ -53,7 +53,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -4642,8 +4642,8 @@ static int mtk_probe(struct platform_dev
+@@ -4696,8 +4696,8 @@ static int mtk_probe(struct platform_dev
  		for (i = 0; i < num_ppe; i++) {
  			u32 ppe_addr = eth->soc->reg_map->ppe_base + i * 0x400;
  
@@ -63,8 +63,8 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
 +
  			if (!eth->ppe[i]) {
  				err = -ENOMEM;
- 				goto err_free_dev;
-@@ -4770,6 +4770,7 @@ static const struct mtk_soc_data mt7622_
+ 				goto err_deinit_ppe;
+@@ -4823,6 +4823,7 @@ static const struct mtk_soc_data mt7622_
  	.required_pctl = false,
  	.offload_version = 2,
  	.hash_offset = 2,
@@ -72,7 +72,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
  	.foe_entry_size = sizeof(struct mtk_foe_entry) - 16,
  	.txrx = {
  		.txd_size = sizeof(struct mtk_tx_dma),
-@@ -4807,6 +4808,7 @@ static const struct mtk_soc_data mt7629_
+@@ -4860,6 +4861,7 @@ static const struct mtk_soc_data mt7629_
  	.hw_features = MTK_HW_FEATURES,
  	.required_clks = MT7629_CLKS_BITMAP,
  	.required_pctl = false,
@@ -80,7 +80,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
  	.txrx = {
  		.txd_size = sizeof(struct mtk_tx_dma),
  		.rxd_size = sizeof(struct mtk_rx_dma),
-@@ -4827,6 +4829,7 @@ static const struct mtk_soc_data mt7981_
+@@ -4880,6 +4882,7 @@ static const struct mtk_soc_data mt7981_
  	.offload_version = 2,
  	.hash_offset = 4,
  	.foe_entry_size = sizeof(struct mtk_foe_entry),
@@ -88,8 +88,8 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
  	.txrx = {
  		.txd_size = sizeof(struct mtk_tx_dma_v2),
  		.rxd_size = sizeof(struct mtk_rx_dma_v2),
-@@ -4847,6 +4850,7 @@ static const struct mtk_soc_data mt7986_
- 	.offload_version = 2,
+@@ -4899,6 +4902,7 @@ static const struct mtk_soc_data mt7986_
+ 	.required_pctl = false,
  	.hash_offset = 4,
  	.foe_entry_size = sizeof(struct mtk_foe_entry),
 +	.has_accounting = true,
@@ -98,7 +98,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
  		.rxd_size = sizeof(struct mtk_rx_dma_v2),
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
-@@ -1014,6 +1014,8 @@ struct mtk_reg_map {
+@@ -1017,6 +1017,8 @@ struct mtk_reg_map {
   *				the extra setup for those pins used by GMAC.
   * @hash_offset			Flow table hash offset.
   * @foe_entry_size		Foe table entry size.
@@ -107,7 +107,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
   * @txd_size			Tx DMA descriptor size.
   * @rxd_size			Rx DMA descriptor size.
   * @rx_irq_done_mask		Rx irq done register mask.
-@@ -1031,6 +1033,7 @@ struct mtk_soc_data {
+@@ -1034,6 +1036,7 @@ struct mtk_soc_data {
  	u8		hash_offset;
  	u16		foe_entry_size;
  	netdev_features_t hw_features;
@@ -166,7 +166,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
  static void mtk_ppe_cache_clear(struct mtk_ppe *ppe)
  {
  	ppe_set(ppe, MTK_PPE_CACHE_CTL, MTK_PPE_CACHE_CTL_CLEAR);
-@@ -464,6 +506,13 @@ __mtk_foe_entry_clear(struct mtk_ppe *pp
+@@ -459,6 +501,13 @@ __mtk_foe_entry_clear(struct mtk_ppe *pp
  		hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID);
  		dma_wmb();
  		mtk_ppe_cache_clear(ppe);
@@ -180,7 +180,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
  	}
  	entry->hash = 0xffff;
  
-@@ -571,6 +620,9 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
+@@ -566,6 +615,9 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
  	wmb();
  	hwe->ib1 = entry->ib1;
  
@@ -190,7 +190,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
  	dma_wmb();
  
  	mtk_ppe_cache_clear(ppe);
-@@ -762,11 +814,39 @@ int mtk_ppe_prepare_reset(struct mtk_ppe
+@@ -757,11 +809,39 @@ int mtk_ppe_prepare_reset(struct mtk_ppe
  	return mtk_ppe_wait_busy(ppe);
  }
  
@@ -232,7 +232,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
  	struct mtk_ppe *ppe;
  	u32 foe_flow_size;
  	void *foe;
-@@ -783,7 +863,8 @@ struct mtk_ppe *mtk_ppe_init(struct mtk_
+@@ -778,7 +858,8 @@ struct mtk_ppe *mtk_ppe_init(struct mtk_
  	ppe->base = base;
  	ppe->eth = eth;
  	ppe->dev = dev;
@@ -242,9 +242,9 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
  
  	foe = dmam_alloc_coherent(ppe->dev,
  				  MTK_PPE_ENTRIES * soc->foe_entry_size,
-@@ -799,6 +880,23 @@ struct mtk_ppe *mtk_ppe_init(struct mtk_
+@@ -794,6 +875,23 @@ struct mtk_ppe *mtk_ppe_init(struct mtk_
  	if (!ppe->foe_flow)
- 		return NULL;
+ 		goto err_free_l2_flows;
  
 +	if (accounting) {
 +		mib = dmam_alloc_coherent(ppe->dev, MTK_PPE_ENTRIES * sizeof(*mib),
@@ -266,7 +266,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
  	mtk_ppe_debugfs_init(ppe, index);
  
  	return ppe;
-@@ -913,6 +1011,16 @@ void mtk_ppe_start(struct mtk_ppe *ppe)
+@@ -923,6 +1021,16 @@ void mtk_ppe_start(struct mtk_ppe *ppe)
  		ppe_w32(ppe, MTK_PPE_DEFAULT_CPU_PORT1, 0xcb777);
  		ppe_w32(ppe, MTK_PPE_SBW_CTRL, 0x7f);
  	}
@@ -338,7 +338,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
  void mtk_ppe_deinit(struct mtk_eth *eth);
  void mtk_ppe_start(struct mtk_ppe *ppe);
  int mtk_ppe_stop(struct mtk_ppe *ppe);
-@@ -354,5 +373,7 @@ int mtk_foe_entry_commit(struct mtk_ppe
+@@ -359,5 +377,7 @@ int mtk_foe_entry_commit(struct mtk_ppe
  void mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);
  int mtk_foe_entry_idle_time(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);
  int mtk_ppe_debugfs_init(struct mtk_ppe *ppe, int index);
diff --git a/target/linux/generic/pending-6.1/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch b/target/linux/generic/pending-6.1/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch
index b736ecc75a..204440c41f 100644
--- a/target/linux/generic/pending-6.1/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch
+++ b/target/linux/generic/pending-6.1/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch
@@ -15,11 +15,9 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  net/wireless/Kconfig            | 4 ++++
  3 files changed, 6 insertions(+), 2 deletions(-)
 
-diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index eddf8ee270e7..1ac7390772de 100644
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -2156,7 +2156,7 @@ struct net_device {
+@@ -2167,7 +2167,7 @@ struct net_device {
  #if IS_ENABLED(CONFIG_AX25)
  	void			*ax25_ptr;
  #endif
@@ -28,11 +26,9 @@ index eddf8ee270e7..1ac7390772de 100644
  	struct wireless_dev	*ieee80211_ptr;
  #endif
  #if IS_ENABLED(CONFIG_IEEE802154) || IS_ENABLED(CONFIG_6LOWPAN)
-diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
-index 41c1ad33d009..58a1c5999b44 100644
 --- a/net/batman-adv/hard-interface.c
 +++ b/net/batman-adv/hard-interface.c
-@@ -308,7 +308,7 @@ static bool batadv_is_cfg80211_netdev(struct net_device *net_device)
+@@ -308,7 +308,7 @@ static bool batadv_is_cfg80211_netdev(st
  	if (!net_device)
  		return false;
  
@@ -41,8 +37,6 @@ index 41c1ad33d009..58a1c5999b44 100644
  	/* cfg80211 drivers have to set ieee80211_ptr */
  	if (net_device->ieee80211_ptr)
  		return true;
-diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig
-index f620acd2a0f5..9f1aa9ec9fa3 100644
 --- a/net/wireless/Kconfig
 +++ b/net/wireless/Kconfig
 @@ -26,6 +26,7 @@ config CFG80211
@@ -63,6 +57,3 @@ index f620acd2a0f5..9f1aa9ec9fa3 100644
  if CFG80211
  
  config NL80211_TESTMODE
--- 
-2.37.2
-
diff --git a/target/linux/generic/pending-6.1/732-00-net-ethernet-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch b/target/linux/generic/pending-6.1/732-00-net-ethernet-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch
index 35b296a255..e55375f3a2 100644
--- a/target/linux/generic/pending-6.1/732-00-net-ethernet-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch
+++ b/target/linux/generic/pending-6.1/732-00-net-ethernet-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch
@@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -1850,9 +1850,7 @@ static int mtk_poll_rx(struct napi_struc
+@@ -1898,9 +1898,7 @@ static int mtk_poll_rx(struct napi_struc
  
  	while (done < budget) {
  		unsigned int pktlen, *rxdcsum;
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		dma_addr_t dma_addr;
  		u32 hash, reason;
  		int mac = 0;
-@@ -1987,36 +1985,21 @@ static int mtk_poll_rx(struct napi_struc
+@@ -2035,36 +2033,21 @@ static int mtk_poll_rx(struct napi_struc
  			skb_checksum_none_assert(skb);
  		skb->protocol = eth_type_trans(skb, netdev);
  
@@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		skb_record_rx_queue(skb, 0);
  		napi_gro_receive(napi, skb);
  
-@@ -2831,29 +2814,11 @@ static netdev_features_t mtk_fix_feature
+@@ -2887,29 +2870,11 @@ static netdev_features_t mtk_fix_feature
  
  static int mtk_set_features(struct net_device *dev, netdev_features_t features)
  {
@@ -100,7 +100,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	return 0;
  }
  
-@@ -3167,30 +3132,6 @@ static int mtk_open(struct net_device *d
+@@ -3223,30 +3188,6 @@ static int mtk_open(struct net_device *d
  	struct mtk_eth *eth = mac->hw;
  	int i, err;
  
@@ -131,7 +131,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0);
  	if (err) {
  		netdev_err(dev, "%s: could not attach PHY: %d\n", __func__,
-@@ -3231,6 +3172,35 @@ static int mtk_open(struct net_device *d
+@@ -3285,6 +3226,35 @@ static int mtk_open(struct net_device *d
  	phylink_start(mac->phylink);
  	netif_tx_start_all_queues(dev);
  
@@ -167,7 +167,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	return 0;
  }
  
-@@ -3715,10 +3685,9 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3769,10 +3739,9 @@ static int mtk_hw_init(struct mtk_eth *e
  	if (!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
  		val = mtk_r32(eth, MTK_CDMP_IG_CTRL);
  		mtk_w32(eth, val | MTK_CDMP_STAG_EN, MTK_CDMP_IG_CTRL);
@@ -180,7 +180,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  	/* set interrupt delays based on current Net DIM sample */
  	mtk_dim_rx(&eth->rx_dim.work);
-@@ -4365,7 +4334,7 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4419,7 +4388,7 @@ static int mtk_add_mac(struct mtk_eth *e
  		eth->netdev[id]->hw_features |= NETIF_F_LRO;
  
  	eth->netdev[id]->vlan_features = eth->soc->hw_features &
diff --git a/target/linux/generic/pending-6.1/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch b/target/linux/generic/pending-6.1/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch
index fbf0cb5735..c0a5a93a45 100644
--- a/target/linux/generic/pending-6.1/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch
+++ b/target/linux/generic/pending-6.1/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch
@@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -1423,12 +1423,28 @@ static void mtk_wake_queue(struct mtk_et
+@@ -1469,12 +1469,28 @@ static void mtk_wake_queue(struct mtk_et
  	}
  }
  
@@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	bool gso = false;
  	int tx_num;
  
-@@ -1450,6 +1466,18 @@ static netdev_tx_t mtk_start_xmit(struct
+@@ -1496,6 +1512,18 @@ static netdev_tx_t mtk_start_xmit(struct
  		return NETDEV_TX_BUSY;
  	}
  
@@ -64,7 +64,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	/* TSO: fill MSS info in tcp checksum field */
  	if (skb_is_gso(skb)) {
  		if (skb_cow_head(skb, 0)) {
-@@ -1465,8 +1493,14 @@ static netdev_tx_t mtk_start_xmit(struct
+@@ -1511,8 +1539,14 @@ static netdev_tx_t mtk_start_xmit(struct
  		}
  	}
  
diff --git a/target/linux/generic/pending-6.1/732-03-net-ethernet-mtk_eth_soc-fix-remaining-throughput-re.patch b/target/linux/generic/pending-6.1/732-03-net-ethernet-mtk_eth_soc-fix-remaining-throughput-re.patch
index 0aa9382b6b..77973180f6 100644
--- a/target/linux/generic/pending-6.1/732-03-net-ethernet-mtk_eth_soc-fix-remaining-throughput-re.patch
+++ b/target/linux/generic/pending-6.1/732-03-net-ethernet-mtk_eth_soc-fix-remaining-throughput-re.patch
@@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -667,6 +667,7 @@ static void mtk_mac_link_up(struct phyli
+@@ -710,6 +710,7 @@ static void mtk_mac_link_up(struct phyli
  		 MAC_MCR_FORCE_RX_FC);
  
  	/* Configure speed */
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	switch (speed) {
  	case SPEED_2500:
  	case SPEED_1000:
-@@ -3145,6 +3146,9 @@ found:
+@@ -3201,6 +3202,9 @@ found:
  	if (dp->index >= MTK_QDMA_NUM_QUEUES)
  		return NOTIFY_DONE;
  
diff --git a/target/linux/generic/pending-6.1/734-net-ethernet-mtk_eth_soc-ppe-fix-L2-offloading-with-.patch b/target/linux/generic/pending-6.1/734-net-ethernet-mtk_eth_soc-ppe-fix-L2-offloading-with-.patch
index 9ef65ec16f..dc2163959d 100644
--- a/target/linux/generic/pending-6.1/734-net-ethernet-mtk_eth_soc-ppe-fix-L2-offloading-with-.patch
+++ b/target/linux/generic/pending-6.1/734-net-ethernet-mtk_eth_soc-ppe-fix-L2-offloading-with-.patch
@@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #include <net/dsa.h>
  #include "mtk_eth_soc.h"
  #include "mtk_ppe.h"
-@@ -757,7 +758,9 @@ void __mtk_ppe_check_skb(struct mtk_ppe
+@@ -752,7 +753,9 @@ void __mtk_ppe_check_skb(struct mtk_ppe
  		    skb->dev->dsa_ptr->tag_ops->proto != DSA_TAG_PROTO_MTK)
  			goto out;
  
diff --git a/target/linux/generic/pending-6.1/736-01-net-ethernet-mtk_eth_soc-add-code-for-offloading-flo.patch b/target/linux/generic/pending-6.1/736-01-net-ethernet-mtk_eth_soc-add-code-for-offloading-flo.patch
index 4f765c5c14..c5654a6061 100644
--- a/target/linux/generic/pending-6.1/736-01-net-ethernet-mtk_eth_soc-add-code-for-offloading-flo.patch
+++ b/target/linux/generic/pending-6.1/736-01-net-ethernet-mtk_eth_soc-add-code-for-offloading-flo.patch
@@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
-@@ -1277,6 +1277,9 @@ int mtk_gmac_rgmii_path_setup(struct mtk
+@@ -1280,6 +1280,9 @@ int mtk_gmac_rgmii_path_setup(struct mtk
  int mtk_eth_offload_init(struct mtk_eth *eth);
  int mtk_eth_setup_tc(struct net_device *dev, enum tc_setup_type type,
  		     void *type_data);
@@ -120,7 +120,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  static void
  wed_m32(struct mtk_wed_device *dev, u32 reg, u32 mask, u32 val)
  {
-@@ -1752,6 +1759,99 @@ out:
+@@ -1745,6 +1752,99 @@ out:
  	mutex_unlock(&hw_lock);
  }
  
@@ -220,7 +220,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  void mtk_wed_add_hw(struct device_node *np, struct mtk_eth *eth,
  		    void __iomem *wdma, phys_addr_t wdma_phy,
  		    int index)
-@@ -1771,6 +1871,7 @@ void mtk_wed_add_hw(struct device_node *
+@@ -1764,6 +1864,7 @@ void mtk_wed_add_hw(struct device_node *
  		.irq_set_mask = mtk_wed_irq_set_mask,
  		.detach = mtk_wed_detach,
  		.ppe_check = mtk_wed_ppe_check,
diff --git a/target/linux/generic/pending-6.1/736-02-net-ethernet-mediatek-mtk_ppe-prefer-newly-added-l2-.patch b/target/linux/generic/pending-6.1/736-02-net-ethernet-mediatek-mtk_ppe-prefer-newly-added-l2-.patch
index 6e17e4dc52..08036e0b17 100644
--- a/target/linux/generic/pending-6.1/736-02-net-ethernet-mediatek-mtk_ppe-prefer-newly-added-l2-.patch
+++ b/target/linux/generic/pending-6.1/736-02-net-ethernet-mediatek-mtk_ppe-prefer-newly-added-l2-.patch
@@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
 +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
-@@ -639,10 +639,20 @@ void mtk_foe_entry_clear(struct mtk_ppe
+@@ -634,10 +634,20 @@ void mtk_foe_entry_clear(struct mtk_ppe
  static int
  mtk_foe_entry_commit_l2(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
  {
diff --git a/target/linux/generic/pending-6.1/736-03-net-ethernet-mtk_eth_soc-improve-keeping-track-of-of.patch b/target/linux/generic/pending-6.1/736-03-net-ethernet-mtk_eth_soc-improve-keeping-track-of-of.patch
index 29d6e0b099..ec04fb3542 100644
--- a/target/linux/generic/pending-6.1/736-03-net-ethernet-mtk_eth_soc-improve-keeping-track-of-of.patch
+++ b/target/linux/generic/pending-6.1/736-03-net-ethernet-mtk_eth_soc-improve-keeping-track-of-of.patch
@@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
 +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
-@@ -466,42 +466,43 @@ int mtk_foe_entry_set_queue(struct mtk_e
+@@ -460,42 +460,43 @@ int mtk_foe_entry_set_queue(struct mtk_e
  	return 0;
  }
  
@@ -72,7 +72,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, entry->hash);
  
  		hwe->ib1 &= ~MTK_FOE_IB1_STATE;
-@@ -520,7 +521,8 @@ __mtk_foe_entry_clear(struct mtk_ppe *pp
+@@ -515,7 +516,8 @@ __mtk_foe_entry_clear(struct mtk_ppe *pp
  	if (entry->type != MTK_FLOW_TYPE_L2_SUBFLOW)
  		return;
  
@@ -82,7 +82,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	kfree(entry);
  }
  
-@@ -536,66 +538,55 @@ static int __mtk_foe_entry_idle_time(str
+@@ -531,66 +533,55 @@ static int __mtk_foe_entry_idle_time(str
  		return now - timestamp;
  }
  
@@ -178,7 +178,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  }
  
  static void
-@@ -632,7 +623,8 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
+@@ -627,7 +618,8 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
  void mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
  {
  	spin_lock_bh(&ppe_lock);
@@ -188,7 +188,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	spin_unlock_bh(&ppe_lock);
  }
  
-@@ -679,8 +671,8 @@ mtk_foe_entry_commit_subflow(struct mtk_
+@@ -674,8 +666,8 @@ mtk_foe_entry_commit_subflow(struct mtk_
  {
  	const struct mtk_soc_data *soc = ppe->eth->soc;
  	struct mtk_flow_entry *flow_info;
@@ -198,7 +198,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	u32 ib1_mask = mtk_get_ib1_pkt_type_mask(ppe->eth) | MTK_FOE_IB1_UDP;
  	int type;
  
-@@ -688,30 +680,30 @@ mtk_foe_entry_commit_subflow(struct mtk_
+@@ -683,30 +675,30 @@ mtk_foe_entry_commit_subflow(struct mtk_
  	if (!flow_info)
  		return;
  
@@ -239,7 +239,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  }
  
  void __mtk_ppe_check_skb(struct mtk_ppe *ppe, struct sk_buff *skb, u16 hash)
-@@ -721,9 +713,11 @@ void __mtk_ppe_check_skb(struct mtk_ppe
+@@ -716,9 +708,11 @@ void __mtk_ppe_check_skb(struct mtk_ppe
  	struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, hash);
  	struct mtk_flow_entry *entry;
  	struct mtk_foe_bridge key = {};
@@ -251,7 +251,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	u8 *tag;
  
  	spin_lock_bh(&ppe_lock);
-@@ -731,20 +725,14 @@ void __mtk_ppe_check_skb(struct mtk_ppe
+@@ -726,20 +720,14 @@ void __mtk_ppe_check_skb(struct mtk_ppe
  	if (FIELD_GET(MTK_FOE_IB1_STATE, hwe->ib1) == MTK_FOE_STATE_BIND)
  		goto out;
  
@@ -278,7 +278,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  			continue;
  		}
  
-@@ -795,9 +783,17 @@ out:
+@@ -790,9 +778,17 @@ out:
  
  int mtk_foe_entry_idle_time(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
  {
diff --git a/target/linux/generic/pending-6.1/736-04-net-ethernet-mediatek-fix-ppe-flow-accounting-for-L2.patch b/target/linux/generic/pending-6.1/736-04-net-ethernet-mediatek-fix-ppe-flow-accounting-for-L2.patch
index 26b3335119..79386d6cf9 100644
--- a/target/linux/generic/pending-6.1/736-04-net-ethernet-mediatek-fix-ppe-flow-accounting-for-L2.patch
+++ b/target/linux/generic/pending-6.1/736-04-net-ethernet-mediatek-fix-ppe-flow-accounting-for-L2.patch
@@ -77,7 +77,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  }
  
  static void mtk_ppe_cache_clear(struct mtk_ppe *ppe)
-@@ -508,13 +523,6 @@ __mtk_foe_entry_clear(struct mtk_ppe *pp
+@@ -503,13 +518,6 @@ __mtk_foe_entry_clear(struct mtk_ppe *pp
  		hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID);
  		dma_wmb();
  		mtk_ppe_cache_clear(ppe);
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	}
  	entry->hash = 0xffff;
  
-@@ -539,11 +547,14 @@ static int __mtk_foe_entry_idle_time(str
+@@ -534,11 +542,14 @@ static int __mtk_foe_entry_idle_time(str
  }
  
  static bool
@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	int len;
  
  	if (hash == 0xffff)
-@@ -554,18 +565,35 @@ mtk_flow_entry_update(struct mtk_ppe *pp
+@@ -549,18 +560,35 @@ mtk_flow_entry_update(struct mtk_ppe *pp
  	memcpy(&foe, hwe, len);
  
  	if (!mtk_flow_entry_match(ppe->eth, entry, &foe, len) ||
@@ -146,7 +146,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	struct mtk_flow_entry *cur;
  	struct hlist_node *tmp;
  	int idle;
-@@ -574,7 +602,9 @@ mtk_flow_entry_update_l2(struct mtk_ppe
+@@ -569,7 +597,9 @@ mtk_flow_entry_update_l2(struct mtk_ppe
  	hlist_for_each_entry_safe(cur, tmp, &entry->l2_flows, l2_list) {
  		int cur_idle;
  
@@ -157,7 +157,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  			__mtk_foe_entry_clear(ppe, entry, false);
  			continue;
  		}
-@@ -589,10 +619,29 @@ mtk_flow_entry_update_l2(struct mtk_ppe
+@@ -584,10 +614,29 @@ mtk_flow_entry_update_l2(struct mtk_ppe
  	}
  }
  
@@ -187,7 +187,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	struct mtk_eth *eth = ppe->eth;
  	u16 timestamp = mtk_eth_timestamp(eth);
  	struct mtk_foe_entry *hwe;
-@@ -617,6 +666,12 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
+@@ -612,6 +661,12 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
  
  	dma_wmb();
  
@@ -200,7 +200,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	mtk_ppe_cache_clear(ppe);
  }
  
-@@ -781,21 +836,6 @@ out:
+@@ -776,21 +831,6 @@ out:
  	spin_unlock_bh(&ppe_lock);
  }
  
@@ -222,7 +222,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  int mtk_ppe_prepare_reset(struct mtk_ppe *ppe)
  {
  	if (!ppe)
-@@ -823,32 +863,6 @@ int mtk_ppe_prepare_reset(struct mtk_ppe
+@@ -818,32 +858,6 @@ int mtk_ppe_prepare_reset(struct mtk_ppe
  	return mtk_ppe_wait_busy(ppe);
  }
  
@@ -266,7 +266,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  };
  
  struct mtk_mib_entry {
-@@ -325,6 +327,7 @@ struct mtk_ppe *mtk_ppe_init(struct mtk_
+@@ -326,6 +328,7 @@ void mtk_ppe_deinit(struct mtk_eth *eth)
  void mtk_ppe_start(struct mtk_ppe *ppe);
  int mtk_ppe_stop(struct mtk_ppe *ppe);
  int mtk_ppe_prepare_reset(struct mtk_ppe *ppe);
@@ -274,7 +274,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  void __mtk_ppe_check_skb(struct mtk_ppe *ppe, struct sk_buff *skb, u16 hash);
  
-@@ -373,9 +376,8 @@ int mtk_foe_entry_set_queue(struct mtk_e
+@@ -374,9 +377,8 @@ int mtk_foe_entry_set_queue(struct mtk_e
  			    unsigned int queue);
  int mtk_foe_entry_commit(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);
  void mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);
diff --git a/target/linux/generic/pending-6.1/736-06-net-ethernet-mediatek-fix-ppe-flow-accounting-for-v1.patch b/target/linux/generic/pending-6.1/736-06-net-ethernet-mediatek-fix-ppe-flow-accounting-for-v1.patch
index 3dfa193e70..33c9838327 100644
--- a/target/linux/generic/pending-6.1/736-06-net-ethernet-mediatek-fix-ppe-flow-accounting-for-v1.patch
+++ b/target/linux/generic/pending-6.1/736-06-net-ethernet-mediatek-fix-ppe-flow-accounting-for-v1.patch
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
 +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
-@@ -646,6 +646,7 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
+@@ -640,6 +640,7 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
  	struct mtk_eth *eth = ppe->eth;
  	u16 timestamp = mtk_eth_timestamp(eth);
  	struct mtk_foe_entry *hwe;
@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  	if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
  		entry->ib1 &= ~MTK_FOE_IB1_BIND_TIMESTAMP_V2;
-@@ -662,8 +663,13 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
+@@ -656,8 +657,13 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
  	wmb();
  	hwe->ib1 = entry->ib1;
  
diff --git a/target/linux/generic/pending-6.1/760-net-core-add-optional-threading-for-backlog-processi.patch b/target/linux/generic/pending-6.1/760-net-core-add-optional-threading-for-backlog-processi.patch
index 8dace90b96..50943469ef 100644
--- a/target/linux/generic/pending-6.1/760-net-core-add-optional-threading-for-backlog-processi.patch
+++ b/target/linux/generic/pending-6.1/760-net-core-add-optional-threading-for-backlog-processi.patch
@@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -502,6 +502,7 @@ static inline bool napi_complete(struct
+@@ -520,6 +520,7 @@ static inline bool napi_complete(struct
  }
  
  int dev_set_threaded(struct net_device *dev, bool threaded);
@@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  /**
   *	napi_disable - prevent NAPI from scheduling
-@@ -3365,6 +3366,7 @@ struct softnet_data {
+@@ -3126,6 +3127,7 @@ struct softnet_data {
  	unsigned int		processed;
  	unsigned int		time_squeeze;
  	unsigned int		received_rps;
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #endif
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4574,7 +4574,7 @@ static int rps_ipi_queued(struct softnet
+@@ -4604,7 +4604,7 @@ static int napi_schedule_rps(struct soft
  	struct softnet_data *mysd = this_cpu_ptr(&softnet_data);
  
  #ifdef CONFIG_RPS
@@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		sd->rps_ipi_next = mysd->rps_ipi_list;
  		mysd->rps_ipi_list = sd;
  
-@@ -5755,6 +5755,8 @@ static DEFINE_PER_CPU(struct work_struct
+@@ -5785,6 +5785,8 @@ static DEFINE_PER_CPU(struct work_struct
  /* Network device is going away, flush any packets still pending */
  static void flush_backlog(struct work_struct *work)
  {
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	struct sk_buff *skb, *tmp;
  	struct softnet_data *sd;
  
-@@ -5770,8 +5772,17 @@ static void flush_backlog(struct work_st
+@@ -5799,8 +5801,17 @@ static void flush_backlog(struct work_st
  			input_queue_head_incr(sd);
  		}
  	}
@@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
  		if (skb->dev->reg_state == NETREG_UNREGISTERING) {
  			__skb_unlink(skb, &sd->process_queue);
-@@ -5780,7 +5791,16 @@ static void flush_backlog(struct work_st
+@@ -5808,7 +5819,16 @@ static void flush_backlog(struct work_st
  			input_queue_head_incr(sd);
  		}
  	}
@@ -83,15 +83,15 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  }
  
  static bool flush_required(int cpu)
-@@ -6463,6 +6485,7 @@ static int process_backlog(struct napi_s
+@@ -5940,6 +5960,7 @@ static int process_backlog(struct napi_s
  		}
-
+ 
  		rps_lock_irq_disable(sd);
 +		sd->process_queue_empty++;
  		if (skb_queue_empty(&sd->input_pkt_queue)) {
  			/*
  			 * Inline a custom version of __napi_complete().
-@@ -6472,7 +6495,8 @@ static int process_backlog(struct napi_s
+@@ -5949,7 +5970,8 @@ static int process_backlog(struct napi_s
  			 * We can use a plain write instead of clear_bit(),
  			 * and we dont need an smp_mb() memory barrier.
  			 */
@@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  			again = false;
  		} else {
  			skb_queue_splice_tail_init(&sd->input_pkt_queue,
-@@ -6889,6 +6913,55 @@ int dev_set_threaded(struct net_device *
+@@ -6365,6 +6387,55 @@ int dev_set_threaded(struct net_device *
  }
  EXPORT_SYMBOL(dev_set_threaded);
  
@@ -155,9 +155,9 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +}
 +
  void netif_napi_add_weight(struct net_device *dev, struct napi_struct *napi,
- 		    int (*poll)(struct napi_struct *, int), int weight)
+ 			   int (*poll)(struct napi_struct *, int), int weight)
  {
-@@ -11367,6 +11442,9 @@ static int dev_cpu_dead(unsigned int old
+@@ -11137,6 +11208,9 @@ static int dev_cpu_dead(unsigned int old
  	raise_softirq_irqoff(NET_TX_SOFTIRQ);
  	local_irq_enable();
  
@@ -167,9 +167,9 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #ifdef CONFIG_RPS
  	remsd = oldsd->rps_ipi_list;
  	oldsd->rps_ipi_list = NULL;
-@@ -11706,6 +11784,7 @@ static int __init net_dev_init(void)
- 		sd->cpu = i;
- #endif
+@@ -11440,6 +11514,7 @@ static int __init net_dev_init(void)
+ 		INIT_CSD(&sd->defer_csd, trigger_rx_softirq, sd);
+ 		spin_lock_init(&sd->defer_lock);
  
 +		INIT_LIST_HEAD(&sd->backlog.poll_list);
  		init_gro_hash(&sd->backlog);
@@ -177,7 +177,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		sd->backlog.weight = weight_p;
 --- a/net/core/sysctl_net_core.c
 +++ b/net/core/sysctl_net_core.c
-@@ -28,6 +28,7 @@ static int int_3600 = 3600;
+@@ -29,6 +29,7 @@ static int int_3600 = 3600;
  static int min_sndbuf = SOCK_MIN_SNDBUF;
  static int min_rcvbuf = SOCK_MIN_RCVBUF;
  static int max_skb_frags = MAX_SKB_FRAGS;
@@ -185,7 +185,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  static int net_msg_warn;	/* Unused, but still a sysctl */
  
-@@ -114,6 +115,23 @@ static int rps_sock_flow_sysctl(struct c
+@@ -112,6 +113,23 @@ static int rps_sock_flow_sysctl(struct c
  }
  #endif /* CONFIG_RPS */
  
@@ -209,7 +209,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #ifdef CONFIG_NET_FLOW_LIMIT
  static DEFINE_MUTEX(flow_limit_update_mutex);
  
-@@ -470,6 +488,15 @@ static struct ctl_table net_core_table[]
+@@ -473,6 +491,15 @@ static struct ctl_table net_core_table[]
  		.proc_handler	= rps_sock_flow_sysctl
  	},
  #endif
diff --git a/target/linux/generic/pending-6.1/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch b/target/linux/generic/pending-6.1/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch
index 18933de3a0..a9c3f60ce0 100644
--- a/target/linux/generic/pending-6.1/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch
+++ b/target/linux/generic/pending-6.1/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch
@@ -17,7 +17,7 @@ Signed-off-by: Tobias Waldekranz <tobias at waldekranz.com>
 
 --- a/drivers/net/dsa/mv88e6xxx/chip.c
 +++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -6333,6 +6333,7 @@ static int mv88e6xxx_register_switch(str
+@@ -6971,6 +6971,7 @@ static int mv88e6xxx_register_switch(str
  	ds->ops = &mv88e6xxx_switch_ops;
  	ds->ageing_time_min = chip->info->age_time_coeff;
  	ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;
diff --git a/target/linux/generic/pending-6.1/772-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch b/target/linux/generic/pending-6.1/772-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch
index ca963d1260..23859816fa 100644
--- a/target/linux/generic/pending-6.1/772-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch
+++ b/target/linux/generic/pending-6.1/772-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch
@@ -152,7 +152,7 @@ Reviewed-by: Andrew Lunn <andrew at lunn.ch>
  	if (is531x5(dev) && phy_interface_is_rgmii(phydev)) {
  		if (port == dev->imp_port)
  			off = B53_RGMII_CTRL_IMP;
-@@ -1419,6 +1462,9 @@ void b53_phylink_mac_link_up(struct dsa_
+@@ -1402,6 +1445,9 @@ void b53_phylink_mac_link_up(struct dsa_
  {
  	struct b53_device *dev = ds->priv;
  
@@ -164,7 +164,7 @@ Reviewed-by: Andrew Lunn <andrew at lunn.ch>
  
 --- a/drivers/net/dsa/b53/b53_priv.h
 +++ b/drivers/net/dsa/b53/b53_priv.h
-@@ -206,6 +206,7 @@ static inline int is58xx(struct b53_devi
+@@ -211,6 +211,7 @@ static inline int is58xx(struct b53_devi
  		dev->chip_id == BCM7278_DEVICE_ID;
  }
  
diff --git a/target/linux/generic/pending-6.1/773-net-dsa-b53-mmap-add-more-63xx-SoCs.patch b/target/linux/generic/pending-6.1/773-net-dsa-b53-mmap-add-more-63xx-SoCs.patch
index e2da4e7f05..8ab701ef56 100644
--- a/target/linux/generic/pending-6.1/773-net-dsa-b53-mmap-add-more-63xx-SoCs.patch
+++ b/target/linux/generic/pending-6.1/773-net-dsa-b53-mmap-add-more-63xx-SoCs.patch
@@ -94,7 +94,7 @@ Reviewed-by: Florian Fainelli <f.fainelli at gmail.com>
 
 --- a/drivers/net/dsa/b53/b53_mmap.c
 +++ b/drivers/net/dsa/b53/b53_mmap.c
-@@ -347,8 +347,11 @@ static void b53_mmap_shutdown(struct pla
+@@ -345,8 +345,11 @@ static void b53_mmap_shutdown(struct pla
  
  static const struct of_device_id b53_mmap_of_table[] = {
  	{ .compatible = "brcm,bcm3384-switch" },
diff --git a/target/linux/generic/pending-6.1/774-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch b/target/linux/generic/pending-6.1/774-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch
index 456643f05d..de237374af 100644
--- a/target/linux/generic/pending-6.1/774-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch
+++ b/target/linux/generic/pending-6.1/774-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch
@@ -100,7 +100,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2461,6 +2461,19 @@ static const struct b53_chip_data b53_sw
+@@ -2466,6 +2466,19 @@ static const struct b53_chip_data b53_sw
  		.jumbo_size_reg = B53_JUMBO_MAX_SIZE_63XX,
  	},
  	{
@@ -131,7 +131,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
  	pdata->big_endian = of_property_read_bool(np, "big-endian");
  
  	of_ports = of_get_child_by_name(np, "ports");
-@@ -346,14 +346,28 @@ static void b53_mmap_shutdown(struct pla
+@@ -344,14 +344,28 @@ static void b53_mmap_shutdown(struct pla
  }
  
  static const struct of_device_id b53_mmap_of_table[] = {
@@ -170,7 +170,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
  
 --- a/drivers/net/dsa/b53/b53_priv.h
 +++ b/drivers/net/dsa/b53/b53_priv.h
-@@ -75,6 +75,7 @@ enum {
+@@ -70,6 +70,7 @@ enum {
  	BCM53125_DEVICE_ID = 0x53125,
  	BCM53128_DEVICE_ID = 0x53128,
  	BCM63XX_DEVICE_ID = 0x6300,
@@ -178,7 +178,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
  	BCM53010_DEVICE_ID = 0x53010,
  	BCM53011_DEVICE_ID = 0x53011,
  	BCM53012_DEVICE_ID = 0x53012,
-@@ -186,7 +187,13 @@ static inline int is531x5(struct b53_dev
+@@ -191,7 +192,13 @@ static inline int is531x5(struct b53_dev
  
  static inline int is63xx(struct b53_device *dev)
  {
diff --git a/target/linux/generic/pending-6.1/777-net-dsa-b53-mdio-add-support-for-BCM53134.patch b/target/linux/generic/pending-6.1/777-net-dsa-b53-mdio-add-support-for-BCM53134.patch
index 53494eca6e..f0ae2defce 100644
--- a/target/linux/generic/pending-6.1/777-net-dsa-b53-mdio-add-support-for-BCM53134.patch
+++ b/target/linux/generic/pending-6.1/777-net-dsa-b53-mdio-add-support-for-BCM53134.patch
@@ -100,7 +100,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2609,6 +2609,20 @@ static const struct b53_chip_data b53_sw
+@@ -2613,6 +2613,20 @@ static const struct b53_chip_data b53_sw
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
  		.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
  	},
@@ -121,7 +121,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
  };
  
  static int b53_switch_init(struct b53_device *dev)
-@@ -2785,6 +2799,7 @@ int b53_switch_detect(struct b53_device
+@@ -2790,6 +2804,7 @@ int b53_switch_detect(struct b53_device
  		case BCM53012_DEVICE_ID:
  		case BCM53018_DEVICE_ID:
  		case BCM53019_DEVICE_ID:
@@ -149,7 +149,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
  		dev_err(&mdiodev->dev, "Unsupported device: 0x%08x\n", phy_id);
  		return -ENODEV;
  	}
-@@ -377,6 +379,7 @@ static const struct of_device_id b53_of_
+@@ -375,6 +377,7 @@ static const struct of_device_id b53_of_
  	{ .compatible = "brcm,bcm53115" },
  	{ .compatible = "brcm,bcm53125" },
  	{ .compatible = "brcm,bcm53128" },
@@ -159,15 +159,15 @@ Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
  	{ .compatible = "brcm,bcm5395" },
 --- a/drivers/net/dsa/b53/b53_priv.h
 +++ b/drivers/net/dsa/b53/b53_priv.h
-@@ -85,6 +85,7 @@ enum {
+@@ -80,6 +80,7 @@ enum {
  	BCM583XX_DEVICE_ID = 0x58300,
  	BCM7445_DEVICE_ID = 0x7445,
  	BCM7278_DEVICE_ID = 0x7278,
 +	BCM53134_DEVICE_ID = 0x5075,
  };
  
- #define B53_N_PORTS	9
-@@ -182,7 +183,8 @@ static inline int is531x5(struct b53_dev
+ struct b53_pcs {
+@@ -187,7 +188,8 @@ static inline int is531x5(struct b53_dev
  {
  	return dev->chip_id == BCM53115_DEVICE_ID ||
  		dev->chip_id == BCM53125_DEVICE_ID ||
@@ -177,7 +177,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
  }
  
  static inline int is63xx(struct b53_device *dev)
-@@ -210,7 +212,8 @@ static inline int is58xx(struct b53_devi
+@@ -215,7 +217,8 @@ static inline int is58xx(struct b53_devi
  	return dev->chip_id == BCM58XX_DEVICE_ID ||
  		dev->chip_id == BCM583XX_DEVICE_ID ||
  		dev->chip_id == BCM7445_DEVICE_ID ||
diff --git a/target/linux/generic/pending-6.1/780-ARM-kirkwood-add-missing-linux-if_ether.h-for-ETH_AL.patch b/target/linux/generic/pending-6.1/780-ARM-kirkwood-add-missing-linux-if_ether.h-for-ETH_AL.patch
index fcf7892c04..39ba71606e 100644
--- a/target/linux/generic/pending-6.1/780-ARM-kirkwood-add-missing-linux-if_ether.h-for-ETH_AL.patch
+++ b/target/linux/generic/pending-6.1/780-ARM-kirkwood-add-missing-linux-if_ether.h-for-ETH_AL.patch
@@ -51,7 +51,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/arch/arm/mach-mvebu/kirkwood.c
 +++ b/arch/arm/mach-mvebu/kirkwood.c
-@@ -14,6 +14,7 @@
+@@ -11,6 +11,7 @@
  #include <linux/kernel.h>
  #include <linux/init.h>
  #include <linux/mbus.h>
diff --git a/target/linux/generic/pending-6.1/790-bus-mhi-core-add-SBL-state-callback.patch b/target/linux/generic/pending-6.1/790-bus-mhi-core-add-SBL-state-callback.patch
index 2f728fefd7..874df43e7c 100644
--- a/target/linux/generic/pending-6.1/790-bus-mhi-core-add-SBL-state-callback.patch
+++ b/target/linux/generic/pending-6.1/790-bus-mhi-core-add-SBL-state-callback.patch
@@ -20,7 +20,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
 
 --- a/drivers/bus/mhi/host/main.c
 +++ b/drivers/bus/mhi/host/main.c
-@@ -891,6 +891,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_
+@@ -900,6 +900,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_
  			switch (event) {
  			case MHI_EE_SBL:
  				st = DEV_ST_TRANSITION_SBL;
diff --git a/target/linux/generic/pending-6.1/795-mt7530-register-OF-node-for-internal-MDIO-bus.patch b/target/linux/generic/pending-6.1/795-mt7530-register-OF-node-for-internal-MDIO-bus.patch
index f9b88db995..0e0af2a718 100644
--- a/target/linux/generic/pending-6.1/795-mt7530-register-OF-node-for-internal-MDIO-bus.patch
+++ b/target/linux/generic/pending-6.1/795-mt7530-register-OF-node-for-internal-MDIO-bus.patch
@@ -16,7 +16,7 @@ Signed-off-by: David Bauer <mail at david-bauer.net>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -2081,10 +2081,13 @@ mt7530_setup_mdio(struct mt7530_priv *pr
+@@ -2086,10 +2086,13 @@ mt7530_setup_mdio(struct mt7530_priv *pr
  {
  	struct dsa_switch *ds = priv->ds;
  	struct device *dev = priv->dev;
@@ -30,7 +30,7 @@ Signed-off-by: David Bauer <mail at david-bauer.net>
  	bus = devm_mdiobus_alloc(dev);
  	if (!bus)
  		return -ENOMEM;
-@@ -2101,7 +2104,9 @@ mt7530_setup_mdio(struct mt7530_priv *pr
+@@ -2106,7 +2109,9 @@ mt7530_setup_mdio(struct mt7530_priv *pr
  	if (priv->irq)
  		mt7530_setup_mdio_irq(priv);
  
diff --git a/target/linux/generic/pending-6.1/801-gpio-gpio-cascade-add-generic-GPIO-cascade.patch b/target/linux/generic/pending-6.1/801-gpio-gpio-cascade-add-generic-GPIO-cascade.patch
index c1e14b9271..a13d405e64 100644
--- a/target/linux/generic/pending-6.1/801-gpio-gpio-cascade-add-generic-GPIO-cascade.patch
+++ b/target/linux/generic/pending-6.1/801-gpio-gpio-cascade-add-generic-GPIO-cascade.patch
@@ -70,7 +70,7 @@ v1 -> v2:
 
 --- a/drivers/gpio/Kconfig
 +++ b/drivers/gpio/Kconfig
-@@ -1683,4 +1683,19 @@ config GPIO_VIRTIO
+@@ -1711,4 +1711,19 @@ config GPIO_SIM
  
  endmenu
  
@@ -92,7 +92,7 @@ v1 -> v2:
  endif
 --- a/drivers/gpio/Makefile
 +++ b/drivers/gpio/Makefile
-@@ -45,6 +45,7 @@ obj-$(CONFIG_GPIO_BD9571MWV)		+= gpio-bd
+@@ -43,6 +43,7 @@ obj-$(CONFIG_GPIO_BD9571MWV)		+= gpio-bd
  obj-$(CONFIG_GPIO_BRCMSTB)		+= gpio-brcmstb.o
  obj-$(CONFIG_GPIO_BT8XX)		+= gpio-bt8xx.o
  obj-$(CONFIG_GPIO_CADENCE)		+= gpio-cadence.o
diff --git a/target/linux/generic/pending-6.1/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch b/target/linux/generic/pending-6.1/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch
index 477b10c7f2..2b3e4bbf71 100644
--- a/target/linux/generic/pending-6.1/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch
+++ b/target/linux/generic/pending-6.1/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch
@@ -17,11 +17,9 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  include/linux/pm_opp.h            | 11 ++++++-----
  3 files changed, 15 insertions(+), 12 deletions(-)
 
-diff --git a/drivers/devfreq/tegra30-devfreq.c b/drivers/devfreq/tegra30-devfreq.c
-index 503376b894b6..92cdb6bf9a89 100644
 --- a/drivers/devfreq/tegra30-devfreq.c
 +++ b/drivers/devfreq/tegra30-devfreq.c
-@@ -823,8 +823,9 @@ static int devm_tegra_devfreq_init_hw(struct device *dev,
+@@ -823,8 +823,9 @@ static int devm_tegra_devfreq_init_hw(st
  
  static int tegra_devfreq_config_clks_nop(struct device *dev,
  					 struct opp_table *opp_table,
@@ -33,11 +31,9 @@ index 503376b894b6..92cdb6bf9a89 100644
  {
  	/* We want to skip clk configuration via dev_pm_opp_set_opp() */
  	return 0;
-diff --git a/drivers/opp/core.c b/drivers/opp/core.c
-index e87567dbe99f..2f44ceaf8d3c 100644
 --- a/drivers/opp/core.c
 +++ b/drivers/opp/core.c
-@@ -816,7 +816,8 @@ static int _set_opp_voltage(struct device *dev, struct regulator *reg,
+@@ -816,7 +816,8 @@ static int _set_opp_voltage(struct devic
  
  static int
  _opp_config_clk_single(struct device *dev, struct opp_table *opp_table,
@@ -47,7 +43,7 @@ index e87567dbe99f..2f44ceaf8d3c 100644
  {
  	unsigned long *target = data;
  	unsigned long freq;
-@@ -848,8 +849,8 @@ _opp_config_clk_single(struct device *dev, struct opp_table *opp_table,
+@@ -848,8 +849,8 @@ _opp_config_clk_single(struct device *de
   * the order in which they are present in the array while scaling up.
   */
  int dev_pm_opp_config_clks_simple(struct device *dev,
@@ -58,7 +54,7 @@ index e87567dbe99f..2f44ceaf8d3c 100644
  {
  	int ret, i;
  
-@@ -1121,7 +1122,7 @@ static int _set_opp(struct device *dev, struct opp_table *opp_table,
+@@ -1121,7 +1122,7 @@ static int _set_opp(struct device *dev,
  	}
  
  	if (opp_table->config_clks) {
@@ -67,7 +63,7 @@ index e87567dbe99f..2f44ceaf8d3c 100644
  		if (ret)
  			return ret;
  	}
-@@ -1196,7 +1197,7 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq)
+@@ -1196,7 +1197,7 @@ int dev_pm_opp_set_rate(struct device *d
  		 * equivalent to a clk_set_rate()
  		 */
  		if (!_get_opp_count(opp_table)) {
@@ -76,11 +72,9 @@ index e87567dbe99f..2f44ceaf8d3c 100644
  						     &target_freq, false);
  			goto put_opp_table;
  		}
-diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h
-index dc1fb5890792..6c24a4f9fc49 100644
 --- a/include/linux/pm_opp.h
 +++ b/include/linux/pm_opp.h
-@@ -61,7 +61,8 @@ typedef int (*config_regulators_t)(struct device *dev,
+@@ -61,7 +61,8 @@ typedef int (*config_regulators_t)(struc
  			struct dev_pm_opp *old_opp, struct dev_pm_opp *new_opp,
  			struct regulator **regulators, unsigned int count);
  
@@ -90,7 +84,7 @@ index dc1fb5890792..6c24a4f9fc49 100644
  			struct dev_pm_opp *opp, void *data, bool scaling_down);
  
  /**
-@@ -160,8 +161,8 @@ int dev_pm_opp_set_config(struct device *dev, struct dev_pm_opp_config *config);
+@@ -160,8 +161,8 @@ int dev_pm_opp_set_config(struct device
  int devm_pm_opp_set_config(struct device *dev, struct dev_pm_opp_config *config);
  void dev_pm_opp_clear_config(int token);
  int dev_pm_opp_config_clks_simple(struct device *dev,
@@ -101,7 +95,7 @@ index dc1fb5890792..6c24a4f9fc49 100644
  
  struct dev_pm_opp *dev_pm_opp_xlate_required_opp(struct opp_table *src_table, struct opp_table *dst_table, struct dev_pm_opp *src_opp);
  int dev_pm_opp_xlate_performance_state(struct opp_table *src_table, struct opp_table *dst_table, unsigned int pstate);
-@@ -346,8 +347,8 @@ static inline int devm_pm_opp_set_config(struct device *dev, struct dev_pm_opp_c
+@@ -346,8 +347,8 @@ static inline int devm_pm_opp_set_config
  static inline void dev_pm_opp_clear_config(int token) {}
  
  static inline int dev_pm_opp_config_clks_simple(struct device *dev,
@@ -112,6 +106,3 @@ index dc1fb5890792..6c24a4f9fc49 100644
  {
  	return -EOPNOTSUPP;
  }
--- 
-2.37.2
-
diff --git a/target/linux/generic/pending-6.1/810-pci_disable_common_quirks.patch b/target/linux/generic/pending-6.1/810-pci_disable_common_quirks.patch
index 7edbd94f76..33d2c62547 100644
--- a/target/linux/generic/pending-6.1/810-pci_disable_common_quirks.patch
+++ b/target/linux/generic/pending-6.1/810-pci_disable_common_quirks.patch
@@ -25,7 +25,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  
 --- a/drivers/pci/quirks.c
 +++ b/drivers/pci/quirks.c
-@@ -206,6 +206,7 @@ static void quirk_mmio_always_on(struct
+@@ -207,6 +207,7 @@ static void quirk_mmio_always_on(struct
  DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID,
  				PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on);
  
@@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  /*
   * The Mellanox Tavor device gives false positive parity errors.  Disable
   * parity error reporting.
-@@ -3363,6 +3364,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
+@@ -3388,6 +3389,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
  
@@ -42,7 +42,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  /*
   * Ivytown NTB BAR sizes are misreported by the hardware due to an erratum.
   * To work around this, query the size it should be configured to by the
-@@ -3388,6 +3391,8 @@ static void quirk_intel_ntb(struct pci_d
+@@ -3413,6 +3416,8 @@ static void quirk_intel_ntb(struct pci_d
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e08, quirk_intel_ntb);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb);
  
@@ -51,7 +51,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  /*
   * Some BIOS implementations leave the Intel GPU interrupts enabled, even
   * though no one is handling them (e.g., if the i915 driver is never
-@@ -3426,6 +3431,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
+@@ -3451,6 +3456,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
  
diff --git a/target/linux/generic/pending-6.1/811-pci_disable_usb_common_quirks.patch b/target/linux/generic/pending-6.1/811-pci_disable_usb_common_quirks.patch
index 67406bac84..98ea4c06d9 100644
--- a/target/linux/generic/pending-6.1/811-pci_disable_usb_common_quirks.patch
+++ b/target/linux/generic/pending-6.1/811-pci_disable_usb_common_quirks.patch
@@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #endif  /*  __LINUX_USB_PCI_QUIRKS_H  */
 --- a/include/linux/usb/hcd.h
 +++ b/include/linux/usb/hcd.h
-@@ -497,7 +497,14 @@ extern int usb_hcd_pci_probe(struct pci_
+@@ -483,7 +483,14 @@ extern int usb_hcd_pci_probe(struct pci_
  extern void usb_hcd_pci_remove(struct pci_dev *dev);
  extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
  
diff --git a/target/linux/generic/pending-6.1/834-ledtrig-libata.patch b/target/linux/generic/pending-6.1/834-ledtrig-libata.patch
index 9654f4429a..f3c0b1802b 100644
--- a/target/linux/generic/pending-6.1/834-ledtrig-libata.patch
+++ b/target/linux/generic/pending-6.1/834-ledtrig-libata.patch
@@ -45,7 +45,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	depends on ACPI
 --- a/drivers/ata/libata-core.c
 +++ b/drivers/ata/libata-core.c
-@@ -656,6 +656,19 @@ u64 ata_tf_read_block(const struct ata_t
+@@ -663,6 +663,19 @@ u64 ata_tf_read_block(const struct ata_t
  	return block;
  }
  
@@ -64,18 +64,18 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +
  /**
   *	ata_build_rw_tf - Build ATA taskfile for given read/write request
-  *	@tf: Target ATA taskfile
-@@ -4576,6 +4589,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
- 		if (tag < 0)
- 			return NULL;
+  *	@qc: Metadata associated with the taskfile to build
+@@ -4622,6 +4635,9 @@ void __ata_qc_complete(struct ata_queued
+ 		link->active_tag = ATA_TAG_POISON;
+ 		ap->nr_active_links--;
  	}
 +#ifdef CONFIG_ATA_LEDS
 +	ata_led_act(ap);
 +#endif
  
- 	qc = __ata_qc_from_tag(ap, tag);
- 	qc->tag = qc->hw_tag = tag;
-@@ -5354,6 +5370,9 @@ struct ata_port *ata_port_alloc(struct a
+ 	/* clear exclusive status */
+ 	if (unlikely(qc->flags & ATA_QCFLAG_CLEAR_EXCL &&
+@@ -5328,6 +5344,9 @@ struct ata_port *ata_port_alloc(struct a
  	ap->stats.unhandled_irq = 1;
  	ap->stats.idle_irq = 1;
  #endif
@@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	ata_sff_port_init(ap);
  
  	return ap;
-@@ -5389,6 +5408,12 @@ static void ata_host_release(struct kref
+@@ -5363,6 +5382,12 @@ static void ata_host_release(struct kref
  
  		kfree(ap->pmp_link);
  		kfree(ap->slave_link);
@@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		kfree(ap);
  		host->ports[i] = NULL;
  	}
-@@ -5795,7 +5820,23 @@ int ata_host_register(struct ata_host *h
+@@ -5765,7 +5790,23 @@ int ata_host_register(struct ata_host *h
  		host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
  		host->ports[i]->local_port_no = i + 1;
  	}
@@ -134,7 +134,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  
  /*
   * Define if arch has non-standard setup.  This is a _PCI_ standard
-@@ -894,6 +897,12 @@ struct ata_port {
+@@ -857,6 +860,12 @@ struct ata_port {
  #ifdef CONFIG_ATA_ACPI
  	struct ata_acpi_gtm	__acpi_init_gtm; /* use ata_acpi_init_gtm() */
  #endif
diff --git a/target/linux/generic/pending-6.1/850-0023-PCI-aardvark-Make-main-irq_chip-structure-a-static-d.patch b/target/linux/generic/pending-6.1/850-0023-PCI-aardvark-Make-main-irq_chip-structure-a-static-d.patch
index de28ebe73a..fc61ee202a 100644
--- a/target/linux/generic/pending-6.1/850-0023-PCI-aardvark-Make-main-irq_chip-structure-a-static-d.patch
+++ b/target/linux/generic/pending-6.1/850-0023-PCI-aardvark-Make-main-irq_chip-structure-a-static-d.patch
@@ -33,7 +33,7 @@ Signed-off-by: Marek Behún <kabel at kernel.org>
 
 --- a/drivers/pci/controller/pci-aardvark.c
 +++ b/drivers/pci/controller/pci-aardvark.c
-@@ -274,7 +274,6 @@ struct advk_pcie {
+@@ -277,7 +277,6 @@ struct advk_pcie {
  	u8 wins_count;
  	struct irq_domain *rp_irq_domain;
  	struct irq_domain *irq_domain;
@@ -41,7 +41,7 @@ Signed-off-by: Marek Behún <kabel at kernel.org>
  	raw_spinlock_t irq_lock;
  	struct irq_domain *msi_domain;
  	struct irq_domain *msi_inner_domain;
-@@ -1330,14 +1329,19 @@ static void advk_pcie_irq_unmask(struct
+@@ -1426,14 +1425,19 @@ static void advk_pcie_irq_unmask(struct
  	raw_spin_unlock_irqrestore(&pcie->irq_lock, flags);
  }
  
@@ -63,7 +63,7 @@ Signed-off-by: Marek Behún <kabel at kernel.org>
  	irq_set_chip_data(virq, pcie);
  
  	return 0;
-@@ -1396,7 +1400,6 @@ static int advk_pcie_init_irq_domain(str
+@@ -1492,7 +1496,6 @@ static int advk_pcie_init_irq_domain(str
  	struct device *dev = &pcie->pdev->dev;
  	struct device_node *node = dev->of_node;
  	struct device_node *pcie_intc_node;
@@ -71,7 +71,7 @@ Signed-off-by: Marek Behún <kabel at kernel.org>
  	int ret = 0;
  
  	raw_spin_lock_init(&pcie->irq_lock);
-@@ -1407,28 +1410,14 @@ static int advk_pcie_init_irq_domain(str
+@@ -1503,28 +1506,14 @@ static int advk_pcie_init_irq_domain(str
  		return -ENODEV;
  	}
  
diff --git a/target/linux/generic/pending-6.1/920-mangle_bootargs.patch b/target/linux/generic/pending-6.1/920-mangle_bootargs.patch
index 2378461662..60ceff00d6 100644
--- a/target/linux/generic/pending-6.1/920-mangle_bootargs.patch
+++ b/target/linux/generic/pending-6.1/920-mangle_bootargs.patch
@@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz <kaloz at openwrt.org>
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1814,6 +1814,15 @@ config EMBEDDED
+@@ -1826,6 +1826,15 @@ config EMBEDDED
  	  an embedded system so certain expert options are available
  	  for configuration.
  
@@ -31,7 +31,7 @@ Signed-off-by: Imre Kaloz <kaloz at openwrt.org>
  	help
 --- a/init/main.c
 +++ b/init/main.c
-@@ -615,6 +615,29 @@ static inline void setup_nr_cpu_ids(void
+@@ -609,6 +609,29 @@ static inline void setup_nr_cpu_ids(void
  static inline void smp_prepare_cpus(unsigned int maxcpus) { }
  #endif
  
@@ -61,7 +61,7 @@ Signed-off-by: Imre Kaloz <kaloz at openwrt.org>
  /*
   * We need to store the untouched command line for future reference.
   * We also need to store the touched command line since the parameter
-@@ -955,6 +978,7 @@ asmlinkage __visible void __init __no_sa
+@@ -957,6 +980,7 @@ asmlinkage __visible void __init __no_sa
  	pr_notice("%s", linux_banner);
  	early_security_init();
  	setup_arch(&command_line);




More information about the lede-commits mailing list