Przeglądaj źródła

generic: 6.1: refresh pending patches

Refresh pending patches with make target/linux/refresh.

Signed-off-by: Christian Marangi <[email protected]>
Christian Marangi 2 lat temu
rodzic
commit
4ed347aaad
98 zmienionych plików z 348 dodań i 374 usunięć
  1. 4 4
      target/linux/generic/pending-6.1/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch
  2. 1 1
      target/linux/generic/pending-6.1/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch
  3. 1 1
      target/linux/generic/pending-6.1/103-kbuild-export-SUBARCH.patch
  4. 2 2
      target/linux/generic/pending-6.1/110-v6.3-0001-spidev-Add-Silicon-Labs-EM3581-device-compatible.patch
  5. 2 2
      target/linux/generic/pending-6.1/110-v6.3-0002-spidev-Add-Silicon-Labs-SI3210-device-compatible.patch
  6. 1 1
      target/linux/generic/pending-6.1/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
  7. 3 3
      target/linux/generic/pending-6.1/130-binfmt_elf-dynamically-allocate-note.data-in-parse_e.patch
  8. 4 4
      target/linux/generic/pending-6.1/150-bridge_allow_receiption_on_disabled_port.patch
  9. 4 4
      target/linux/generic/pending-6.1/190-rtc-rs5c372-support_alarms_up_to_1_week.patch
  10. 5 5
      target/linux/generic/pending-6.1/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch
  11. 10 10
      target/linux/generic/pending-6.1/203-kallsyms_uncompressed.patch
  12. 2 2
      target/linux/generic/pending-6.1/205-backtrace_module_info.patch
  13. 1 1
      target/linux/generic/pending-6.1/240-remove-unsane-filenames-from-deps_initramfs-list.patch
  14. 2 2
      target/linux/generic/pending-6.1/270-platform-mikrotik-build-bits.patch
  15. 2 2
      target/linux/generic/pending-6.1/300-mips_expose_boot_raw.patch
  16. 4 4
      target/linux/generic/pending-6.1/301-MIPS-Add-barriers-between-dcache-icache-flushes.patch
  17. 1 1
      target/linux/generic/pending-6.1/302-mips_no_branch_likely.patch
  18. 4 4
      target/linux/generic/pending-6.1/305-mips_module_reloc.patch
  19. 1 1
      target/linux/generic/pending-6.1/308-mips32r2_tune.patch
  20. 1 1
      target/linux/generic/pending-6.1/310-arm_module_unresolved_weak_sym.patch
  21. 1 1
      target/linux/generic/pending-6.1/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch
  22. 2 2
      target/linux/generic/pending-6.1/351-irqchip-bcm-6345-l1-request-memory-region.patch
  23. 2 2
      target/linux/generic/pending-6.1/400-mtd-mtdsplit-support.patch
  24. 5 5
      target/linux/generic/pending-6.1/402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch
  25. 1 1
      target/linux/generic/pending-6.1/420-mtd-redboot_space.patch
  26. 3 3
      target/linux/generic/pending-6.1/430-mtd-add-myloader-partition-parser.patch
  27. 2 2
      target/linux/generic/pending-6.1/435-mtd-add-routerbootpart-parser-config.patch
  28. 1 1
      target/linux/generic/pending-6.1/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch
  29. 1 1
      target/linux/generic/pending-6.1/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch
  30. 2 2
      target/linux/generic/pending-6.1/465-m25p80-mx-disable-software-protection.patch
  31. 1 1
      target/linux/generic/pending-6.1/476-mtd-spi-nor-add-eon-en25q128.patch
  32. 1 1
      target/linux/generic/pending-6.1/477-mtd-spi-nor-add-eon-en25qx128a.patch
  33. 4 5
      target/linux/generic/pending-6.1/479-mtd-spi-nor-add-xtx-xt25f128b.patch
  34. 1 1
      target/linux/generic/pending-6.1/481-mtd-spi-nor-add-support-for-Gigadevice-GD25D05.patch
  35. 1 1
      target/linux/generic/pending-6.1/482-mtd-spi-nor-add-gd25q512.patch
  36. 3 3
      target/linux/generic/pending-6.1/484-mtd-spi-nor-add-esmt-f25l16pa.patch
  37. 4 4
      target/linux/generic/pending-6.1/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
  38. 2 2
      target/linux/generic/pending-6.1/486-01-mtd-spinand-add-support-for-ESMT-F50x1G41LB.patch
  39. 3 3
      target/linux/generic/pending-6.1/487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch
  40. 1 1
      target/linux/generic/pending-6.1/488-mtd-spi-nor-add-xmc-xm25qh64c.patch
  41. 2 2
      target/linux/generic/pending-6.1/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
  42. 2 2
      target/linux/generic/pending-6.1/491-ubi-auto-create-ubiblock-device-for-rootfs.patch
  43. 2 2
      target/linux/generic/pending-6.1/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch
  44. 2 2
      target/linux/generic/pending-6.1/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch
  45. 2 4
      target/linux/generic/pending-6.1/498-mtd-spi-nor-locking-support-for-MX25L6405D.patch
  46. 1 1
      target/linux/generic/pending-6.1/499-mtd-spi-nor-disable-16-bit-sr-for-macronix.patch
  47. 3 3
      target/linux/generic/pending-6.1/530-jffs2_make_lzma_available.patch
  48. 2 2
      target/linux/generic/pending-6.1/600-netfilter_conntrack_flush.patch
  49. 4 4
      target/linux/generic/pending-6.1/610-netfilter_match_bypass_default_checks.patch
  50. 3 3
      target/linux/generic/pending-6.1/611-netfilter_match_bypass_default_table.patch
  51. 8 8
      target/linux/generic/pending-6.1/630-packet_socket_type.patch
  52. 1 1
      target/linux/generic/pending-6.1/655-increase_skb_pad.patch
  53. 14 14
      target/linux/generic/pending-6.1/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
  54. 18 18
      target/linux/generic/pending-6.1/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
  55. 1 1
      target/linux/generic/pending-6.1/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch
  56. 9 9
      target/linux/generic/pending-6.1/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
  57. 2 1
      target/linux/generic/pending-6.1/682-of_net-add-mac-address-increment-support.patch
  58. 7 13
      target/linux/generic/pending-6.1/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
  59. 3 3
      target/linux/generic/pending-6.1/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch
  60. 2 2
      target/linux/generic/pending-6.1/703-phy-add-detach-callback-to-struct-phy_driver.patch
  61. 10 10
      target/linux/generic/pending-6.1/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
  62. 3 3
      target/linux/generic/pending-6.1/721-net-phy-realtek-rtl8221-allow-to-configure-SERDES-mo.patch
  63. 2 2
      target/linux/generic/pending-6.1/722-net-phy-realtek-support-switching-between-SGMII-and-.patch
  64. 1 1
      target/linux/generic/pending-6.1/723-net-mt7531-ensure-all-MACs-are-powered-down-before-r.patch
  65. 6 6
      target/linux/generic/pending-6.1/724-net-phy-realtek-use-genphy_soft_reset-for-2.5G-PHYs.patch
  66. 2 2
      target/linux/generic/pending-6.1/725-net-phy-realtek-disable-SGMII-in-band-AN-for-2-5G-PHYs.patch
  67. 1 1
      target/linux/generic/pending-6.1/726-net-phy-realtek-make-sure-paged-read-is-protected-by.patch
  68. 2 2
      target/linux/generic/pending-6.1/727-net-phy-realtek-use-inline-functions-for-10GbE-adver.patch
  69. 1 1
      target/linux/generic/pending-6.1/728-net-phy-realtek-check-validity-of-10GbE-link-partner.patch
  70. 7 7
      target/linux/generic/pending-6.1/729-net-phy-realtek-introduce-rtl822x_probe.patch
  71. 2 2
      target/linux/generic/pending-6.1/730-net-phy-realtek-detect-early-version-of-RTL8221B.patch
  72. 17 17
      target/linux/generic/pending-6.1/731-net-ethernet-mediatek-ppe-add-support-for-flow-accou.patch
  73. 2 11
      target/linux/generic/pending-6.1/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch
  74. 7 7
      target/linux/generic/pending-6.1/732-00-net-ethernet-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch
  75. 3 3
      target/linux/generic/pending-6.1/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch
  76. 2 2
      target/linux/generic/pending-6.1/732-03-net-ethernet-mtk_eth_soc-fix-remaining-throughput-re.patch
  77. 1 1
      target/linux/generic/pending-6.1/734-net-ethernet-mtk_eth_soc-ppe-fix-L2-offloading-with-.patch
  78. 3 3
      target/linux/generic/pending-6.1/736-01-net-ethernet-mtk_eth_soc-add-code-for-offloading-flo.patch
  79. 1 1
      target/linux/generic/pending-6.1/736-02-net-ethernet-mediatek-mtk_ppe-prefer-newly-added-l2-.patch
  80. 9 9
      target/linux/generic/pending-6.1/736-03-net-ethernet-mtk_eth_soc-improve-keeping-track-of-of.patch
  81. 10 10
      target/linux/generic/pending-6.1/736-04-net-ethernet-mediatek-fix-ppe-flow-accounting-for-L2.patch
  82. 2 2
      target/linux/generic/pending-6.1/736-06-net-ethernet-mediatek-fix-ppe-flow-accounting-for-v1.patch
  83. 18 18
      target/linux/generic/pending-6.1/760-net-core-add-optional-threading-for-backlog-processi.patch
  84. 1 1
      target/linux/generic/pending-6.1/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch
  85. 2 2
      target/linux/generic/pending-6.1/772-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch
  86. 1 1
      target/linux/generic/pending-6.1/773-net-dsa-b53-mmap-add-more-63xx-SoCs.patch
  87. 4 4
      target/linux/generic/pending-6.1/774-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch
  88. 7 7
      target/linux/generic/pending-6.1/777-net-dsa-b53-mdio-add-support-for-BCM53134.patch
  89. 1 1
      target/linux/generic/pending-6.1/780-ARM-kirkwood-add-missing-linux-if_ether.h-for-ETH_AL.patch
  90. 1 1
      target/linux/generic/pending-6.1/790-bus-mhi-core-add-SBL-state-callback.patch
  91. 2 2
      target/linux/generic/pending-6.1/795-mt7530-register-OF-node-for-internal-MDIO-bus.patch
  92. 2 2
      target/linux/generic/pending-6.1/801-gpio-gpio-cascade-add-generic-GPIO-cascade.patch
  93. 8 17
      target/linux/generic/pending-6.1/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch
  94. 4 4
      target/linux/generic/pending-6.1/810-pci_disable_common_quirks.patch
  95. 1 1
      target/linux/generic/pending-6.1/811-pci_disable_usb_common_quirks.patch
  96. 11 11
      target/linux/generic/pending-6.1/834-ledtrig-libata.patch
  97. 4 4
      target/linux/generic/pending-6.1/850-0023-PCI-aardvark-Make-main-irq_chip-structure-a-static-d.patch
  98. 3 3
      target/linux/generic/pending-6.1/920-mangle_bootargs.patch

+ 4 - 4
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 <[email protected]>
 
 
 --- a/include/linux/compiler.h
 --- a/include/linux/compiler.h
 +++ b/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>
 +#include <asm/rwonce.h>
 +
 +
  #endif /* __KERNEL__ */
  #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()
  #define prevent_tail_call_optimization()	mb()
  
  

+ 1 - 1
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 <[email protected]>
 
 
 --- a/arch/mips/kernel/process.c
 --- a/arch/mips/kernel/process.c
 +++ b/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 ||
  	if (ip->i_format.opcode == addiu_op ||
  	    ip->i_format.opcode == daddiu_op) {
  	    ip->i_format.opcode == daddiu_op) {

+ 1 - 1
target/linux/generic/pending-6.1/103-kbuild-export-SUBARCH.patch

@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/Makefile
 --- a/Makefile
 +++ b/Makefile
 +++ b/Makefile
-@@ -523,7 +523,7 @@ KBUILD_LDFLAGS_MODULE :=
+@@ -606,7 +606,7 @@ endif
  # Allows the usage of unstable features in stable compilers.
  # Allows the usage of unstable features in stable compilers.
  export RUSTC_BOOTSTRAP := 1
  export RUSTC_BOOTSTRAP := 1
  
  

+ 2 - 2
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 <[email protected]>
 
 
 --- a/drivers/spi/spidev.c
 --- a/drivers/spi/spidev.c
 +++ b/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 = "m53cpld" },
  	{ .name = "spi-petra" },
  	{ .name = "spi-petra" },
  	{ .name = "spi-authenta" },
  	{ .name = "spi-authenta" },
@@ -22,7 +22,7 @@ Signed-off-by: Vincent Tremblay <[email protected]>
  	{},
  	{},
  };
  };
  MODULE_DEVICE_TABLE(spi, spidev_spi_ids);
  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 = "menlo,m53cpld", .data = &spidev_of_check },
  	{ .compatible = "cisco,spi-petra", .data = &spidev_of_check },
  	{ .compatible = "cisco,spi-petra", .data = &spidev_of_check },
  	{ .compatible = "micron,spi-authenta", .data = &spidev_of_check },
  	{ .compatible = "micron,spi-authenta", .data = &spidev_of_check },

+ 2 - 2
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 <[email protected]>
 
 
 --- a/drivers/spi/spidev.c
 --- a/drivers/spi/spidev.c
 +++ b/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-petra" },
  	{ .name = "spi-authenta" },
  	{ .name = "spi-authenta" },
  	{ .name = "em3581" },
  	{ .name = "em3581" },
@@ -22,7 +22,7 @@ Signed-off-by: Vincent Tremblay <[email protected]>
  	{},
  	{},
  };
  };
  MODULE_DEVICE_TABLE(spi, spidev_spi_ids);
  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 = "cisco,spi-petra", .data = &spidev_of_check },
  	{ .compatible = "micron,spi-authenta", .data = &spidev_of_check },
  	{ .compatible = "micron,spi-authenta", .data = &spidev_of_check },
  	{ .compatible = "silabs,em3581", .data = &spidev_of_check },
  	{ .compatible = "silabs,em3581", .data = &spidev_of_check },

+ 1 - 1
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 <[email protected]>
 
 
 --- a/mm/page_alloc.c
 --- a/mm/page_alloc.c
 +++ b/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)) {
  	if (pgdat == NODE_DATA(0)) {
  		mem_map = NODE_DATA(0)->node_mem_map;
  		mem_map = NODE_DATA(0)->node_mem_map;
  		if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
  		if (page_to_pfn(mem_map) != pgdat->node_start_pfn)

+ 3 - 3
target/linux/generic/pending-6.1/130-binfmt_elf-dynamically-allocate-note.data-in-parse_e.patch

@@ -26,7 +26,7 @@ Cc: [email protected] # v5.8+
 
 
 --- a/fs/binfmt_elf.c
 --- a/fs/binfmt_elf.c
 +++ b/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 {
  	union {
  		struct elf_note nhdr;
  		struct elf_note nhdr;
@@ -35,7 +35,7 @@ Cc: [email protected] # v5.8+
  	} note;
  	} note;
  	loff_t pos;
  	loff_t pos;
  	ssize_t n;
  	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))
  	if (phdr->p_filesz > sizeof(note))
  		return -ENOEXEC;
  		return -ENOEXEC;
  
  
@@ -83,7 +83,7 @@ Cc: [email protected] # v5.8+
  	datasz = off + note.nhdr.n_descsz;
  	datasz = off + note.nhdr.n_descsz;
  
  
  	have_prev_type = false;
  	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;
  		have_prev_type = true;
  	} while (!ret);
  	} while (!ret);
  
  

+ 4 - 4
target/linux/generic/pending-6.1/150-bridge_allow_receiption_on_disabled_port.patch

@@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/net/bridge/br_input.c
 --- a/net/bridge/br_input.c
 +++ b/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 */
  /* note: already called with rcu_read_lock */
  static int br_handle_local_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
  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 <[email protected]>
  	__br_handle_local_finish(skb);
  	__br_handle_local_finish(skb);
  
  
  	/* return 1 to signal the okfn() was called so it's ok to use the 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) {
  	switch (p->state) {
 +	case BR_STATE_DISABLED:
 +	case BR_STATE_DISABLED:
 +		if (ether_addr_equal(p->br->dev->dev_addr, dest))
 +		if (ether_addr_equal(p->br->dev->dev_addr, dest))
@@ -42,4 +42,4 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +
 +
  	case BR_STATE_FORWARDING:
  	case BR_STATE_FORWARDING:
  	case BR_STATE_LEARNING:
  	case BR_STATE_LEARNING:
- 		if (ether_addr_equal(p->br->dev->dev_addr, dest))
+ defer_stp_filtering:

+ 4 - 4
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 <[email protected]>
 
 
 --- a/drivers/rtc/rtc-rs5c372.c
 --- a/drivers/rtc/rtc-rs5c372.c
 +++ b/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 i2c_client	*client = to_i2c_client(dev);
  	struct rs5c372		*rs5c = i2c_get_clientdata(client);
  	struct rs5c372		*rs5c = i2c_get_clientdata(client);
@@ -25,7 +25,7 @@ Signed-off-by: Daniel González Cabanelas <[email protected]>
  
  
  	status = rs5c_get_regs(rs5c);
  	status = rs5c_get_regs(rs5c);
  	if (status < 0)
  	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_sec = 0;
  	t->time.tm_min = bcd2bin(rs5c->regs[RS5C_REG_ALARM_A_MIN] & 0x7f);
  	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]);
  	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 <[email protected]>
  
  
  	/* ... and status */
  	/* ... and status */
  	t->enabled = !!(rs5c->regs[RS5C_REG_CTRL1] & RS5C_CTRL1_AALE);
  	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);
  	struct rs5c372		*rs5c = i2c_get_clientdata(client);
  	int			status, addr, i;
  	int			status, addr, i;
  	unsigned char		buf[3];
  	unsigned char		buf[3];
@@ -81,7 +81,7 @@ Signed-off-by: Daniel González Cabanelas <[email protected]>
  
  
  	/* REVISIT: round up tm_sec */
  	/* 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 */
  	/* set alarm */
  	buf[0] = bin2bcd(t->time.tm_min);
  	buf[0] = bin2bcd(t->time.tm_min);
  	buf[1] = rs5c_hr2reg(rs5c, t->time.tm_hour);
  	buf[1] = rs5c_hr2reg(rs5c, t->time.tm_hour);

+ 5 - 5
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 <[email protected]>
 
 
 --- a/drivers/rtc/rtc-rs5c372.c
 --- a/drivers/rtc/rtc-rs5c372.c
 +++ b/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 err = 0;
  	int smbus_mode = 0;
  	int smbus_mode = 0;
  	struct rs5c372 *rs5c372;
  	struct rs5c372 *rs5c372;
@@ -25,7 +25,7 @@ Signed-off-by: Daniel González Cabanelas <[email protected]>
  
  
  	dev_dbg(&client->dev, "%s\n", __func__);
  	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
  	else
  		rs5c372->type = id->driver_data;
  		rs5c372->type = id->driver_data;
  
  
@@ -38,7 +38,7 @@ Signed-off-by: Daniel González Cabanelas <[email protected]>
  	/* we read registers 0x0f then 0x00-0x0f; skip the first one */
  	/* we read registers 0x0f then 0x00-0x0f; skip the first one */
  	rs5c372->regs = &rs5c372->buf[1];
  	rs5c372->regs = &rs5c372->buf[1];
  	rs5c372->smbus = smbus_mode;
  	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;
  		goto exit;
  	}
  	}
  
  
@@ -47,7 +47,7 @@ Signed-off-by: Daniel González Cabanelas <[email protected]>
  	/* if the oscillator lost power and no other software (like
  	/* if the oscillator lost power and no other software (like
  	 * the bootloader) set it up, do it here.
  	 * 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 ... */
  	/* REVISIT use client->irq to register alarm irq ... */
@@ -58,7 +58,7 @@ Signed-off-by: Daniel González Cabanelas <[email protected]>
  	rs5c372->rtc = devm_rtc_device_register(&client->dev,
  	rs5c372->rtc = devm_rtc_device_register(&client->dev,
  					rs5c372_driver.driver.name,
  					rs5c372_driver.driver.name,
  					&rs5c372_rtc_ops, THIS_MODULE);
  					&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)
  	if (err)
  		goto exit;
  		goto exit;
  
  

+ 10 - 10
target/linux/generic/pending-6.1/203-kallsyms_uncompressed.patch

@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/init/Kconfig
 --- a/init/Kconfig
 +++ b/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.
  	  the unaligned access emulation.
  	  see arch/parisc/kernel/unaligned.c for reference
  	  see arch/parisc/kernel/unaligned.c for reference
  
  
@@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
 --- a/kernel/kallsyms.c
 --- a/kernel/kallsyms.c
 +++ b/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
  	 * For every byte on the compressed symbol data, copy the table
  	 * entry for that byte.
  	 * entry for that byte.
  	 */
  	 */
@@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	while (len) {
  	while (len) {
  		tptr = &kallsyms_token_table[kallsyms_token_index[*data]];
  		tptr = &kallsyms_token_table[kallsyms_token_index[*data]];
  		data++;
  		data++;
-@@ -112,6 +117,9 @@ tail:
+@@ -101,6 +106,9 @@ tail:
   */
   */
  static char kallsyms_get_symbol_type(unsigned int off)
  static char kallsyms_get_symbol_type(unsigned int off)
  {
  {
@@ -57,7 +57,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	 * and return the first char from this token.
  	 * and return the first char from this token.
 --- a/scripts/kallsyms.c
 --- a/scripts/kallsyms.c
 +++ b/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 struct sym_entry **table;
  static unsigned int table_size, table_cnt;
  static unsigned int table_size, table_cnt;
  static int all_symbols;
  static int all_symbols;
@@ -65,7 +65,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  static int absolute_percpu;
  static int absolute_percpu;
  static int base_relative;
  static int base_relative;
  
  
-@@ -486,6 +487,9 @@ static void write_src(void)
+@@ -535,6 +536,9 @@ static void write_src(void)
  
  
  	free(markers);
  	free(markers);
  
  
@@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	output_label("kallsyms_token_table");
  	output_label("kallsyms_token_table");
  	off = 0;
  	off = 0;
  	for (i = 0; i < 256; i++) {
  	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;
  	int i;
  
  
@@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	for (i = 0; i < len - 1; i++) {
  	for (i = 0; i < len - 1; i++) {
  		if (str[i] == token[0] && str[i+1] == token[1])
  		if (str[i] == token[0] && str[i+1] == token[1])
  			return &str[i];
  			return &str[i];
-@@ -609,6 +616,9 @@ static void optimize_result(void)
+@@ -658,6 +665,9 @@ static void optimize_result(void)
  {
  {
  	int i, best;
  	int i, best;
  
  
@@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	/* using the '\0' symbol last allows compress_symbols to use standard
  	/* using the '\0' symbol last allows compress_symbols to use standard
  	 * fast string functions */
  	 * fast string functions */
  	for (i = 255; i >= 0; i--) {
  	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},
  			{"all-symbols",     no_argument, &all_symbols,     1},
  			{"absolute-percpu", no_argument, &absolute_percpu, 1},
  			{"absolute-percpu", no_argument, &absolute_percpu, 1},
  			{"base-relative",   no_argument, &base_relative,   1},
  			{"base-relative",   no_argument, &base_relative,   1},
@@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
 --- a/scripts/link-vmlinux.sh
 --- a/scripts/link-vmlinux.sh
 +++ b/scripts/link-vmlinux.sh
 +++ b/scripts/link-vmlinux.sh
-@@ -266,6 +266,10 @@ kallsyms()
+@@ -156,6 +156,10 @@ kallsyms()
  		kallsymopt="${kallsymopt} --base-relative"
  		kallsymopt="${kallsymopt} --base-relative"
  	fi
  	fi
  
  
@@ -114,5 +114,5 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +	fi
 +	fi
 +
 +
  	info KSYMS ${2}
  	info KSYMS ${2}
- 	${NM} -n ${1} | scripts/kallsyms ${kallsymopt} > ${2}
+ 	scripts/kallsyms ${kallsymopt} ${1} > ${2}
  }
  }

+ 2 - 2
target/linux/generic/pending-6.1/205-backtrace_module_info.patch

@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/lib/vsprintf.c
 --- a/lib/vsprintf.c
 +++ b/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)
  		    struct printf_spec spec, const char *fmt)
  {
  {
  	unsigned long value;
  	unsigned long value;
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  #endif
  #endif
  
  
  	if (fmt[1] == 'R')
  	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);
  	return string_nocheck(buf, end, sym, spec);
  #else
  #else

+ 1 - 1
target/linux/generic/pending-6.1/240-remove-unsane-filenames-from-deps_initramfs-list.patch

@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/usr/Makefile
 --- a/usr/Makefile
 +++ b/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
  # The dependency list is generated by gen_initramfs.sh -l
  -include $(obj)/.initramfs_data.cpio.d
  -include $(obj)/.initramfs_data.cpio.d
  
  

+ 2 - 2
target/linux/generic/pending-6.1/270-platform-mikrotik-build-bits.patch

@@ -16,7 +16,7 @@ Signed-off-by: Thibaut VARÈNE <[email protected]>
 
 
 --- a/drivers/platform/Kconfig
 --- a/drivers/platform/Kconfig
 +++ b/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/surface/Kconfig"
  
  
  source "drivers/platform/x86/Kconfig"
  source "drivers/platform/x86/Kconfig"
@@ -24,7 +24,7 @@ Signed-off-by: Thibaut VARÈNE <[email protected]>
 +source "drivers/platform/mikrotik/Kconfig"
 +source "drivers/platform/mikrotik/Kconfig"
 --- a/drivers/platform/Makefile
 --- a/drivers/platform/Makefile
 +++ b/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_GOLDFISH)		+= goldfish/
  obj-$(CONFIG_CHROME_PLATFORMS)	+= chrome/
  obj-$(CONFIG_CHROME_PLATFORMS)	+= chrome/
  obj-$(CONFIG_SURFACE_PLATFORMS)	+= surface/
  obj-$(CONFIG_SURFACE_PLATFORMS)	+= surface/

+ 2 - 2
target/linux/generic/pending-6.1/300-mips_expose_boot_raw.patch

@@ -9,7 +9,7 @@ Acked-by: Rob Landley <[email protected]>
 ---
 ---
 --- a/arch/mips/Kconfig
 --- a/arch/mips/Kconfig
 +++ b/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
  config ARCH_MAY_HAVE_PC_FDC
  	bool
  	bool
  
  
@@ -19,7 +19,7 @@ Acked-by: Rob Landley <[email protected]>
  config CEVT_BCM1480
  config CEVT_BCM1480
  	bool
  	bool
  
  
-@@ -3182,6 +3179,18 @@ choice
+@@ -3089,6 +3086,18 @@ choice
  		bool "Extend builtin kernel arguments with bootloader arguments"
  		bool "Extend builtin kernel arguments with bootloader arguments"
  endchoice
  endchoice
  
  

+ 4 - 4
target/linux/generic/pending-6.1/301-MIPS-Add-barriers-between-dcache-icache-flushes.patch

@@ -26,7 +26,7 @@ Cc: James Hogan <[email protected]>
 
 
 --- a/arch/mips/mm/c-r4k.c
 --- a/arch/mips/mm/c-r4k.c
 +++ b/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:
  	default:
  		r4k_blast_dcache();
  		r4k_blast_dcache();
@@ -34,7 +34,7 @@ Cc: James Hogan <[email protected]>
  		r4k_blast_icache();
  		r4k_blast_icache();
  		break;
  		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))
  	if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc))
  		r4k_blast_dcache();
  		r4k_blast_dcache();
  	/* If executable, blast stale lines from icache */
  	/* If executable, blast stale lines from icache */
@@ -46,7 +46,7 @@ Cc: James Hogan <[email protected]>
  }
  }
  
  
  static void r4k_flush_cache_range(struct vm_area_struct *vma,
  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)) {
  	if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc)) {
  		vaddr ? r4k_blast_dcache_page(addr) :
  		vaddr ? r4k_blast_dcache_page(addr) :
  			r4k_blast_dcache_user_page(addr);
  			r4k_blast_dcache_user_page(addr);
@@ -61,7 +61,7 @@ Cc: James Hogan <[email protected]>
  	}
  	}
  	if (exec) {
  	if (exec) {
  		if (vaddr && cpu_has_vtag_icache && mm == current->active_mm) {
  		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
  			else
  				blast_dcache_range(start, end);
  				blast_dcache_range(start, end);
  		}
  		}

+ 1 - 1
target/linux/generic/pending-6.1/302-mips_no_branch_likely.patch

@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/arch/mips/Makefile
 --- a/arch/mips/Makefile
 +++ b/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
  # machines may also.  Since BFD is incredibly buggy with respect to
  # crossformat linking we rely on the elf2ecoff tool for format conversion.
  # crossformat linking we rely on the elf2ecoff tool for format conversion.
  #
  #

+ 4 - 4
target/linux/generic/pending-6.1/305-mips_module_reloc.patch

@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/arch/mips/Makefile
 --- a/arch/mips/Makefile
 +++ b/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			+= -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely
  cflags-y			+= -msoft-float
  cflags-y			+= -msoft-float
  LDFLAGS_vmlinux			+= -G 0 -static -n -nostdlib
  LDFLAGS_vmlinux			+= -G 0 -static -n -nostdlib
@@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  typedef uint8_t Elf64_Byte;		/* Type for a 8-bit quantity.  */
  typedef uint8_t Elf64_Byte;		/* Type for a 8-bit quantity.  */
 --- a/arch/mips/kernel/module.c
 --- a/arch/mips/kernel/module.c
 +++ b/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 LIST_HEAD(dbe_list);
  static DEFINE_SPINLOCK(dbe_lock);
  static DEFINE_SPINLOCK(dbe_lock);
  
  
@@ -309,7 +309,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	if (v % 4) {
  	if (v % 4) {
  		pr_err("module %s: dangerous R_MIPS_26 relocation\n",
  		pr_err("module %s: dangerous R_MIPS_26 relocation\n",
  		       me->name);
  		       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)) {
  	if ((v & 0xf0000000) != (((unsigned long)location + 4) & 0xf0000000)) {
@@ -331,7 +331,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
  	return 0;
  	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);
  		list_add(&me->arch.dbe_list, &dbe_list);
  		spin_unlock_irq(&dbe_lock);
  		spin_unlock_irq(&dbe_lock);
  	}
  	}

+ 1 - 1
target/linux/generic/pending-6.1/308-mips32r2_tune.patch

@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/arch/mips/Makefile
 --- a/arch/mips/Makefile
 +++ b/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_R4X00)	+= -march=r4600 -Wa,--trap
  cflags-$(CONFIG_CPU_TX49XX)	+= -march=r4600 -Wa,--trap
  cflags-$(CONFIG_CPU_TX49XX)	+= -march=r4600 -Wa,--trap
  cflags-$(CONFIG_CPU_MIPS32_R1)	+= -march=mips32 -Wa,--trap
  cflags-$(CONFIG_CPU_MIPS32_R1)	+= -march=mips32 -Wa,--trap

+ 1 - 1
target/linux/generic/pending-6.1/310-arm_module_unresolved_weak_sym.patch

@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/arch/arm/kernel/module.c
 --- a/arch/arm/kernel/module.c
 +++ b/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;
  			return -ENOEXEC;
  		}
  		}
  
  

+ 1 - 1
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 <[email protected]>
 
 
 --- a/arch/powerpc/Kconfig
 --- a/arch/powerpc/Kconfig
 +++ b/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_GZIP
  	select HAVE_KERNEL_LZMA			if DEFAULT_UIMAGE
  	select HAVE_KERNEL_LZMA			if DEFAULT_UIMAGE
  	select HAVE_KERNEL_LZO			if DEFAULT_UIMAGE
  	select HAVE_KERNEL_LZO			if DEFAULT_UIMAGE

+ 2 - 2
target/linux/generic/pending-6.1/351-irqchip-bcm-6345-l1-request-memory-region.patch

@@ -91,7 +91,7 @@ Acked-by: Florian Fainelli <[email protected]>
 
 
 --- a/drivers/irqchip/irq-bcm6345-l1.c
 --- a/drivers/irqchip/irq-bcm6345-l1.c
 +++ b/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)
  	if (!cpu->map_base)
  		return -ENOMEM;
  		return -ENOMEM;
  
  
@@ -101,7 +101,7 @@ Acked-by: Florian Fainelli <[email protected]>
  	for (i = 0; i < n_words; i++) {
  	for (i = 0; i < n_words; i++) {
  		cpu->enable_cache[i] = 0;
  		cpu->enable_cache[i] = 0;
  		__raw_writel(0, cpu->map_base + reg_enable(intc, i));
  		__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) {
  	for_each_cpu(idx, &intc->cpumask) {
  		struct bcm6345_l1_cpu *cpu = intc->cpus[idx];
  		struct bcm6345_l1_cpu *cpu = intc->cpus[idx];
  
  

+ 2 - 2
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.
   * one chunk. Do that by default.
 --- a/include/linux/mtd/mtd.h
 --- a/include/linux/mtd/mtd.h
 +++ b/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;
  		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)
  static inline uint32_t mtd_div_by_ws(uint64_t sz, struct mtd_info *mtd)
  {
  {
  	if (mtd->writesize_shift)
  	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 struct mtd_info *get_mtd_device_nm(const char *name);
  extern void put_mtd_device(struct mtd_info *mtd);
  extern void put_mtd_device(struct mtd_info *mtd);
  
  

+ 5 - 5
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 <[email protected]>
  	default y
  	default y
 --- a/drivers/mtd/spi-nor/core.c
 --- a/drivers/mtd/spi-nor/core.c
 +++ b/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)
  static bool spi_nor_has_uniform_erase(const struct spi_nor *nor)
  {
  {
@@ -202,7 +202,7 @@ Reported-by: Dan Carpenter <[email protected]>
  	return !!nor->params->erase_map.uniform_erase_type;
  	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;
  	struct spi_nor_erase_map *map = &nor->params->erase_map;
  	const struct spi_nor_erase_type *erase = NULL;
  	const struct spi_nor_erase_type *erase = NULL;
@@ -210,7 +210,7 @@ Reported-by: Dan Carpenter <[email protected]>
  	struct mtd_info *mtd = &nor->mtd;
  	struct mtd_info *mtd = &nor->mtd;
  	u32 wanted_size = nor->info->sector_size;
  	u32 wanted_size = nor->info->sector_size;
  	int i;
  	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--) {
  	for (i = SNOR_ERASE_TYPE_MAX - 1; i >= 0; i--) {
  		if (map->erase_type[i].size) {
  		if (map->erase_type[i].size) {
@@ -222,7 +222,7 @@ Reported-by: Dan Carpenter <[email protected]>
  		}
  		}
  	}
  	}
  
  
-@@ -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;
  		return -EINVAL;
  
  
  	mtd->erasesize = erase->size;
  	mtd->erasesize = erase->size;
@@ -234,7 +234,7 @@ Reported-by: Dan Carpenter <[email protected]>
  
  
 --- a/include/linux/mtd/mtd.h
 --- a/include/linux/mtd/mtd.h
 +++ b/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
  	 * information below if they desire
  	 */
  	 */
  	uint32_t erasesize;
  	uint32_t erasesize;

+ 1 - 1
target/linux/generic/pending-6.1/420-mtd-redboot_space.patch

@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/drivers/mtd/parsers/redboot.c
 --- a/drivers/mtd/parsers/redboot.c
 +++ b/drivers/mtd/parsers/redboot.c
 +++ b/drivers/mtd/parsers/redboot.c
-@@ -277,14 +277,21 @@ nogood:
+@@ -278,14 +278,21 @@ nogood:
  #endif
  #endif
  		names += strlen(names) + 1;
  		names += strlen(names) + 1;
  
  

+ 3 - 3
target/linux/generic/pending-6.1/430-mtd-add-myloader-partition-parser.patch

@@ -10,7 +10,7 @@ Signed-off-by: Adrian Schmutzler <[email protected]>
 
 
 --- a/drivers/mtd/parsers/Kconfig
 --- a/drivers/mtd/parsers/Kconfig
 +++ b/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'.
  	  If unsure, say 'N'.
  
  
@@ -35,9 +35,9 @@ Signed-off-by: Adrian Schmutzler <[email protected]>
  	default y
  	default y
 --- a/drivers/mtd/parsers/Makefile
 --- a/drivers/mtd/parsers/Makefile
 +++ b/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_BCM63XX_PARTS)		+= bcm63xxpart.o
+ obj-$(CONFIG_MTD_BRCM_U_BOOT)		+= brcm_u-boot.o
  obj-$(CONFIG_MTD_CMDLINE_PARTS)		+= cmdlinepart.o
  obj-$(CONFIG_MTD_CMDLINE_PARTS)		+= cmdlinepart.o
 +obj-$(CONFIG_MTD_MYLOADER_PARTS)		+= myloader.o
 +obj-$(CONFIG_MTD_MYLOADER_PARTS)		+= myloader.o
  obj-$(CONFIG_MTD_OF_PARTS)		+= ofpart.o
  obj-$(CONFIG_MTD_OF_PARTS)		+= ofpart.o

+ 2 - 2
target/linux/generic/pending-6.1/435-mtd-add-routerbootpart-parser-config.patch

@@ -16,7 +16,7 @@ Signed-off-by: Thibaut VARÈNE <[email protected]>
 
 
 --- a/drivers/mtd/parsers/Kconfig
 --- a/drivers/mtd/parsers/Kconfig
 +++ b/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
  	  partition map. This partition table contains real partition
  	  offsets, which may differ from device to device depending on the
  	  offsets, which may differ from device to device depending on the
  	  number and location of bad blocks on NAND.
  	  number and location of bad blocks on NAND.
@@ -31,7 +31,7 @@ Signed-off-by: Thibaut VARÈNE <[email protected]>
 +	 formatted DTS.
 +	 formatted DTS.
 --- a/drivers/mtd/parsers/Makefile
 --- a/drivers/mtd/parsers/Makefile
 +++ b/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_SHARPSL_PARTS)		+= sharpslpart.o
  obj-$(CONFIG_MTD_REDBOOT_PARTS)		+= redboot.o
  obj-$(CONFIG_MTD_REDBOOT_PARTS)		+= redboot.o
  obj-$(CONFIG_MTD_QCOMSMEM_PARTS)	+= qcomsmempart.o
  obj-$(CONFIG_MTD_QCOMSMEM_PARTS)	+= qcomsmempart.o

+ 1 - 1
target/linux/generic/pending-6.1/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch

@@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
 +++ b/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;
  		return 0;
  
  
  	case FL_ERASING:
  	case FL_ERASING:

+ 1 - 1
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 <[email protected]>
  1 file changed, 1 insertion(+)
  1 file changed, 1 insertion(+)
 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
 +++ b/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 */
  	/* Write Buffer Load */
  	map_write(map, CMD(0x25), cmd_adr);
  	map_write(map, CMD(0x25), cmd_adr);

+ 2 - 2
target/linux/generic/pending-6.1/465-m25p80-mx-disable-software-protection.patch

@@ -8,11 +8,11 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/drivers/mtd/spi-nor/macronix.c
 --- a/drivers/mtd/spi-nor/macronix.c
 +++ b/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->quad_enable = spi_nor_sr1_bit6_quad_enable;
  	nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode;
  	nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode;
 +	nor->flags |= SNOR_F_HAS_LOCK;
 +	nor->flags |= SNOR_F_HAS_LOCK;
  }
  }
  
  
- static const struct spi_nor_fixups macronix_fixups = {
+ static const struct spi_nor_fixups macronix_nor_fixups = {

+ 1 - 1
target/linux/generic/pending-6.1/476-mtd-spi-nor-add-eon-en25q128.patch

@@ -8,7 +8,7 @@ Signed-off-by: Piotr Dymacz <[email protected]>
 
 
 --- a/drivers/mtd/spi-nor/eon.c
 --- a/drivers/mtd/spi-nor/eon.c
 +++ b/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) },
  	{ "en25p64",    INFO(0x1c2017, 0, 64 * 1024,  128) },
  	{ "en25q64",    INFO(0x1c3017, 0, 64 * 1024,  128)
  	{ "en25q64",    INFO(0x1c3017, 0, 64 * 1024,  128)
  		NO_SFDP_FLAGS(SECT_4K) },
  		NO_SFDP_FLAGS(SECT_4K) },

+ 1 - 1
target/linux/generic/pending-6.1/477-mtd-spi-nor-add-eon-en25qx128a.patch

@@ -11,7 +11,7 @@ Signed-off-by: Christian Marangi <[email protected]>
 
 
 --- a/drivers/mtd/spi-nor/eon.c
 --- a/drivers/mtd/spi-nor/eon.c
 +++ b/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) },
  		NO_SFDP_FLAGS(SECT_4K) },
  	{ "en25q128",   INFO(0x1c3018, 0, 64 * 1024,  256)
  	{ "en25q128",   INFO(0x1c3018, 0, 64 * 1024,  256)
  		NO_SFDP_FLAGS(SECT_4K) },
  		NO_SFDP_FLAGS(SECT_4K) },

+ 4 - 5
target/linux/generic/pending-6.1/479-mtd-spi-nor-add-xtx-xt25f128b.patch

@@ -31,7 +31,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/drivers/mtd/spi-nor/Makefile
 --- a/drivers/mtd/spi-nor/Makefile
 +++ b/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			+= winbond.o
  spi-nor-objs			+= xilinx.o
  spi-nor-objs			+= xilinx.o
  spi-nor-objs			+= xmc.o
  spi-nor-objs			+= xmc.o
@@ -39,7 +39,6 @@ Signed-off-by: Felix Fietkau <[email protected]>
  spi-nor-$(CONFIG_DEBUG_FS)	+= debugfs.o
  spi-nor-$(CONFIG_DEBUG_FS)	+= debugfs.o
  obj-$(CONFIG_MTD_SPI_NOR)	+= spi-nor.o
  obj-$(CONFIG_MTD_SPI_NOR)	+= spi-nor.o
  
  
- obj-$(CONFIG_MTD_SPI_NOR)	+= controllers/
 --- /dev/null
 --- /dev/null
 +++ b/drivers/mtd/spi-nor/xtx.c
 +++ b/drivers/mtd/spi-nor/xtx.c
 @@ -0,0 +1,17 @@
 @@ -0,0 +1,17 @@
@@ -62,17 +61,17 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +};
 +};
 --- a/drivers/mtd/spi-nor/core.c
 --- a/drivers/mtd/spi-nor/core.c
 +++ b/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_winbond,
  	&spi_nor_xilinx,
  	&spi_nor_xilinx,
  	&spi_nor_xmc,
  	&spi_nor_xmc,
 +	&spi_nor_xtx,
 +	&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
 --- a/drivers/mtd/spi-nor/core.h
 +++ b/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_winbond;
  extern const struct spi_nor_manufacturer spi_nor_xilinx;
  extern const struct spi_nor_manufacturer spi_nor_xilinx;
  extern const struct spi_nor_manufacturer spi_nor_xmc;
  extern const struct spi_nor_manufacturer spi_nor_xmc;

+ 1 - 1
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 <[email protected]>
 
 
 --- a/drivers/mtd/spi-nor/gigadevice.c
 --- a/drivers/mtd/spi-nor/gigadevice.c
 +++ b/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[] = {
  static const struct flash_info gigadevice_nor_parts[] = {

+ 1 - 1
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
 --- a/drivers/mtd/spi-nor/gigadevice.c
 +++ b/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)
  		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB | SPI_NOR_TB_SR_BIT6)
  		FIXUP_FLAGS(SPI_NOR_4B_OPCODES)
  		FIXUP_FLAGS(SPI_NOR_4B_OPCODES)
  		.fixups = &gd25q256_fixups },
  		.fixups = &gd25q256_fixups },

+ 3 - 3
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
 +++ b/drivers/mtd/spi-nor/esmt.c
 @@ -10,6 +10,9 @@
 @@ -10,6 +10,9 @@
  
  
- static const struct flash_info esmt_parts[] = {
+ static const struct flash_info esmt_nor_parts[] = {
  	/* ESMT */
  	/* ESMT */
 +	{ "f25l16pa-2s", INFO(0x8c2115, 0, 64 * 1024, 32)
 +	{ "f25l16pa-2s", INFO(0x8c2115, 0, 64 * 1024, 32)
 +			FLAGS(SPI_NOR_HAS_LOCK)
 +			FLAGS(SPI_NOR_HAS_LOCK)
 +			NO_SFDP_FLAGS(SECT_4K) },
 +			NO_SFDP_FLAGS(SECT_4K) },
  	{ "f25l32pa", INFO(0x8c2016, 0, 64 * 1024, 64)
  	{ "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) },

+ 4 - 4
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
 --- a/drivers/mtd/spi-nor/xmc.c
 +++ b/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)
 +	{ "XM25QH128C", INFO(0x204018, 0, 64 * 1024, 256)
 +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
 +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
 +			      SPI_NOR_QUAD_READ) },
 +			      SPI_NOR_QUAD_READ) },

+ 2 - 2
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 <[email protected]>
  obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
  obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
 --- a/drivers/mtd/nand/spi/core.c
 --- a/drivers/mtd/nand/spi/core.c
 +++ b/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[] = {
  static const struct spinand_manufacturer *spinand_manufacturers[] = {
  	&ato_spinand_manufacturer,
  	&ato_spinand_manufacturer,
@@ -133,7 +133,7 @@ Signed-off-by: Chuanhong Guo <[email protected]>
 +};
 +};
 --- a/include/linux/mtd/spinand.h
 --- a/include/linux/mtd/spinand.h
 +++ b/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 */
  /* SPI NAND manufacturers */
  extern const struct spinand_manufacturer ato_spinand_manufacturer;
  extern const struct spinand_manufacturer ato_spinand_manufacturer;

+ 3 - 3
target/linux/generic/pending-6.1/487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch

@@ -47,7 +47,7 @@ Submitted-by: Daniel Danzberger <[email protected]>
  obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
  obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
 --- a/drivers/mtd/nand/spi/core.c
 --- a/drivers/mtd/nand/spi/core.c
 +++ b/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[] = {
  static const struct spinand_manufacturer *spinand_manufacturers[] = {
  	&ato_spinand_manufacturer,
  	&ato_spinand_manufacturer,
  	&esmt_c8_spinand_manufacturer,
  	&esmt_c8_spinand_manufacturer,
@@ -158,9 +158,9 @@ Submitted-by: Daniel Danzberger <[email protected]>
 +};
 +};
 --- a/include/linux/mtd/spinand.h
 --- a/include/linux/mtd/spinand.h
 +++ b/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 */
  /* 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 esmt_c8_spinand_manufacturer;
 +extern const struct spinand_manufacturer etron_spinand_manufacturer;
 +extern const struct spinand_manufacturer etron_spinand_manufacturer;
  extern const struct spinand_manufacturer gigadevice_spinand_manufacturer;
  extern const struct spinand_manufacturer gigadevice_spinand_manufacturer;

+ 1 - 1
target/linux/generic/pending-6.1/488-mtd-spi-nor-add-xmc-xm25qh64c.patch

@@ -11,7 +11,7 @@ Signed-off-by: Joe Mullally <[email protected]>
 
 
 --- a/drivers/mtd/spi-nor/xmc.c
 --- a/drivers/mtd/spi-nor/xmc.c
 +++ b/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)
  	{ "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128)
  		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
  		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
  			      SPI_NOR_QUAD_READ) },
  			      SPI_NOR_QUAD_READ) },

+ 2 - 2
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 <[email protected]>
 
 
 --- a/drivers/mtd/ubi/build.c
 --- a/drivers/mtd/ubi/build.c
 +++ b/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;
  	return mtd;
  }
  }
  
  
@@ -82,7 +82,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  static int __init ubi_init(void)
  static int __init ubi_init(void)
  {
  {
  	int err, i, k;
  	int err, i, k;
-@@ -1283,6 +1350,12 @@ static int __init ubi_init(void)
+@@ -1289,6 +1356,12 @@ static int __init ubi_init(void)
  		}
  		}
  	}
  	}
  
  

+ 2 - 2
target/linux/generic/pending-6.1/491-ubi-auto-create-ubiblock-device-for-rootfs.patch

@@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <[email protected]>
 
 
 --- a/drivers/mtd/ubi/block.c
 --- a/drivers/mtd/ubi/block.c
 +++ b/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 <[email protected]>
  static void ubiblock_remove_all(void)
  static void ubiblock_remove_all(void)
  {
  {
  	struct ubiblock *next;
  	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();
  	ubiblock_create_from_param();
  
  

+ 2 - 2
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 <[email protected]>
 
 
 --- a/init/do_mounts.c
 --- a/init/do_mounts.c
 +++ b/init/do_mounts.c
 +++ b/init/do_mounts.c
-@@ -447,7 +447,30 @@ retry:
+@@ -446,7 +446,30 @@ retry:
  out:
  out:
  	put_page(page);
  	put_page(page);
  }
  }
@@ -40,7 +40,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  #ifdef CONFIG_ROOT_NFS
  #ifdef CONFIG_ROOT_NFS
  
  
  #define NFSROOT_TIMEOUT_MIN	5
  #define NFSROOT_TIMEOUT_MIN	5
-@@ -580,6 +603,10 @@ void __init mount_root(void)
+@@ -579,6 +602,10 @@ void __init mount_root(void)
  		return;
  		return;
  	}
  	}
  #endif
  #endif

+ 2 - 2
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 <[email protected]>
  
  
  #include "ubi-media.h"
  #include "ubi-media.h"
  #include "ubi.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_info(disk_to_dev(dev->gd), "created from ubi%d:%d(%s)",
  		 dev->ubi_num, dev->vol_id, vi->name);
  		 dev->ubi_num, dev->vol_id, vi->name);
  	mutex_unlock(&devices_mutex);
  	mutex_unlock(&devices_mutex);
@@ -31,4 +31,4 @@ Signed-off-by: Daniel Golle <[email protected]>
 +
 +
  	return 0;
  	return 0;
  
  
- out_remove_minor:
+ out_destroy_wq:

+ 2 - 4
target/linux/generic/pending-6.1/498-mtd-spi-nor-locking-support-for-MX25L6405D.patch

@@ -22,13 +22,11 @@ Signed-off-by: Nick Hainke <[email protected]>
 
 
 --- a/drivers/mtd/spi-nor/macronix.c
 --- a/drivers/mtd/spi-nor/macronix.c
 +++ b/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)
  	{ "mx25l3255e",  INFO(0xc29e16, 0, 64 * 1024,  64)
  		NO_SFDP_FLAGS(SECT_4K) },
  		NO_SFDP_FLAGS(SECT_4K) },
  	{ "mx25l6405d",  INFO(0xc22017, 0, 64 * 1024, 128)
  	{ "mx25l6405d",  INFO(0xc22017, 0, 64 * 1024, 128)
--		NO_SFDP_FLAGS(SECT_4K) },
 +		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_4BIT_BP)
 +		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)
  	{ "mx25u2033e",  INFO(0xc22532, 0, 64 * 1024,   4)
  		NO_SFDP_FLAGS(SECT_4K) },
  		NO_SFDP_FLAGS(SECT_4K) },
- 	{ "mx25u3235f",	 INFO(0xc22536, 0, 64 * 1024,  64)

+ 1 - 1
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 <[email protected]>
 
 
 --- a/drivers/mtd/spi-nor/macronix.c
 --- a/drivers/mtd/spi-nor/macronix.c
 +++ b/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->quad_enable = spi_nor_sr1_bit6_quad_enable;
  	nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode;
  	nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode;

+ 3 - 3
target/linux/generic/pending-6.1/530-jffs2_make_lzma_available.patch

@@ -1087,7 +1087,7 @@ Signed-off-by: Alexandros C. Couloumbis <[email protected]>
  #define JFFS2_NODE_ACCURATE 0x2000
  #define JFFS2_NODE_ACCURATE 0x2000
 --- a/lib/Kconfig
 --- a/lib/Kconfig
 +++ b/lib/Kconfig
 +++ b/lib/Kconfig
-@@ -340,6 +340,12 @@ config ZSTD_DECOMPRESS
+@@ -354,6 +354,12 @@ config ZSTD_DECOMPRESS
  
  
  source "lib/xz/Kconfig"
  source "lib/xz/Kconfig"
  
  
@@ -1102,7 +1102,7 @@ Signed-off-by: Alexandros C. Couloumbis <[email protected]>
  # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
  # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
 --- a/lib/Makefile
 --- a/lib/Makefile
 +++ b/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
  CFLAGS_kobject_uevent.o += -DDEBUG
  endif
  endif
  
  
@@ -1119,7 +1119,7 @@ Signed-off-by: Alexandros C. Couloumbis <[email protected]>
  obj-$(CONFIG_DEBUG_INFO_REDUCED) += debug_info.o
  obj-$(CONFIG_DEBUG_INFO_REDUCED) += debug_info.o
  CFLAGS_debug_info.o += $(call cc-option, -femit-struct-debug-detailed=any)
  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_ZSTD_DECOMPRESS) += zstd/
  obj-$(CONFIG_XZ_DEC) += xz/
  obj-$(CONFIG_XZ_DEC) += xz/
  obj-$(CONFIG_RAID6_PQ) += raid6/
  obj-$(CONFIG_RAID6_PQ) += raid6/

+ 2 - 2
target/linux/generic/pending-6.1/600-netfilter_conntrack_flush.patch

@@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  #include <net/net_namespace.h>
  #include <net/net_namespace.h>
  #ifdef CONFIG_SYSCTL
  #ifdef CONFIG_SYSCTL
  #include <linux/sysctl.h>
  #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;
  	return 0;
  }
  }
  
  
@@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  static const struct seq_operations ct_cpu_seq_ops = {
  static const struct seq_operations ct_cpu_seq_ops = {
  	.start	= ct_cpu_seq_start,
  	.start	= ct_cpu_seq_start,
  	.next	= ct_cpu_seq_next,
  	.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;
  	kuid_t root_uid;
  	kgid_t root_gid;
  	kgid_t root_gid;
  
  

+ 4 - 4
target/linux/generic/pending-6.1/610-netfilter_match_bypass_default_checks.patch

@@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  static bool
  static bool
  ip_checkentry(const struct ipt_ip *ip)
  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_mtchk_param mtpar;
  	struct xt_entry_match *ematch;
  	struct xt_entry_match *ematch;
  
  
@@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	if (!xt_percpu_counter_alloc(alloc_state, &e->counters))
  	if (!xt_percpu_counter_alloc(alloc_state, &e->counters))
  		return -ENOMEM;
  		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;
  	const struct xt_table_info *private = table->private;
  	int ret = 0;
  	int ret = 0;
  	const void *loc_cpu_entry;
  	const void *loc_cpu_entry;
@@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
  	counters = alloc_counters(table);
  	counters = alloc_counters(table);
  	if (IS_ERR(counters))
  	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;
  			goto free_counters;
  		}
  		}
  
  
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  		for (i = sizeof(struct ipt_entry);
  		for (i = sizeof(struct ipt_entry);
  		     i < e->target_offset;
  		     i < e->target_offset;
  		     i += m->u.match_size) {
  		     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;
  	compat_uint_t origsize;
  	const struct xt_entry_match *ematch;
  	const struct xt_entry_match *ematch;
  	int ret = 0;
  	int ret = 0;

+ 3 - 3
target/linux/generic/pending-6.1/611-netfilter_match_bypass_default_table.patch

@@ -41,8 +41,8 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +
 +
  /* Returns one of the generic firewall policies, like NF_ACCEPT. */
  /* Returns one of the generic firewall policies, like NF_ACCEPT. */
  unsigned int
  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;
  	unsigned int addend;
  
  
  	/* Initialization */
  	/* Initialization */
@@ -86,7 +86,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	jumpstack  = (struct ipt_entry **)private->jumpstack[cpu];
  	jumpstack  = (struct ipt_entry **)private->jumpstack[cpu];
  
  
  	/* Switch to alternate jumpstack if we're being invoked via TEE.
  	/* 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))
  	if (static_key_false(&xt_tee_enabled))
  		jumpstack += private->stacksize * __this_cpu_read(nf_skb_duplicated);
  		jumpstack += private->stacksize * __this_cpu_read(nf_skb_duplicated);
  
  

+ 8 - 8
target/linux/generic/pending-6.1/630-packet_socket_type.patch

@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  #define PACKET_FANOUT_LB		1
  #define PACKET_FANOUT_LB		1
 --- a/net/packet/af_packet.c
 --- a/net/packet/af_packet.c
 +++ b/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 sock *sk;
  	struct sockaddr_pkt *spkt;
  	struct sockaddr_pkt *spkt;
@@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
  	/*
  	/*
  	 *	When we registered the protocol we saved the socket in the data
  	 *	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;
  	sk = pt->af_packet_priv;
@@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
  	/*
  	/*
  	 *	Yank back the headers [hope the device set this
  	 *	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.
  	 *	so that this procedure is noop.
  	 */
  	 */
  
  
@@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  		goto out;
  		goto out;
  
  
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  	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;
  	unsigned int snaplen, res;
  	bool is_drop_n_account = false;
  	bool is_drop_n_account = false;
  
  
@@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  		goto drop;
  		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.h2)) != 32);
  	BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
  	BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
  
  
@@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  		goto drop;
  		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);
  	mutex_init(&po->pg_vec_lock);
  	po->rollover = NULL;
  	po->rollover = NULL;
  	po->prot_hook.func = packet_rcv;
  	po->prot_hook.func = packet_rcv;
@@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
  	if (sock->type == SOCK_PACKET)
  	if (sock->type == SOCK_PACKET)
  		po->prot_hook.func = packet_rcv_spkt;
  		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);
  		WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit);
  		return 0;
  		return 0;
  	}
  	}
@@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	default:
  	default:
  		return -ENOPROTOOPT;
  		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:
  	case PACKET_VNET_HDR:
  		val = po->has_vnet_hdr;
  		val = po->has_vnet_hdr;
  		break;
  		break;

+ 1 - 1
target/linux/generic/pending-6.1/655-increase_skb_pad.patch

@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/include/linux/skbuff.h
 --- a/include/linux/skbuff.h
 +++ b/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)
   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
   */
   */
  #ifndef NET_SKB_PAD
  #ifndef NET_SKB_PAD

+ 14 - 14
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 <[email protected]>
  	}
  	}
  	return &ip6n->tnls[prio][h];
  	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 net *net = t->net;
  	struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
  	struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
  
  
@@ -167,7 +167,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	if (dev == ip6n->fb_tnl_dev)
  	if (dev == ip6n->fb_tnl_dev)
  		RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL);
  		RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL);
  	else
  	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);
  EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl);
  
  
@@ -275,7 +275,7 @@ Signed-off-by: Steven Barth <[email protected]>
  static int __ip6_tnl_rcv(struct ip6_tnl *tunnel, struct sk_buff *skb,
  static int __ip6_tnl_rcv(struct ip6_tnl *tunnel, struct sk_buff *skb,
  			 const struct tnl_ptk_info *tpi,
  			 const struct tnl_ptk_info *tpi,
  			 struct metadata_dst *tun_dst,
  			 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);
  	skb_reset_network_header(skb);
  	memset(skb->cb, 0, sizeof(struct inet6_skb_parm));
  	memset(skb->cb, 0, sizeof(struct inet6_skb_parm));
  
  
@@ -303,7 +303,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	__skb_tunnel_rx(skb, tunnel->dev, tunnel->net);
  	__skb_tunnel_rx(skb, tunnel->dev, tunnel->net);
  
  
  	err = dscp_ecn_decapsulate(tunnel, ipv6h, skb);
  	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;
  	opt->ops.opt_nflen = 8;
  }
  }
  
  
@@ -311,7 +311,7 @@ Signed-off-by: Steven Barth <[email protected]>
  /**
  /**
   * ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
   * ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
   *   @t: the outgoing tunnel device
   *   @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)
  		u8 protocol)
  {
  {
  	struct ip6_tnl *t = netdev_priv(dev);
  	struct ip6_tnl *t = netdev_priv(dev);
@@ -319,7 +319,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	struct ipv6hdr *ipv6h;
  	struct ipv6hdr *ipv6h;
  	const struct iphdr  *iph;
  	const struct iphdr  *iph;
  	int encap_limit = -1;
  	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);
  	fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
  	dsfield = INET_ECN_encapsulate(dsfield, orig_dsfield);
  	dsfield = INET_ECN_encapsulate(dsfield, orig_dsfield);
  
  
@@ -338,7 +338,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
  	if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
  		return -1;
  		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.link = p->link;
  	t->parms.proto = p->proto;
  	t->parms.proto = p->proto;
  	t->parms.fwmark = p->fwmark;
  	t->parms.fwmark = p->fwmark;
@@ -352,7 +352,7 @@ Signed-off-by: Steven Barth <[email protected]>
 +
 +
  	dst_cache_reset(&t->dst_cache);
  	dst_cache_reset(&t->dst_cache);
  	ip6_tnl_link_config(t);
  	ip6_tnl_link_config(t);
- 	return 0;
+ }
 @@ -1564,6 +1733,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
 @@ -1564,6 +1733,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
  	p->flowinfo = u->flowinfo;
  	p->flowinfo = u->flowinfo;
  	p->link = u->link;
  	p->link = u->link;
@@ -423,8 +423,8 @@ Signed-off-by: Steven Barth <[email protected]>
 +	}
 +	}
  }
  }
  
  
- 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)
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  {
  {
@@ -437,7 +437,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	return
  	return
  		/* IFLA_IPTUN_LINK */
  		/* IFLA_IPTUN_LINK */
  		nla_total_size(4) +
  		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) +
  		nla_total_size(0) +
  		/* IFLA_IPTUN_FWMARK */
  		/* IFLA_IPTUN_FWMARK */
  		nla_total_size(4) +
  		nla_total_size(4) +
@@ -462,7 +462,7 @@ Signed-off-by: Steven Barth <[email protected]>
  		0;
  		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 *tunnel = netdev_priv(dev);
  	struct __ip6_tnl_parm *parm = &tunnel->parms;
  	struct __ip6_tnl_parm *parm = &tunnel->parms;
@@ -472,7 +472,7 @@ Signed-off-by: Steven Barth <[email protected]>
  
  
  	if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
  	if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
  	    nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
  	    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_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
  	    nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
  	    nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
  	    nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
  	    nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
@@ -501,7 +501,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
  	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_SPORT, tunnel->encap.sport) ||
  	    nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
  	    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_ENCAP_DPORT]	= { .type = NLA_U16 },
  	[IFLA_IPTUN_COLLECT_METADATA]	= { .type = NLA_FLAG },
  	[IFLA_IPTUN_COLLECT_METADATA]	= { .type = NLA_FLAG },
  	[IFLA_IPTUN_FWMARK]		= { .type = NLA_U32 },
  	[IFLA_IPTUN_FWMARK]		= { .type = NLA_U32 },

+ 18 - 18
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 <[email protected]>
  
  
 --- a/include/uapi/linux/rtnetlink.h
 --- a/include/uapi/linux/rtnetlink.h
 +++ b/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_THROW,		/* Not in this table		*/
  	RTN_NAT,		/* Translate this address	*/
  	RTN_NAT,		/* Translate this address	*/
  	RTN_XRESOLVE,		/* Use external resolver	*/
  	RTN_XRESOLVE,		/* Use external resolver	*/
@@ -53,7 +53,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  
  
 --- a/net/ipv4/fib_semantics.c
 --- a/net/ipv4/fib_semantics.c
 +++ b/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,
  		.error	= -EINVAL,
  		.scope	= RT_SCOPE_NOWHERE,
  		.scope	= RT_SCOPE_NOWHERE,
  	},
  	},
@@ -66,7 +66,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  static void rt_fibinfo_free(struct rtable __rcu **rtp)
  static void rt_fibinfo_free(struct rtable __rcu **rtp)
 --- a/net/ipv4/fib_trie.c
 --- a/net/ipv4/fib_trie.c
 +++ b/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_THROW] = "THROW",
  	[RTN_NAT] = "NAT",
  	[RTN_NAT] = "NAT",
  	[RTN_XRESOLVE] = "XRESOLVE",
  	[RTN_XRESOLVE] = "XRESOLVE",
@@ -76,7 +76,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  static inline const char *rtn_type(char *buf, size_t len, unsigned int t)
  static inline const char *rtn_type(char *buf, size_t len, unsigned int t)
 --- a/net/ipv4/ipmr.c
 --- a/net/ipv4/ipmr.c
 +++ b/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:
  	case FR_ACT_UNREACHABLE:
  		return -ENETUNREACH;
  		return -ENETUNREACH;
  	case FR_ACT_PROHIBIT:
  	case FR_ACT_PROHIBIT:
@@ -86,7 +86,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  	default:
  	default:
 --- a/net/ipv6/fib6_rules.c
 --- a/net/ipv6/fib6_rules.c
 +++ b/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;
  		err = -EACCES;
  		rt = net->ipv6.ip6_prohibit_entry;
  		rt = net->ipv6.ip6_prohibit_entry;
  		goto discard_pkt;
  		goto discard_pkt;
@@ -99,7 +99,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  	tb_id = fib_rule_get_table(rule, arg);
  	tb_id = fib_rule_get_table(rule, arg);
 --- a/net/ipv6/ip6mr.c
 --- a/net/ipv6/ip6mr.c
 +++ b/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;
  		return -ENETUNREACH;
  	case FR_ACT_PROHIBIT:
  	case FR_ACT_PROHIBIT:
  		return -EACCES;
  		return -EACCES;
@@ -119,7 +119,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  static void		ip6_link_failure(struct sk_buff *skb);
  static void		ip6_link_failure(struct sk_buff *skb);
  static void		ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk,
  static void		ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk,
  					   struct sk_buff *skb, u32 mtu,
  					   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),
  	.rt6i_flags	= (RTF_REJECT | RTF_NONEXTHOP),
  };
  };
  
  
@@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  static const struct rt6_info ip6_blk_hole_entry_template = {
  static const struct rt6_info ip6_blk_hole_entry_template = {
  	.dst = {
  	.dst = {
  		.__refcnt	= ATOMIC_INIT(1),
  		.__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_BLACKHOLE]	= -EINVAL,
  	[RTN_UNREACHABLE] = -EHOSTUNREACH,
  	[RTN_UNREACHABLE] = -EHOSTUNREACH,
  	[RTN_PROHIBIT]	= -EACCES,
  	[RTN_PROHIBIT]	= -EACCES,
@@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  	[RTN_THROW]	= -EAGAIN,
  	[RTN_THROW]	= -EAGAIN,
  	[RTN_NAT]	= -EINVAL,
  	[RTN_NAT]	= -EINVAL,
  	[RTN_XRESOLVE]	= -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.output = ip6_pkt_prohibit_out;
  		rt->dst.input = ip6_pkt_prohibit;
  		rt->dst.input = ip6_pkt_prohibit;
  		break;
  		break;
@@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  	case RTN_THROW:
  	case RTN_THROW:
  	case RTN_UNREACHABLE:
  	case RTN_UNREACHABLE:
  	default:
  	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);
  	return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
  }
  }
  
  
@@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  /*
  /*
   *	Allocate a dst for local (unicast / anycast) address.
   *	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 ||
  	if (rtm->rtm_type == RTN_UNREACHABLE ||
  	    rtm->rtm_type == RTN_BLACKHOLE ||
  	    rtm->rtm_type == RTN_BLACKHOLE ||
  	    rtm->rtm_type == RTN_PROHIBIT ||
  	    rtm->rtm_type == RTN_PROHIBIT ||
@@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  		cfg->fc_flags |= RTF_REJECT;
  		cfg->fc_flags |= RTF_REJECT;
  
  
  	if (rtm->rtm_type == RTN_LOCAL)
  	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
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  		net->ipv6.ip6_prohibit_entry->dst.dev = dev;
  		net->ipv6.ip6_prohibit_entry->dst.dev = dev;
  		net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
  		net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  		net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
  		net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
  		net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  		net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
  #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);
  		in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  		in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
  		in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
@@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  		in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
  		in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
  #endif
  #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
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  	net->ipv6.fib6_has_custom_rules = false;
  	net->ipv6.fib6_has_custom_rules = false;
@@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  	net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
  	net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
  					       sizeof(*net->ipv6.ip6_prohibit_entry),
  					       sizeof(*net->ipv6.ip6_prohibit_entry),
  					       GFP_KERNEL);
  					       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);
  			 ip6_template_metrics, true);
  	INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
  	INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
  
  
@@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  	net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
  	net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
  	dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
  	dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
  			 ip6_template_metrics, true);
  			 ip6_template_metrics, true);
-@@ -6544,6 +6590,8 @@ out:
+@@ -6529,6 +6575,8 @@ out:
  	return ret;
  	return ret;
  
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  out_ip6_prohibit_entry:
  out_ip6_prohibit_entry:
  	kfree(net->ipv6.ip6_prohibit_entry);
  	kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_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);
  	kfree(net->ipv6.ip6_null_entry);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  	kfree(net->ipv6.ip6_prohibit_entry);
  	kfree(net->ipv6.ip6_prohibit_entry);
@@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  	kfree(net->ipv6.ip6_blk_hole_entry);
  	kfree(net->ipv6.ip6_blk_hole_entry);
  #endif
  #endif
  	dst_entries_destroy(&net->ipv6.ip6_dst_ops);
  	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_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->dst.dev = init_net.loopback_dev;
  	init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
  	init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);

+ 1 - 1
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 <[email protected]>
   */
   */
 --- a/include/uapi/linux/rtnetlink.h
 --- a/include/uapi/linux/rtnetlink.h
 +++ b/include/uapi/linux/rtnetlink.h
 +++ b/include/uapi/linux/rtnetlink.h
-@@ -260,6 +260,8 @@ enum {
+@@ -269,6 +269,8 @@ enum {
  	__RTN_MAX
  	__RTN_MAX
  };
  };
  
  

+ 9 - 9
target/linux/generic/pending-6.1/680-NET-skip-GRO-for-foreign-MAC-addresses.patch

@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/include/linux/netdevice.h
 --- a/include/linux/netdevice.h
 +++ b/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	mc;
  	struct netdev_hw_addr_list	dev_addrs;
  	struct netdev_hw_addr_list	dev_addrs;
  
  
@@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  #endif
  #endif
 --- a/include/linux/skbuff.h
 --- a/include/linux/skbuff.h
 +++ b/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
  #ifdef CONFIG_IPV6_NDISC_NODETYPE
  	__u8			ndisc_nodetype:2;
  	__u8			ndisc_nodetype:2;
  #endif
  #endif
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	__u8			inner_protocol_type:1;
  	__u8			inner_protocol_type:1;
 --- a/net/core/gro.c
 --- a/net/core/gro.c
 +++ b/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 same_flow;
  	int grow;
  	int grow;
  
  
@@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
 --- a/net/core/dev.c
 --- a/net/core/dev.c
 +++ b/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);
  					   &upper_dev->adj_list.lower);
  }
  }
  
  
@@ -93,7 +93,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  static int __netdev_upper_dev_link(struct net_device *dev,
  static int __netdev_upper_dev_link(struct net_device *dev,
  				   struct net_device *upper_dev, bool master,
  				   struct net_device *upper_dev, bool master,
  				   void *upper_priv, void *upper_info,
  				   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)
  	if (ret)
  		return ret;
  		return ret;
  
  
@@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
  	ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
  					    &changeupper_info.info);
  					    &changeupper_info.info);
  	ret = notifier_to_errno(ret);
  	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);
  	__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
  
  
@@ -109,7 +109,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
  				      &changeupper_info.info);
  				      &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)
  	if (err)
  		return err;
  		return err;
  	dev->addr_assign_type = NET_ADDR_SET;
  	dev->addr_assign_type = NET_ADDR_SET;
@@ -119,7 +119,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	return 0;
  	return 0;
 --- a/net/ethernet/eth.c
 --- a/net/ethernet/eth.c
 +++ b/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);
  EXPORT_SYMBOL(eth_get_headlen);
  
  
@@ -138,7 +138,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  /**
  /**
   * eth_type_trans - determine the packet's protocol ID.
   * eth_type_trans - determine the packet's protocol ID.
   * @skb: received socket data
   * @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 {
  		} else {
  			skb->pkt_type = PACKET_OTHERHOST;
  			skb->pkt_type = PACKET_OTHERHOST;
  		}
  		}

+ 2 - 1
target/linux/generic/pending-6.1/682-of_net-add-mac-address-increment-support.patch

@@ -20,7 +20,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
 
 
 --- a/net/core/of_net.c
 --- a/net/core/of_net.c
 +++ b/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
   * this case, the real MAC is in 'local-mac-address', and 'mac-address' exists
   * but is all zeros.
   * but is all zeros.
   *
   *
@@ -87,3 +87,4 @@ Signed-off-by: Ansuel Smith <[email protected]>
 +	return ret;
 +	return ret;
  }
  }
  EXPORT_SYMBOL(of_get_mac_address);
  EXPORT_SYMBOL(of_get_mac_address);
+ 

+ 7 - 13
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 <[email protected]>
 
 
 --- a/net/netfilter/nf_flow_table_core.c
 --- a/net/netfilter/nf_flow_table_core.c
 +++ b/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,
  	.exit_batch = nf_flow_table_pernet_exit,
  };
  };
  
  
@@ -34,19 +34,14 @@ Signed-off-by: Pablo Neira Ayuso <[email protected]>
  static int __init nf_flow_table_module_init(void)
  static int __init nf_flow_table_module_init(void)
  {
  {
  	int ret;
  	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)
  	if (ret)
  		goto out_offload;
  		goto out_offload;
-+
+ 
 +	ret = register_netdevice_notifier(&flow_offload_netdev_notifier);
 +	ret = register_netdevice_notifier(&flow_offload_netdev_notifier);
 +	if (ret)
 +	if (ret)
 +		goto out_offload_init;
 +		goto out_offload_init;
- 
++
  	return 0;
  	return 0;
  
  
 +out_offload_init:
 +out_offload_init:
@@ -54,18 +49,17 @@ Signed-off-by: Pablo Neira Ayuso <[email protected]>
  out_offload:
  out_offload:
  	unregister_pernet_subsys(&nf_flow_table_net_ops);
  	unregister_pernet_subsys(&nf_flow_table_net_ops);
  	return ret;
  	return ret;
- }
+@@ -680,6 +703,7 @@ out_offload:
  
  
  static void __exit nf_flow_table_module_exit(void)
  static void __exit nf_flow_table_module_exit(void)
  {
  {
 +	unregister_netdevice_notifier(&flow_offload_netdev_notifier);
 +	unregister_netdevice_notifier(&flow_offload_netdev_notifier);
  	nf_flow_table_offload_exit();
  	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
 --- a/net/netfilter/nft_flow_offload.c
 +++ b/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,
  	.owner		= THIS_MODULE,
  };
  };
  
  

+ 3 - 3
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 <[email protected]>
 
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/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++;
  	eth->rx_events++;
  	if (likely(napi_schedule_prep(&eth->rx_napi))) {
  	if (likely(napi_schedule_prep(&eth->rx_napi))) {
@@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	}
  	}
  
  
  	return IRQ_HANDLED;
  	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++;
  	eth->tx_events++;
  	if (likely(napi_schedule_prep(&eth->tx_napi))) {
  	if (likely(napi_schedule_prep(&eth->tx_napi))) {
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	}
  	}
  
  
  	return IRQ_HANDLED;
  	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
  	 * for NAPI to work
  	 */
  	 */
  	init_dummy_netdev(&eth->dummy_dev);
  	init_dummy_netdev(&eth->dummy_dev);

+ 2 - 2
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 <[email protected]>
 
 
 --- a/drivers/net/phy/phy_device.c
 --- a/drivers/net/phy/phy_device.c
 +++ b/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 module *ndev_owner = NULL;
  	struct mii_bus *bus;
  	struct mii_bus *bus;
  
  
@@ -23,7 +23,7 @@ Signed-off-by: Gabor Juhos <[email protected]>
  			sysfs_remove_link(&dev->dev.kobj, "phydev");
  			sysfs_remove_link(&dev->dev.kobj, "phydev");
 --- a/include/linux/phy.h
 --- a/include/linux/phy.h
 +++ b/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 */
  	/** @handle_interrupt: Override default interrupt handling */
  	irqreturn_t (*handle_interrupt)(struct phy_device *phydev);
  	irqreturn_t (*handle_interrupt)(struct phy_device *phydev);
  
  

+ 10 - 10
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 <[email protected]>
 
 
 --- a/include/linux/if_bridge.h
 --- a/include/linux/if_bridge.h
 +++ b/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_MRP_LOST_IN_CONT	BIT(19)
  #define BR_TX_FWD_OFFLOAD	BIT(20)
  #define BR_TX_FWD_OFFLOAD	BIT(20)
  #define BR_PORT_LOCKED		BIT(21)
  #define BR_PORT_LOCKED		BIT(21)
@@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  			if (!(p->flags & BR_BCAST_FLOOD) && skb->dev != br->dev)
  			if (!(p->flags & BR_BCAST_FLOOD) && skb->dev != br->dev)
 --- a/net/bridge/br_input.c
 --- a/net/bridge/br_input.c
 +++ b/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;
  		fwd_mask |= p->group_fwd_mask;
  		switch (dest[5]) {
  		switch (dest[5]) {
  		case 0x00:	/* Bridge Group Address */
  		case 0x00:	/* Bridge Group Address */
@@ -106,7 +106,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
 --- a/include/uapi/linux/if_link.h
 --- a/include/uapi/linux/if_link.h
 +++ b/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_LIMIT,
  	IFLA_BRPORT_MCAST_EHT_HOSTS_CNT,
  	IFLA_BRPORT_MCAST_EHT_HOSTS_CNT,
  	IFLA_BRPORT_LOCKED,
  	IFLA_BRPORT_LOCKED,
@@ -116,7 +116,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
  #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
 --- a/net/bridge/br_netlink.c
 --- a/net/bridge/br_netlink.c
 +++ b/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_NEIGH_SUPPRESS */
  		+ nla_total_size(1)	/* IFLA_BRPORT_ISOLATED */
  		+ nla_total_size(1)	/* IFLA_BRPORT_ISOLATED */
  		+ nla_total_size(1)	/* IFLA_BRPORT_LOCKED */
  		+ nla_total_size(1)	/* IFLA_BRPORT_LOCKED */
@@ -124,7 +124,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  		+ nla_total_size(sizeof(struct ifla_bridge_id))	/* IFLA_BRPORT_ROOT_ID */
  		+ 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(struct ifla_bridge_id))	/* IFLA_BRPORT_BRIDGE_ID */
  		+ nla_total_size(sizeof(u16))	/* IFLA_BRPORT_DESIGNATED_PORT */
  		+ 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,
  	    nla_put_u8(skb, IFLA_BRPORT_MRP_IN_OPEN,
  		       !!(p->flags & BR_MRP_LOST_IN_CONT)) ||
  		       !!(p->flags & BR_MRP_LOST_IN_CONT)) ||
  	    nla_put_u8(skb, IFLA_BRPORT_ISOLATED, !!(p->flags & BR_ISOLATED)) ||
  	    nla_put_u8(skb, IFLA_BRPORT_ISOLATED, !!(p->flags & BR_ISOLATED)) ||
@@ -134,15 +134,15 @@ Signed-off-by: Felix Fietkau <[email protected]>
  		return -EMSGSIZE;
  		return -EMSGSIZE;
  
  
  	timerval = br_timer_value(&p->message_age_timer);
  	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_BACKUP_PORT] = { .type = NLA_U32 },
  	[IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT] = { .type = NLA_U32 },
  	[IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT] = { .type = NLA_U32 },
 +	[IFLA_BRPORT_BPDU_FILTER] = { .type = NLA_U8 },
 +	[IFLA_BRPORT_BPDU_FILTER] = { .type = NLA_U8 },
  };
  };
  
  
  /* Change the state of the port and notify spanning tree */
  /* 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_NEIGH_SUPPRESS, BR_NEIGH_SUPPRESS);
  	br_set_port_flag(p, tb, IFLA_BRPORT_ISOLATED, BR_ISOLATED);
  	br_set_port_flag(p, tb, IFLA_BRPORT_ISOLATED, BR_ISOLATED);
  	br_set_port_flag(p, tb, IFLA_BRPORT_LOCKED, BR_PORT_LOCKED);
  	br_set_port_flag(p, tb, IFLA_BRPORT_LOCKED, BR_PORT_LOCKED);
@@ -152,7 +152,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
 --- a/net/core/rtnetlink.c
 --- a/net/core/rtnetlink.c
 +++ b/net/core/rtnetlink.c
 +++ b/net/core/rtnetlink.c
-@@ -55,7 +55,7 @@
+@@ -57,7 +57,7 @@
  #include "dev.h"
  #include "dev.h"
  
  
  #define RTNL_MAX_TYPE		50
  #define RTNL_MAX_TYPE		50
@@ -161,7 +161,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
  struct rtnl_link {
  struct rtnl_link {
  	rtnl_doit_func		doit;
  	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,
  	    brport_nla_put_flag(skb, flags, mask,
  				IFLA_BRPORT_MCAST_FLOOD, BR_MCAST_FLOOD) ||
  				IFLA_BRPORT_MCAST_FLOOD, BR_MCAST_FLOOD) ||
  	    brport_nla_put_flag(skb, flags, mask,
  	    brport_nla_put_flag(skb, flags, mask,

+ 3 - 3
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 <[email protected]>
  #define RTL8366RB_POWER_SAVE			0x15
  #define RTL8366RB_POWER_SAVE			0x15
  #define RTL8366RB_POWER_SAVE_ON			BIT(12)
  #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;
  	return IRQ_HANDLED;
  }
  }
  
  
@@ -88,7 +88,7 @@ Signed-off-by: Alexander Couzens <[email protected]>
  static struct phy_driver realtek_drvs[] = {
  static struct phy_driver realtek_drvs[] = {
  	{
  	{
  		PHY_ID_MATCH_EXACT(0x00008201),
  		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),
  		PHY_ID_MATCH_EXACT(0x001cc849),
  		.name           = "RTL8221B-VB-CG 2.5Gbps PHY",
  		.name           = "RTL8221B-VB-CG 2.5Gbps PHY",
  		.get_features   = rtl822x_get_features,
  		.get_features   = rtl822x_get_features,
@@ -96,7 +96,7 @@ Signed-off-by: Alexander Couzens <[email protected]>
  		.config_aneg    = rtl822x_config_aneg,
  		.config_aneg    = rtl822x_config_aneg,
  		.read_status    = rtl822x_read_status,
  		.read_status    = rtl822x_read_status,
  		.suspend        = genphy_suspend,
  		.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",
  		.name           = "RTL8221B-VM-CG 2.5Gbps PHY",
  		.get_features   = rtl822x_get_features,
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
  		.config_aneg    = rtl822x_config_aneg,

+ 2 - 2
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 <[email protected]>
 
 
 --- a/drivers/net/phy/realtek.c
 --- a/drivers/net/phy/realtek.c
 +++ b/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);
  	return __genphy_config_aneg(phydev, ret);
  }
  }
  
  
@@ -42,7 +42,7 @@ Signed-off-by: Chukun Pan <[email protected]>
  static int rtl822x_read_status(struct phy_device *phydev)
  static int rtl822x_read_status(struct phy_device *phydev)
  {
  {
  	int ret;
  	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);
  			phydev->lp_advertising, lpadv & RTL_LPADV_2500FULL);
  	}
  	}
  
  

+ 1 - 1
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 <[email protected]>
 
 
 --- a/drivers/net/dsa/mt7530.c
 --- a/drivers/net/dsa/mt7530.c
 +++ b/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;
  		return -ENODEV;
  	}
  	}
  
  

+ 6 - 6
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 <[email protected]>
 
 
 --- a/drivers/net/phy/realtek.c
 --- a/drivers/net/phy/realtek.c
 +++ b/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,
  		.write_page	= rtl821x_write_page,
  		.read_mmd	= rtl822x_read_mmd,
  		.read_mmd	= rtl822x_read_mmd,
  		.write_mmd	= rtl822x_write_mmd,
  		.write_mmd	= rtl822x_write_mmd,
@@ -23,7 +23,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  	}, {
  	}, {
  		PHY_ID_MATCH_EXACT(0x001cc840),
  		PHY_ID_MATCH_EXACT(0x001cc840),
  		.name		= "RTL8226B_RTL8221B 2.5Gbps PHY",
  		.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,
  		.write_page	= rtl821x_write_page,
  		.read_mmd	= rtl822x_read_mmd,
  		.read_mmd	= rtl822x_read_mmd,
  		.write_mmd	= rtl822x_write_mmd,
  		.write_mmd	= rtl822x_write_mmd,
@@ -31,7 +31,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  	}, {
  	}, {
  		PHY_ID_MATCH_EXACT(0x001cc838),
  		PHY_ID_MATCH_EXACT(0x001cc838),
  		.name           = "RTL8226-CG 2.5Gbps PHY",
  		.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,
  		.resume         = rtlgen_resume,
  		.read_page      = rtl821x_read_page,
  		.read_page      = rtl821x_read_page,
  		.write_page     = rtl821x_write_page,
  		.write_page     = rtl821x_write_page,
@@ -39,7 +39,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  	}, {
  	}, {
  		PHY_ID_MATCH_EXACT(0x001cc848),
  		PHY_ID_MATCH_EXACT(0x001cc848),
  		.name           = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY",
  		.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,
  		.resume         = rtlgen_resume,
  		.read_page      = rtl821x_read_page,
  		.read_page      = rtl821x_read_page,
  		.write_page     = rtl821x_write_page,
  		.write_page     = rtl821x_write_page,
@@ -47,7 +47,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  	}, {
  	}, {
  		PHY_ID_MATCH_EXACT(0x001cc849),
  		PHY_ID_MATCH_EXACT(0x001cc849),
  		.name           = "RTL8221B-VB-CG 2.5Gbps PHY",
  		.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,
  		.resume         = rtlgen_resume,
  		.read_page      = rtl821x_read_page,
  		.read_page      = rtl821x_read_page,
  		.write_page     = rtl821x_write_page,
  		.write_page     = rtl821x_write_page,
@@ -55,7 +55,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  	}, {
  	}, {
  		PHY_ID_MATCH_EXACT(0x001cc84a),
  		PHY_ID_MATCH_EXACT(0x001cc84a),
  		.name           = "RTL8221B-VM-CG 2.5Gbps PHY",
  		.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,
  		.resume         = rtlgen_resume,
  		.read_page      = rtl821x_read_page,
  		.read_page      = rtl821x_read_page,
  		.write_page     = rtl821x_write_page,
  		.write_page     = rtl821x_write_page,

+ 2 - 2
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 <[email protected]>
 
 
 --- a/drivers/net/phy/realtek.c
 --- a/drivers/net/phy/realtek.c
 +++ b/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)
  static int rtl8221b_config_init(struct phy_device *phydev)
  {
  {
  	u16 option_mode;
  	u16 option_mode;
@@ -27,7 +27,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  
  
  	switch (phydev->interface) {
  	switch (phydev->interface) {
  	case PHY_INTERFACE_MODE_2500BASEX:
  	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;
  		break;
  	}
  	}
  
  

+ 1 - 1
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 <[email protected]>
 
 
 --- a/drivers/net/phy/realtek.c
 --- a/drivers/net/phy/realtek.c
 +++ b/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;
  	int val;
  
  

+ 2 - 2
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 <[email protected]>
  
  
  #define RTL9000A_GINMR				0x14
  #define RTL9000A_GINMR				0x14
  #define RTL9000A_GINMR_LINK_STATUS		BIT(4)
  #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;
  	int ret = 0;
  
  
  	if (phydev->autoneg == AUTONEG_ENABLE) {
  	if (phydev->autoneg == AUTONEG_ENABLE) {
@@ -44,7 +44,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  		if (ret < 0)
  		if (ret < 0)
  			return ret;
  			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)
  		if (lpadv < 0)
  			return lpadv;
  			return lpadv;
  
  

+ 1 - 1
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 <[email protected]>
 
 
 --- a/drivers/net/phy/realtek.c
 --- a/drivers/net/phy/realtek.c
 +++ b/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)
  		if (lpadv < 0)
  			return lpadv;
  			return lpadv;
  
  

+ 7 - 7
target/linux/generic/pending-6.1/729-net-phy-realtek-introduce-rtl822x_probe.patch

@@ -24,7 +24,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  #define RTL8366RB_POWER_SAVE			0x15
  #define RTL8366RB_POWER_SAVE			0x15
  #define RTL8366RB_POWER_SAVE_ON			BIT(12)
  #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);
  	       rtlgen_supports_2_5gbps(phydev);
  }
  }
  
  
@@ -50,7 +50,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  static int rtlgen_resume(struct phy_device *phydev)
  static int rtlgen_resume(struct phy_device *phydev)
  {
  {
  	int ret = genphy_resume(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,
  		.match_phy_device = rtl8226_match_phy_device,
  		.get_features	= rtl822x_get_features,
  		.get_features	= rtl822x_get_features,
  		.config_aneg	= rtl822x_config_aneg,
  		.config_aneg	= rtl822x_config_aneg,
@@ -58,7 +58,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  		.read_status	= rtl822x_read_status,
  		.read_status	= rtl822x_read_status,
  		.suspend	= genphy_suspend,
  		.suspend	= genphy_suspend,
  		.resume		= rtlgen_resume,
  		.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",
  		.name		= "RTL8226B_RTL8221B 2.5Gbps PHY",
  		.get_features	= rtl822x_get_features,
  		.get_features	= rtl822x_get_features,
  		.config_aneg	= rtl822x_config_aneg,
  		.config_aneg	= rtl822x_config_aneg,
@@ -66,7 +66,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  		.read_status	= rtl822x_read_status,
  		.read_status	= rtl822x_read_status,
  		.suspend	= genphy_suspend,
  		.suspend	= genphy_suspend,
  		.resume		= rtlgen_resume,
  		.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",
  		.name           = "RTL8226-CG 2.5Gbps PHY",
  		.get_features   = rtl822x_get_features,
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
  		.config_aneg    = rtl822x_config_aneg,
@@ -74,7 +74,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  		.read_status    = rtl822x_read_status,
  		.read_status    = rtl822x_read_status,
  		.suspend        = genphy_suspend,
  		.suspend        = genphy_suspend,
  		.resume         = rtlgen_resume,
  		.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",
  		.name           = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY",
  		.get_features   = rtl822x_get_features,
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
  		.config_aneg    = rtl822x_config_aneg,
@@ -82,7 +82,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  		.read_status    = rtl822x_read_status,
  		.read_status    = rtl822x_read_status,
  		.suspend        = genphy_suspend,
  		.suspend        = genphy_suspend,
  		.resume         = rtlgen_resume,
  		.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,
  		.get_features   = rtl822x_get_features,
  		.config_init    = rtl8221b_config_init,
  		.config_init    = rtl8221b_config_init,
  		.config_aneg    = rtl822x_config_aneg,
  		.config_aneg    = rtl822x_config_aneg,
@@ -90,7 +90,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  		.read_status    = rtl822x_read_status,
  		.read_status    = rtl822x_read_status,
  		.suspend        = genphy_suspend,
  		.suspend        = genphy_suspend,
  		.resume         = rtlgen_resume,
  		.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,
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
  		.config_aneg    = rtl822x_config_aneg,
  		.config_init    = rtl8221b_config_init,
  		.config_init    = rtl8221b_config_init,

+ 2 - 2
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 <[email protected]>
 
 
 --- a/drivers/net/phy/realtek.c
 --- a/drivers/net/phy/realtek.c
 +++ b/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);
  	       rtlgen_supports_2_5gbps(phydev);
  }
  }
  
  
@@ -52,7 +52,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  static int rtl822x_probe(struct phy_device *phydev)
  static int rtl822x_probe(struct phy_device *phydev)
  {
  {
  	struct device *dev = &phydev->mdio.dev;
  	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,
  		.write_page     = rtl821x_write_page,
  		.soft_reset     = genphy_soft_reset,
  		.soft_reset     = genphy_soft_reset,
  	}, {
  	}, {

+ 17 - 17
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
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/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++) {
  		for (i = 0; i < num_ppe; i++) {
  			u32 ppe_addr = eth->soc->reg_map->ppe_base + i * 0x400;
  			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]) {
  			if (!eth->ppe[i]) {
  				err = -ENOMEM;
  				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,
  	.required_pctl = false,
  	.offload_version = 2,
  	.offload_version = 2,
  	.hash_offset = 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,
  	.foe_entry_size = sizeof(struct mtk_foe_entry) - 16,
  	.txrx = {
  	.txrx = {
  		.txd_size = sizeof(struct mtk_tx_dma),
  		.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,
  	.hw_features = MTK_HW_FEATURES,
  	.required_clks = MT7629_CLKS_BITMAP,
  	.required_clks = MT7629_CLKS_BITMAP,
  	.required_pctl = false,
  	.required_pctl = false,
@@ -80,7 +80,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
  	.txrx = {
  	.txrx = {
  		.txd_size = sizeof(struct mtk_tx_dma),
  		.txd_size = sizeof(struct mtk_tx_dma),
  		.rxd_size = sizeof(struct mtk_rx_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,
  	.offload_version = 2,
  	.hash_offset = 4,
  	.hash_offset = 4,
  	.foe_entry_size = sizeof(struct mtk_foe_entry),
  	.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 = {
  	.txrx = {
  		.txd_size = sizeof(struct mtk_tx_dma_v2),
  		.txd_size = sizeof(struct mtk_tx_dma_v2),
  		.rxd_size = sizeof(struct mtk_rx_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,
  	.hash_offset = 4,
  	.foe_entry_size = sizeof(struct mtk_foe_entry),
  	.foe_entry_size = sizeof(struct mtk_foe_entry),
 +	.has_accounting = true,
 +	.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),
  		.rxd_size = sizeof(struct mtk_rx_dma_v2),
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
 +++ b/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.
   *				the extra setup for those pins used by GMAC.
   * @hash_offset			Flow table hash offset.
   * @hash_offset			Flow table hash offset.
   * @foe_entry_size		Foe table entry size.
   * @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.
   * @txd_size			Tx DMA descriptor size.
   * @rxd_size			Rx DMA descriptor size.
   * @rxd_size			Rx DMA descriptor size.
   * @rx_irq_done_mask		Rx irq done register mask.
   * @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;
  	u8		hash_offset;
  	u16		foe_entry_size;
  	u16		foe_entry_size;
  	netdev_features_t hw_features;
  	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)
  static void mtk_ppe_cache_clear(struct mtk_ppe *ppe)
  {
  {
  	ppe_set(ppe, MTK_PPE_CACHE_CTL, MTK_PPE_CACHE_CTL_CLEAR);
  	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);
  		hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID);
  		dma_wmb();
  		dma_wmb();
  		mtk_ppe_cache_clear(ppe);
  		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;
  	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();
  	wmb();
  	hwe->ib1 = entry->ib1;
  	hwe->ib1 = entry->ib1;
  
  
@@ -190,7 +190,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
  	dma_wmb();
  	dma_wmb();
  
  
  	mtk_ppe_cache_clear(ppe);
  	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);
  	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;
  	struct mtk_ppe *ppe;
  	u32 foe_flow_size;
  	u32 foe_flow_size;
  	void *foe;
  	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->base = base;
  	ppe->eth = eth;
  	ppe->eth = eth;
  	ppe->dev = dev;
  	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,
  	foe = dmam_alloc_coherent(ppe->dev,
  				  MTK_PPE_ENTRIES * soc->foe_entry_size,
  				  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)
  	if (!ppe->foe_flow)
- 		return NULL;
+ 		goto err_free_l2_flows;
  
  
 +	if (accounting) {
 +	if (accounting) {
 +		mib = dmam_alloc_coherent(ppe->dev, MTK_PPE_ENTRIES * sizeof(*mib),
 +		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);
  	mtk_ppe_debugfs_init(ppe, index);
  
  
  	return ppe;
  	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_DEFAULT_CPU_PORT1, 0xcb777);
  		ppe_w32(ppe, MTK_PPE_SBW_CTRL, 0x7f);
  		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_deinit(struct mtk_eth *eth);
  void mtk_ppe_start(struct mtk_ppe *ppe);
  void mtk_ppe_start(struct mtk_ppe *ppe);
  int mtk_ppe_stop(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);
  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_foe_entry_idle_time(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);
  int mtk_ppe_debugfs_init(struct mtk_ppe *ppe, int index);
  int mtk_ppe_debugfs_init(struct mtk_ppe *ppe, int index);

+ 2 - 11
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 <[email protected]>
  net/wireless/Kconfig            | 4 ++++
  net/wireless/Kconfig            | 4 ++++
  3 files changed, 6 insertions(+), 2 deletions(-)
  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
 --- a/include/linux/netdevice.h
 +++ b/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)
  #if IS_ENABLED(CONFIG_AX25)
  	void			*ax25_ptr;
  	void			*ax25_ptr;
  #endif
  #endif
@@ -28,11 +26,9 @@ index eddf8ee270e7..1ac7390772de 100644
  	struct wireless_dev	*ieee80211_ptr;
  	struct wireless_dev	*ieee80211_ptr;
  #endif
  #endif
  #if IS_ENABLED(CONFIG_IEEE802154) || IS_ENABLED(CONFIG_6LOWPAN)
  #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
 --- a/net/batman-adv/hard-interface.c
 +++ b/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)
  	if (!net_device)
  		return false;
  		return false;
  
  
@@ -41,8 +37,6 @@ index 41c1ad33d009..58a1c5999b44 100644
  	/* cfg80211 drivers have to set ieee80211_ptr */
  	/* cfg80211 drivers have to set ieee80211_ptr */
  	if (net_device->ieee80211_ptr)
  	if (net_device->ieee80211_ptr)
  		return true;
  		return true;
-diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig
-index f620acd2a0f5..9f1aa9ec9fa3 100644
 --- a/net/wireless/Kconfig
 --- a/net/wireless/Kconfig
 +++ b/net/wireless/Kconfig
 +++ b/net/wireless/Kconfig
 @@ -26,6 +26,7 @@ config CFG80211
 @@ -26,6 +26,7 @@ config CFG80211
@@ -63,6 +57,3 @@ index f620acd2a0f5..9f1aa9ec9fa3 100644
  if CFG80211
  if CFG80211
  
  
  config NL80211_TESTMODE
  config NL80211_TESTMODE
--- 
-2.37.2
-

+ 7 - 7
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 <[email protected]>
 
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/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) {
  	while (done < budget) {
  		unsigned int pktlen, *rxdcsum;
  		unsigned int pktlen, *rxdcsum;
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  		dma_addr_t dma_addr;
  		dma_addr_t dma_addr;
  		u32 hash, reason;
  		u32 hash, reason;
  		int mac = 0;
  		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_checksum_none_assert(skb);
  		skb->protocol = eth_type_trans(skb, netdev);
  		skb->protocol = eth_type_trans(skb, netdev);
  
  
@@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  		skb_record_rx_queue(skb, 0);
  		skb_record_rx_queue(skb, 0);
  		napi_gro_receive(napi, skb);
  		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)
  static int mtk_set_features(struct net_device *dev, netdev_features_t features)
  {
  {
@@ -100,7 +100,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	return 0;
  	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;
  	struct mtk_eth *eth = mac->hw;
  	int i, err;
  	int i, err;
  
  
@@ -131,7 +131,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0);
  	err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0);
  	if (err) {
  	if (err) {
  		netdev_err(dev, "%s: could not attach PHY: %d\n", __func__,
  		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);
  	phylink_start(mac->phylink);
  	netif_tx_start_all_queues(dev);
  	netif_tx_start_all_queues(dev);
  
  
@@ -167,7 +167,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	return 0;
  	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)) {
  	if (!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
  		val = mtk_r32(eth, MTK_CDMP_IG_CTRL);
  		val = mtk_r32(eth, MTK_CDMP_IG_CTRL);
  		mtk_w32(eth, val | MTK_CDMP_STAG_EN, 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 <[email protected]>
  
  
  	/* set interrupt delays based on current Net DIM sample */
  	/* set interrupt delays based on current Net DIM sample */
  	mtk_dim_rx(&eth->rx_dim.work);
  	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]->hw_features |= NETIF_F_LRO;
  
  
  	eth->netdev[id]->vlan_features = eth->soc->hw_features &
  	eth->netdev[id]->vlan_features = eth->soc->hw_features &

+ 3 - 3
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 <[email protected]>
 
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/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 <[email protected]>
  	bool gso = false;
  	bool gso = false;
  	int tx_num;
  	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;
  		return NETDEV_TX_BUSY;
  	}
  	}
  
  
@@ -64,7 +64,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	/* TSO: fill MSS info in tcp checksum field */
  	/* TSO: fill MSS info in tcp checksum field */
  	if (skb_is_gso(skb)) {
  	if (skb_is_gso(skb)) {
  		if (skb_cow_head(skb, 0)) {
  		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
  		}
  		}
  	}
  	}
  
  

+ 2 - 2
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 <[email protected]>
 
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/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);
  		 MAC_MCR_FORCE_RX_FC);
  
  
  	/* Configure speed */
  	/* Configure speed */
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	switch (speed) {
  	switch (speed) {
  	case SPEED_2500:
  	case SPEED_2500:
  	case SPEED_1000:
  	case SPEED_1000:
-@@ -3145,6 +3146,9 @@ found:
+@@ -3201,6 +3202,9 @@ found:
  	if (dp->index >= MTK_QDMA_NUM_QUEUES)
  	if (dp->index >= MTK_QDMA_NUM_QUEUES)
  		return NOTIFY_DONE;
  		return NOTIFY_DONE;
  
  

+ 1 - 1
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 <[email protected]>
  #include <net/dsa.h>
  #include <net/dsa.h>
  #include "mtk_eth_soc.h"
  #include "mtk_eth_soc.h"
  #include "mtk_ppe.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)
  		    skb->dev->dsa_ptr->tag_ops->proto != DSA_TAG_PROTO_MTK)
  			goto out;
  			goto out;
  
  

+ 3 - 3
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 <[email protected]>
 
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
 +++ b/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_offload_init(struct mtk_eth *eth);
  int mtk_eth_setup_tc(struct net_device *dev, enum tc_setup_type type,
  int mtk_eth_setup_tc(struct net_device *dev, enum tc_setup_type type,
  		     void *type_data);
  		     void *type_data);
@@ -120,7 +120,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  static void
  static void
  wed_m32(struct mtk_wed_device *dev, u32 reg, u32 mask, u32 val)
  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);
  	mutex_unlock(&hw_lock);
  }
  }
  
  
@@ -220,7 +220,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  void mtk_wed_add_hw(struct device_node *np, struct mtk_eth *eth,
  void mtk_wed_add_hw(struct device_node *np, struct mtk_eth *eth,
  		    void __iomem *wdma, phys_addr_t wdma_phy,
  		    void __iomem *wdma, phys_addr_t wdma_phy,
  		    int index)
  		    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,
  		.irq_set_mask = mtk_wed_irq_set_mask,
  		.detach = mtk_wed_detach,
  		.detach = mtk_wed_detach,
  		.ppe_check = mtk_wed_ppe_check,
  		.ppe_check = mtk_wed_ppe_check,

+ 1 - 1
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 <[email protected]>
 
 
 --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
 --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
 +++ b/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
  static int
  mtk_foe_entry_commit_l2(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
  mtk_foe_entry_commit_l2(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
  {
  {

+ 9 - 9
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 <[email protected]>
 
 
 --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
 --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
 +++ b/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;
  	return 0;
  }
  }
  
  
@@ -72,7 +72,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  		struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, entry->hash);
  		struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, entry->hash);
  
  
  		hwe->ib1 &= ~MTK_FOE_IB1_STATE;
  		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)
  	if (entry->type != MTK_FLOW_TYPE_L2_SUBFLOW)
  		return;
  		return;
  
  
@@ -82,7 +82,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	kfree(entry);
  	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;
  		return now - timestamp;
  }
  }
  
  
@@ -178,7 +178,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  }
  }
  
  
  static void
  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)
  void mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
  {
  {
  	spin_lock_bh(&ppe_lock);
  	spin_lock_bh(&ppe_lock);
@@ -188,7 +188,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	spin_unlock_bh(&ppe_lock);
  	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;
  	const struct mtk_soc_data *soc = ppe->eth->soc;
  	struct mtk_flow_entry *flow_info;
  	struct mtk_flow_entry *flow_info;
@@ -198,7 +198,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	u32 ib1_mask = mtk_get_ib1_pkt_type_mask(ppe->eth) | MTK_FOE_IB1_UDP;
  	u32 ib1_mask = mtk_get_ib1_pkt_type_mask(ppe->eth) | MTK_FOE_IB1_UDP;
  	int type;
  	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)
  	if (!flow_info)
  		return;
  		return;
  
  
@@ -239,7 +239,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  }
  }
  
  
  void __mtk_ppe_check_skb(struct mtk_ppe *ppe, struct sk_buff *skb, u16 hash)
  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_foe_entry *hwe = mtk_foe_get_entry(ppe, hash);
  	struct mtk_flow_entry *entry;
  	struct mtk_flow_entry *entry;
  	struct mtk_foe_bridge key = {};
  	struct mtk_foe_bridge key = {};
@@ -251,7 +251,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	u8 *tag;
  	u8 *tag;
  
  
  	spin_lock_bh(&ppe_lock);
  	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)
  	if (FIELD_GET(MTK_FOE_IB1_STATE, hwe->ib1) == MTK_FOE_STATE_BIND)
  		goto out;
  		goto out;
  
  
@@ -278,7 +278,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  			continue;
  			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)
  int mtk_foe_entry_idle_time(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
  {
  {

+ 10 - 10
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 <[email protected]>
  }
  }
  
  
  static void mtk_ppe_cache_clear(struct mtk_ppe *ppe)
  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);
  		hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID);
  		dma_wmb();
  		dma_wmb();
  		mtk_ppe_cache_clear(ppe);
  		mtk_ppe_cache_clear(ppe);
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	}
  	}
  	entry->hash = 0xffff;
  	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
  static bool
@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	int len;
  	int len;
  
  
  	if (hash == 0xffff)
  	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);
  	memcpy(&foe, hwe, len);
  
  
  	if (!mtk_flow_entry_match(ppe->eth, entry, &foe, len) ||
  	if (!mtk_flow_entry_match(ppe->eth, entry, &foe, len) ||
@@ -146,7 +146,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	struct mtk_flow_entry *cur;
  	struct mtk_flow_entry *cur;
  	struct hlist_node *tmp;
  	struct hlist_node *tmp;
  	int idle;
  	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) {
  	hlist_for_each_entry_safe(cur, tmp, &entry->l2_flows, l2_list) {
  		int cur_idle;
  		int cur_idle;
  
  
@@ -157,7 +157,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  			__mtk_foe_entry_clear(ppe, entry, false);
  			__mtk_foe_entry_clear(ppe, entry, false);
  			continue;
  			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 <[email protected]>
  	struct mtk_eth *eth = ppe->eth;
  	struct mtk_eth *eth = ppe->eth;
  	u16 timestamp = mtk_eth_timestamp(eth);
  	u16 timestamp = mtk_eth_timestamp(eth);
  	struct mtk_foe_entry *hwe;
  	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();
  	dma_wmb();
  
  
@@ -200,7 +200,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	mtk_ppe_cache_clear(ppe);
  	mtk_ppe_cache_clear(ppe);
  }
  }
  
  
-@@ -781,21 +836,6 @@ out:
+@@ -776,21 +831,6 @@ out:
  	spin_unlock_bh(&ppe_lock);
  	spin_unlock_bh(&ppe_lock);
  }
  }
  
  
@@ -222,7 +222,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  int mtk_ppe_prepare_reset(struct mtk_ppe *ppe)
  int mtk_ppe_prepare_reset(struct mtk_ppe *ppe)
  {
  {
  	if (!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);
  	return mtk_ppe_wait_busy(ppe);
  }
  }
  
  
@@ -266,7 +266,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  };
  };
  
  
  struct mtk_mib_entry {
  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);
  void mtk_ppe_start(struct mtk_ppe *ppe);
  int mtk_ppe_stop(struct mtk_ppe *ppe);
  int mtk_ppe_stop(struct mtk_ppe *ppe);
  int mtk_ppe_prepare_reset(struct mtk_ppe *ppe);
  int mtk_ppe_prepare_reset(struct mtk_ppe *ppe);
@@ -274,7 +274,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
  void __mtk_ppe_check_skb(struct mtk_ppe *ppe, struct sk_buff *skb, u16 hash);
  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);
  			    unsigned int queue);
  int mtk_foe_entry_commit(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);
  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);
  void mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);

+ 2 - 2
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 <[email protected]>
 
 
 --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
 --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
 +++ b/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;
  	struct mtk_eth *eth = ppe->eth;
  	u16 timestamp = mtk_eth_timestamp(eth);
  	u16 timestamp = mtk_eth_timestamp(eth);
  	struct mtk_foe_entry *hwe;
  	struct mtk_foe_entry *hwe;
@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
  	if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
  	if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
  		entry->ib1 &= ~MTK_FOE_IB1_BIND_TIMESTAMP_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();
  	wmb();
  	hwe->ib1 = entry->ib1;
  	hwe->ib1 = entry->ib1;
  
  

+ 18 - 18
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 <[email protected]>
 
 
 --- a/include/linux/netdevice.h
 --- a/include/linux/netdevice.h
 +++ b/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);
  int dev_set_threaded(struct net_device *dev, bool threaded);
@@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
  /**
  /**
   *	napi_disable - prevent NAPI from scheduling
   *	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		processed;
  	unsigned int		time_squeeze;
  	unsigned int		time_squeeze;
  	unsigned int		received_rps;
  	unsigned int		received_rps;
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  #endif
  #endif
 --- a/net/core/dev.c
 --- a/net/core/dev.c
 +++ b/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);
  	struct softnet_data *mysd = this_cpu_ptr(&softnet_data);
  
  
  #ifdef CONFIG_RPS
  #ifdef CONFIG_RPS
@@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  		sd->rps_ipi_next = mysd->rps_ipi_list;
  		sd->rps_ipi_next = mysd->rps_ipi_list;
  		mysd->rps_ipi_list = sd;
  		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 */
  /* Network device is going away, flush any packets still pending */
  static void flush_backlog(struct work_struct *work)
  static void flush_backlog(struct work_struct *work)
  {
  {
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	struct sk_buff *skb, *tmp;
  	struct sk_buff *skb, *tmp;
  	struct softnet_data *sd;
  	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);
  			input_queue_head_incr(sd);
  		}
  		}
  	}
  	}
@@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
  	skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
  		if (skb->dev->reg_state == NETREG_UNREGISTERING) {
  		if (skb->dev->reg_state == NETREG_UNREGISTERING) {
  			__skb_unlink(skb, &sd->process_queue);
  			__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);
  			input_queue_head_incr(sd);
  		}
  		}
  	}
  	}
@@ -83,15 +83,15 @@ Signed-off-by: Felix Fietkau <[email protected]>
  }
  }
  
  
  static bool flush_required(int cpu)
  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);
  		rps_lock_irq_disable(sd);
 +		sd->process_queue_empty++;
 +		sd->process_queue_empty++;
  		if (skb_queue_empty(&sd->input_pkt_queue)) {
  		if (skb_queue_empty(&sd->input_pkt_queue)) {
  			/*
  			/*
  			 * Inline a custom version of __napi_complete().
  			 * 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(),
  			 * We can use a plain write instead of clear_bit(),
  			 * and we dont need an smp_mb() memory barrier.
  			 * and we dont need an smp_mb() memory barrier.
  			 */
  			 */
@@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  			again = false;
  			again = false;
  		} else {
  		} else {
  			skb_queue_splice_tail_init(&sd->input_pkt_queue,
  			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);
  EXPORT_SYMBOL(dev_set_threaded);
  
  
@@ -155,9 +155,9 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +}
 +}
 +
 +
  void netif_napi_add_weight(struct net_device *dev, struct napi_struct *napi,
  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);
  	raise_softirq_irqoff(NET_TX_SOFTIRQ);
  	local_irq_enable();
  	local_irq_enable();
  
  
@@ -167,9 +167,9 @@ Signed-off-by: Felix Fietkau <[email protected]>
  #ifdef CONFIG_RPS
  #ifdef CONFIG_RPS
  	remsd = oldsd->rps_ipi_list;
  	remsd = oldsd->rps_ipi_list;
  	oldsd->rps_ipi_list = NULL;
  	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_LIST_HEAD(&sd->backlog.poll_list);
  		init_gro_hash(&sd->backlog);
  		init_gro_hash(&sd->backlog);
@@ -177,7 +177,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  		sd->backlog.weight = weight_p;
  		sd->backlog.weight = weight_p;
 --- a/net/core/sysctl_net_core.c
 --- a/net/core/sysctl_net_core.c
 +++ b/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_sndbuf = SOCK_MIN_SNDBUF;
  static int min_rcvbuf = SOCK_MIN_RCVBUF;
  static int min_rcvbuf = SOCK_MIN_RCVBUF;
  static int max_skb_frags = MAX_SKB_FRAGS;
  static int max_skb_frags = MAX_SKB_FRAGS;
@@ -185,7 +185,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
  static int net_msg_warn;	/* Unused, but still a sysctl */
  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 */
  #endif /* CONFIG_RPS */
  
  
@@ -209,7 +209,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  #ifdef CONFIG_NET_FLOW_LIMIT
  #ifdef CONFIG_NET_FLOW_LIMIT
  static DEFINE_MUTEX(flow_limit_update_mutex);
  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
  		.proc_handler	= rps_sock_flow_sysctl
  	},
  	},
  #endif
  #endif

+ 1 - 1
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 <[email protected]>
 
 
 --- a/drivers/net/dsa/mv88e6xxx/chip.c
 --- a/drivers/net/dsa/mv88e6xxx/chip.c
 +++ b/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->ops = &mv88e6xxx_switch_ops;
  	ds->ageing_time_min = chip->info->age_time_coeff;
  	ds->ageing_time_min = chip->info->age_time_coeff;
  	ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;
  	ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;

+ 2 - 2
target/linux/generic/pending-6.1/772-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch

@@ -152,7 +152,7 @@ Reviewed-by: Andrew Lunn <[email protected]>
  	if (is531x5(dev) && phy_interface_is_rgmii(phydev)) {
  	if (is531x5(dev) && phy_interface_is_rgmii(phydev)) {
  		if (port == dev->imp_port)
  		if (port == dev->imp_port)
  			off = B53_RGMII_CTRL_IMP;
  			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;
  	struct b53_device *dev = ds->priv;
  
  
@@ -164,7 +164,7 @@ Reviewed-by: Andrew Lunn <[email protected]>
  
  
 --- a/drivers/net/dsa/b53/b53_priv.h
 --- a/drivers/net/dsa/b53/b53_priv.h
 +++ b/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;
  		dev->chip_id == BCM7278_DEVICE_ID;
  }
  }
  
  

+ 1 - 1
target/linux/generic/pending-6.1/773-net-dsa-b53-mmap-add-more-63xx-SoCs.patch

@@ -94,7 +94,7 @@ Reviewed-by: Florian Fainelli <[email protected]>
 
 
 --- a/drivers/net/dsa/b53/b53_mmap.c
 --- a/drivers/net/dsa/b53/b53_mmap.c
 +++ b/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[] = {
  static const struct of_device_id b53_mmap_of_table[] = {
  	{ .compatible = "brcm,bcm3384-switch" },
  	{ .compatible = "brcm,bcm3384-switch" },

+ 4 - 4
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 <[email protected]>
 
 
 --- a/drivers/net/dsa/b53/b53_common.c
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/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,
  		.jumbo_size_reg = B53_JUMBO_MAX_SIZE_63XX,
  	},
  	},
  	{
  	{
@@ -131,7 +131,7 @@ Signed-off-by: Álvaro Fernández Rojas <[email protected]>
  	pdata->big_endian = of_property_read_bool(np, "big-endian");
  	pdata->big_endian = of_property_read_bool(np, "big-endian");
  
  
  	of_ports = of_get_child_by_name(np, "ports");
  	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[] = {
  static const struct of_device_id b53_mmap_of_table[] = {
@@ -170,7 +170,7 @@ Signed-off-by: Álvaro Fernández Rojas <[email protected]>
  
  
 --- a/drivers/net/dsa/b53/b53_priv.h
 --- a/drivers/net/dsa/b53/b53_priv.h
 +++ b/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,
  	BCM53125_DEVICE_ID = 0x53125,
  	BCM53128_DEVICE_ID = 0x53128,
  	BCM53128_DEVICE_ID = 0x53128,
  	BCM63XX_DEVICE_ID = 0x6300,
  	BCM63XX_DEVICE_ID = 0x6300,
@@ -178,7 +178,7 @@ Signed-off-by: Álvaro Fernández Rojas <[email protected]>
  	BCM53010_DEVICE_ID = 0x53010,
  	BCM53010_DEVICE_ID = 0x53010,
  	BCM53011_DEVICE_ID = 0x53011,
  	BCM53011_DEVICE_ID = 0x53011,
  	BCM53012_DEVICE_ID = 0x53012,
  	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)
  static inline int is63xx(struct b53_device *dev)
  {
  {

+ 7 - 7
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 <[email protected]>
 
 
 --- a/drivers/net/dsa/b53/b53_common.c
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/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_pm_reg = B53_JUMBO_PORT_MASK,
  		.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
  		.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
  	},
  	},
@@ -121,7 +121,7 @@ Signed-off-by: Álvaro Fernández Rojas <[email protected]>
  };
  };
  
  
  static int b53_switch_init(struct b53_device *dev)
  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 BCM53012_DEVICE_ID:
  		case BCM53018_DEVICE_ID:
  		case BCM53018_DEVICE_ID:
  		case BCM53019_DEVICE_ID:
  		case BCM53019_DEVICE_ID:
@@ -149,7 +149,7 @@ Signed-off-by: Álvaro Fernández Rojas <[email protected]>
  		dev_err(&mdiodev->dev, "Unsupported device: 0x%08x\n", phy_id);
  		dev_err(&mdiodev->dev, "Unsupported device: 0x%08x\n", phy_id);
  		return -ENODEV;
  		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,bcm53115" },
  	{ .compatible = "brcm,bcm53125" },
  	{ .compatible = "brcm,bcm53125" },
  	{ .compatible = "brcm,bcm53128" },
  	{ .compatible = "brcm,bcm53128" },
@@ -159,15 +159,15 @@ Signed-off-by: Álvaro Fernández Rojas <[email protected]>
  	{ .compatible = "brcm,bcm5395" },
  	{ .compatible = "brcm,bcm5395" },
 --- a/drivers/net/dsa/b53/b53_priv.h
 --- a/drivers/net/dsa/b53/b53_priv.h
 +++ b/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,
  	BCM583XX_DEVICE_ID = 0x58300,
  	BCM7445_DEVICE_ID = 0x7445,
  	BCM7445_DEVICE_ID = 0x7445,
  	BCM7278_DEVICE_ID = 0x7278,
  	BCM7278_DEVICE_ID = 0x7278,
 +	BCM53134_DEVICE_ID = 0x5075,
 +	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 ||
  	return dev->chip_id == BCM53115_DEVICE_ID ||
  		dev->chip_id == BCM53125_DEVICE_ID ||
  		dev->chip_id == BCM53125_DEVICE_ID ||
@@ -177,7 +177,7 @@ Signed-off-by: Álvaro Fernández Rojas <[email protected]>
  }
  }
  
  
  static inline int is63xx(struct b53_device *dev)
  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 ||
  	return dev->chip_id == BCM58XX_DEVICE_ID ||
  		dev->chip_id == BCM583XX_DEVICE_ID ||
  		dev->chip_id == BCM583XX_DEVICE_ID ||
  		dev->chip_id == BCM7445_DEVICE_ID ||
  		dev->chip_id == BCM7445_DEVICE_ID ||

+ 1 - 1
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 <[email protected]>
 
 
 --- a/arch/arm/mach-mvebu/kirkwood.c
 --- a/arch/arm/mach-mvebu/kirkwood.c
 +++ b/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/kernel.h>
  #include <linux/init.h>
  #include <linux/init.h>
  #include <linux/mbus.h>
  #include <linux/mbus.h>

+ 1 - 1
target/linux/generic/pending-6.1/790-bus-mhi-core-add-SBL-state-callback.patch

@@ -20,7 +20,7 @@ Signed-off-by: Robert Marko <[email protected]>
 
 
 --- a/drivers/bus/mhi/host/main.c
 --- a/drivers/bus/mhi/host/main.c
 +++ b/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) {
  			switch (event) {
  			case MHI_EE_SBL:
  			case MHI_EE_SBL:
  				st = DEV_ST_TRANSITION_SBL;
  				st = DEV_ST_TRANSITION_SBL;

+ 2 - 2
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 <[email protected]>
 
 
 --- a/drivers/net/dsa/mt7530.c
 --- a/drivers/net/dsa/mt7530.c
 +++ b/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 dsa_switch *ds = priv->ds;
  	struct device *dev = priv->dev;
  	struct device *dev = priv->dev;
@@ -30,7 +30,7 @@ Signed-off-by: David Bauer <[email protected]>
  	bus = devm_mdiobus_alloc(dev);
  	bus = devm_mdiobus_alloc(dev);
  	if (!bus)
  	if (!bus)
  		return -ENOMEM;
  		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)
  	if (priv->irq)
  		mt7530_setup_mdio_irq(priv);
  		mt7530_setup_mdio_irq(priv);
  
  

+ 2 - 2
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
 --- a/drivers/gpio/Kconfig
 +++ b/drivers/gpio/Kconfig
 +++ b/drivers/gpio/Kconfig
-@@ -1683,4 +1683,19 @@ config GPIO_VIRTIO
+@@ -1711,4 +1711,19 @@ config GPIO_SIM
  
  
  endmenu
  endmenu
  
  
@@ -92,7 +92,7 @@ v1 -> v2:
  endif
  endif
 --- a/drivers/gpio/Makefile
 --- a/drivers/gpio/Makefile
 +++ b/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_BRCMSTB)		+= gpio-brcmstb.o
  obj-$(CONFIG_GPIO_BT8XX)		+= gpio-bt8xx.o
  obj-$(CONFIG_GPIO_BT8XX)		+= gpio-bt8xx.o
  obj-$(CONFIG_GPIO_CADENCE)		+= gpio-cadence.o
  obj-$(CONFIG_GPIO_CADENCE)		+= gpio-cadence.o

+ 8 - 17
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 <[email protected]>
  include/linux/pm_opp.h            | 11 ++++++-----
  include/linux/pm_opp.h            | 11 ++++++-----
  3 files changed, 15 insertions(+), 12 deletions(-)
  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
 --- a/drivers/devfreq/tegra30-devfreq.c
 +++ b/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,
  static int tegra_devfreq_config_clks_nop(struct device *dev,
  					 struct opp_table *opp_table,
  					 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() */
  	/* We want to skip clk configuration via dev_pm_opp_set_opp() */
  	return 0;
  	return 0;
-diff --git a/drivers/opp/core.c b/drivers/opp/core.c
-index e87567dbe99f..2f44ceaf8d3c 100644
 --- a/drivers/opp/core.c
 --- a/drivers/opp/core.c
 +++ b/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
  static int
  _opp_config_clk_single(struct device *dev, struct opp_table *opp_table,
  _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 *target = data;
  	unsigned long freq;
  	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.
   * the order in which they are present in the array while scaling up.
   */
   */
  int dev_pm_opp_config_clks_simple(struct device *dev,
  int dev_pm_opp_config_clks_simple(struct device *dev,
@@ -58,7 +54,7 @@ index e87567dbe99f..2f44ceaf8d3c 100644
  {
  {
  	int ret, i;
  	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) {
  	if (opp_table->config_clks) {
@@ -67,7 +63,7 @@ index e87567dbe99f..2f44ceaf8d3c 100644
  		if (ret)
  		if (ret)
  			return 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()
  		 * equivalent to a clk_set_rate()
  		 */
  		 */
  		if (!_get_opp_count(opp_table)) {
  		if (!_get_opp_count(opp_table)) {
@@ -76,11 +72,9 @@ index e87567dbe99f..2f44ceaf8d3c 100644
  						     &target_freq, false);
  						     &target_freq, false);
  			goto put_opp_table;
  			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
 --- a/include/linux/pm_opp.h
 +++ b/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 dev_pm_opp *old_opp, struct dev_pm_opp *new_opp,
  			struct regulator **regulators, unsigned int count);
  			struct regulator **regulators, unsigned int count);
  
  
@@ -90,7 +84,7 @@ index dc1fb5890792..6c24a4f9fc49 100644
  			struct dev_pm_opp *opp, void *data, bool scaling_down);
  			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);
  int devm_pm_opp_set_config(struct device *dev, struct dev_pm_opp_config *config);
  void dev_pm_opp_clear_config(int token);
  void dev_pm_opp_clear_config(int token);
  int dev_pm_opp_config_clks_simple(struct device *dev,
  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);
  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);
  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 void dev_pm_opp_clear_config(int token) {}
  
  
  static inline int dev_pm_opp_config_clks_simple(struct device *dev,
  static inline int dev_pm_opp_config_clks_simple(struct device *dev,
@@ -112,6 +106,3 @@ index dc1fb5890792..6c24a4f9fc49 100644
  {
  {
  	return -EOPNOTSUPP;
  	return -EOPNOTSUPP;
  }
  }
--- 
-2.37.2
-

+ 4 - 4
target/linux/generic/pending-6.1/810-pci_disable_common_quirks.patch

@@ -25,7 +25,7 @@ Signed-off-by: Gabor Juhos <[email protected]>
  
  
 --- a/drivers/pci/quirks.c
 --- a/drivers/pci/quirks.c
 +++ b/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,
  DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID,
  				PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on);
  				PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on);
  
  
@@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <[email protected]>
  /*
  /*
   * The Mellanox Tavor device gives false positive parity errors.  Disable
   * The Mellanox Tavor device gives false positive parity errors.  Disable
   * parity error reporting.
   * 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, 0x65f9, quirk_intel_mc_errata);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, 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 <[email protected]>
  /*
  /*
   * Ivytown NTB BAR sizes are misreported by the hardware due to an erratum.
   * 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
   * 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, 0x0e08, quirk_intel_ntb);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb);
  
  
@@ -51,7 +51,7 @@ Signed-off-by: Gabor Juhos <[email protected]>
  /*
  /*
   * Some BIOS implementations leave the Intel GPU interrupts enabled, even
   * Some BIOS implementations leave the Intel GPU interrupts enabled, even
   * though no one is handling them (e.g., if the i915 driver is never
   * 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, 0x010a, disable_igfx_irq);
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
  
  

+ 1 - 1
target/linux/generic/pending-6.1/811-pci_disable_usb_common_quirks.patch

@@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  #endif  /*  __LINUX_USB_PCI_QUIRKS_H  */
  #endif  /*  __LINUX_USB_PCI_QUIRKS_H  */
 --- a/include/linux/usb/hcd.h
 --- a/include/linux/usb/hcd.h
 +++ b/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_remove(struct pci_dev *dev);
  extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
  extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
  
  

+ 11 - 11
target/linux/generic/pending-6.1/834-ledtrig-libata.patch

@@ -45,7 +45,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  	depends on ACPI
  	depends on ACPI
 --- a/drivers/ata/libata-core.c
 --- a/drivers/ata/libata-core.c
 +++ b/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;
  	return block;
  }
  }
  
  
@@ -64,18 +64,18 @@ Signed-off-by: Daniel Golle <[email protected]>
 +
 +
  /**
  /**
   *	ata_build_rw_tf - Build ATA taskfile for given read/write request
   *	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
 +#ifdef CONFIG_ATA_LEDS
 +	ata_led_act(ap);
 +	ata_led_act(ap);
 +#endif
 +#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.unhandled_irq = 1;
  	ap->stats.idle_irq = 1;
  	ap->stats.idle_irq = 1;
  #endif
  #endif
@@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  	ata_sff_port_init(ap);
  	ata_sff_port_init(ap);
  
  
  	return 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->pmp_link);
  		kfree(ap->slave_link);
  		kfree(ap->slave_link);
@@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  		kfree(ap);
  		kfree(ap);
  		host->ports[i] = NULL;
  		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]->print_id = atomic_inc_return(&ata_print_id);
  		host->ports[i]->local_port_no = i + 1;
  		host->ports[i]->local_port_no = i + 1;
  	}
  	}
@@ -134,7 +134,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  
  
  /*
  /*
   * Define if arch has non-standard setup.  This is a _PCI_ standard
   * 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
  #ifdef CONFIG_ATA_ACPI
  	struct ata_acpi_gtm	__acpi_init_gtm; /* use ata_acpi_init_gtm() */
  	struct ata_acpi_gtm	__acpi_init_gtm; /* use ata_acpi_init_gtm() */
  #endif
  #endif

+ 4 - 4
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 <[email protected]>
 
 
 --- a/drivers/pci/controller/pci-aardvark.c
 --- a/drivers/pci/controller/pci-aardvark.c
 +++ b/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;
  	u8 wins_count;
  	struct irq_domain *rp_irq_domain;
  	struct irq_domain *rp_irq_domain;
  	struct irq_domain *irq_domain;
  	struct irq_domain *irq_domain;
@@ -41,7 +41,7 @@ Signed-off-by: Marek Behún <[email protected]>
  	raw_spinlock_t irq_lock;
  	raw_spinlock_t irq_lock;
  	struct irq_domain *msi_domain;
  	struct irq_domain *msi_domain;
  	struct irq_domain *msi_inner_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);
  	raw_spin_unlock_irqrestore(&pcie->irq_lock, flags);
  }
  }
  
  
@@ -63,7 +63,7 @@ Signed-off-by: Marek Behún <[email protected]>
  	irq_set_chip_data(virq, pcie);
  	irq_set_chip_data(virq, pcie);
  
  
  	return 0;
  	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 *dev = &pcie->pdev->dev;
  	struct device_node *node = dev->of_node;
  	struct device_node *node = dev->of_node;
  	struct device_node *pcie_intc_node;
  	struct device_node *pcie_intc_node;
@@ -71,7 +71,7 @@ Signed-off-by: Marek Behún <[email protected]>
  	int ret = 0;
  	int ret = 0;
  
  
  	raw_spin_lock_init(&pcie->irq_lock);
  	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;
  		return -ENODEV;
  	}
  	}
  
  

+ 3 - 3
target/linux/generic/pending-6.1/920-mangle_bootargs.patch

@@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz <[email protected]>
 
 
 --- a/init/Kconfig
 --- a/init/Kconfig
 +++ b/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
  	  an embedded system so certain expert options are available
  	  for configuration.
  	  for configuration.
  
  
@@ -31,7 +31,7 @@ Signed-off-by: Imre Kaloz <[email protected]>
  	help
  	help
 --- a/init/main.c
 --- a/init/main.c
 +++ b/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) { }
  static inline void smp_prepare_cpus(unsigned int maxcpus) { }
  #endif
  #endif
  
  
@@ -61,7 +61,7 @@ Signed-off-by: Imre Kaloz <[email protected]>
  /*
  /*
   * We need to store the untouched command line for future reference.
   * We need to store the untouched command line for future reference.
   * We also need to store the touched command line since the parameter
   * 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);
  	pr_notice("%s", linux_banner);
  	early_security_init();
  	early_security_init();
  	setup_arch(&command_line);
  	setup_arch(&command_line);