[openwrt/openwrt] generic: 6.6: manually refresh pending patches

LEDE Commits lede-commits at lists.infradead.org
Mon Mar 11 12:17:43 PDT 2024


robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/5b6bca812dee241eaa4aa13aed295926550b59c9

commit 5b6bca812dee241eaa4aa13aed295926550b59c9
Author: Weijie Gao <hackpascal at gmail.com>
AuthorDate: Thu Jan 4 02:02:00 2024 +0800

    generic: 6.6: manually refresh pending patches
    
    Refresh pending patches for kernel 6.6.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
    Signed-off-by: Weijie Gao <hackpascal at gmail.com>
---
 ...c_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch |  6 +--
 ...-.rename2-and-add-RENAME_WHITEOUT-support.patch | 32 +++++++-------
 .../141-jffs2-add-RENAME_EXCHANGE-support.patch    | 12 +++---
 .../pending-6.6/142-jffs2-add-splice-ops.patch     |  2 +-
 ...do-not-send-arp-replies-if-src-and-target.patch |  4 +-
 ...let_the_alarm_to_be_used_as_wakeup_source.patch |  2 +-
 .../pending-6.6/203-kallsyms_uncompressed.patch    |  4 +-
 .../pending-6.6/205-backtrace_module_info.patch    |  4 +-
 .../pending-6.6/302-mips_no_branch_likely.patch    |  2 +-
 .../pending-6.6/305-mips_module_reloc.patch        |  2 +-
 .../pending-6.6/332-arc-add-OWRTDTB-section.patch  |  2 +-
 ...egister-NVMEM-devices-for-partitions-with.patch |  2 +-
 ...ck-use-notifier-to-create-ubiblock-from-p.patch |  2 +-
 .../450-09-block-partitions-populate-fwnode.patch  |  4 +-
 .../450-11-block-implement-NVMEM-provider.patch    | 10 ++---
 .../450-13-mmc-core-set-card-fwnode_handle.patch   |  2 +-
 ...0-14-mmc-block-set-fwnode-of-disk-devices.patch |  2 +-
 ...465-m25p80-mx-disable-software-protection.patch | 10 ++---
 .../479-mtd-spi-nor-add-xtx-xt25f128b.patch        |  2 +-
 ...pi-nor-add-support-for-Gigadevice-GD25D05.patch |  2 +-
 ...spinand-Add-support-for-Etron-EM73D044VCx.patch | 16 ++++---
 ...-mounting-ubi0-rootfs-in-init-do_mounts.c.patch | 15 ++++---
 ...-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch |  2 +-
 ...td-spi-nor-disable-16-bit-sr-for-macronix.patch |  8 ++--
 .../pending-6.6/500-fs_cdrom_dependencies.patch    | 10 ++---
 ...t-bypass-device-lookup-for-dev-fit-rootfs.patch | 18 ++++----
 .../530-jffs2_make_lzma_available.patch            | 48 +++++++++++++--------
 .../pending-6.6/630-packet_socket_type.patch       | 14 +++---
 ...jecting-with-source-address-failed-policy.patch |  8 ++--
 ...80-NET-skip-GRO-for-foreign-MAC-addresses.patch | 10 ++---
 .../683-of_net-add-mac-address-to-of-tree.patch    |  6 +--
 ...-add-detach-callback-to-struct-phy_driver.patch |  6 +--
 ...ge-add-knob-for-filtering-rx-tx-BPDU-pack.patch | 50 +++++++++++-----------
 ...-realtek-detect-early-version-of-RTL8221B.patch |  2 +-
 ...t-mtk_eth_soc-work-around-issue-with-send.patch |  8 ++++
 ...t-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch | 14 +++---
 ...d-optional-threading-for-backlog-processi.patch |  4 +-
 ...rovide-old-opp-to-config_clks-on-_set_opp.patch |  2 +-
 ...-core-support-mac-base-fixed-layout-cells.patch |  6 +--
 .../811-pci_disable_usb_common_quirks.patch        |  2 +-
 .../generic/pending-6.6/834-ledtrig-libata.patch   |  8 ++--
 ...M-dts-nxp-imx7d-pico-add-cpu-supply-nodes.patch |  4 +-
 .../generic/pending-6.6/920-mangle_bootargs.patch  |  6 +--
 43 files changed, 198 insertions(+), 177 deletions(-)

diff --git a/target/linux/generic/pending-6.6/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch b/target/linux/generic/pending-6.6/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
index 4bf473f9a7..099b07ef7a 100644
--- a/target/linux/generic/pending-6.6/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
+++ b/target/linux/generic/pending-6.6/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
@@ -69,9 +69,9 @@ previously calculated offset is zero for the named platform it is able to boot
 Signed-off-by: Tobias Wolf <dev-NTEO at vplace.de>
 ---
 
---- a/mm/page_alloc.c
-+++ b/mm/page_alloc.c
-@@ -7897,7 +7897,7 @@ static void __init alloc_node_mem_map(st
+--- a/mm/mm_init.c
++++ b/mm/mm_init.c
+@@ -1673,7 +1673,7 @@ static void __init alloc_node_mem_map(st
  	if (pgdat == NODE_DATA(0)) {
  		mem_map = NODE_DATA(0)->node_mem_map;
  		if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
diff --git a/target/linux/generic/pending-6.6/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch b/target/linux/generic/pending-6.6/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch
index 8f40ae3ba2..b82f3d8012 100644
--- a/target/linux/generic/pending-6.6/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch
+++ b/target/linux/generic/pending-6.6/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch
@@ -8,18 +8,18 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/fs/jffs2/dir.c
 +++ b/fs/jffs2/dir.c
-@@ -614,8 +614,8 @@ static int jffs2_rmdir (struct inode *di
+@@ -617,8 +617,8 @@ static int jffs2_rmdir (struct inode *di
  	return ret;
  }
  
--static int jffs2_mknod (struct user_namespace *mnt_userns, struct inode *dir_i,
+-static int jffs2_mknod (struct mnt_idmap *idmap, struct inode *dir_i,
 -		        struct dentry *dentry, umode_t mode, dev_t rdev)
-+static int __jffs2_mknod (struct user_namespace *mnt_userns, struct inode *dir_i,
-+			  struct dentry *dentry, umode_t mode, dev_t rdev, bool whiteout)
++static int __jffs2_mknod (struct mnt_idmap *idmap, struct inode *dir_i,
++		          struct dentry *dentry, umode_t mode, dev_t rdev, bool whiteout)
  {
  	struct jffs2_inode_info *f, *dir_f;
  	struct jffs2_sb_info *c;
-@@ -754,7 +754,11 @@ static int jffs2_mknod (struct user_name
+@@ -758,7 +758,11 @@ static int jffs2_mknod (struct mnt_idmap
  	mutex_unlock(&dir_f->sem);
  	jffs2_complete_reservation(c);
  
@@ -32,27 +32,27 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	return 0;
  
   fail:
-@@ -762,6 +766,19 @@ static int jffs2_mknod (struct user_name
+@@ -766,6 +770,19 @@ static int jffs2_mknod (struct mnt_idmap
  	return ret;
  }
  
-+static int jffs2_mknod (struct user_namespace *mnt_userns, struct inode *dir_i,
-+			  struct dentry *dentry, umode_t mode, dev_t rdev)
++static int jffs2_mknod (struct mnt_idmap *idmap, struct inode *dir_i,
++			struct dentry *dentry, umode_t mode, dev_t rdev)
 +{
-+	return __jffs2_mknod(mnt_userns, dir_i, dentry, mode, rdev, false);
++	return __jffs2_mknod(idmap, dir_i, dentry, mode, rdev, false);
 +}
 +
-+static int jffs2_whiteout (struct user_namespace *mnt_userns, struct inode *old_dir,
-+			    struct dentry *old_dentry)
++static int jffs2_whiteout (struct mnt_idmap *idmap, struct inode *old_dir,
++			   struct dentry *old_dentry)
 +{
-+	return __jffs2_mknod(mnt_userns, old_dir, old_dentry, S_IFCHR | WHITEOUT_MODE,
++	return __jffs2_mknod(idmap, old_dir, old_dentry, S_IFCHR | WHITEOUT_MODE,
 +			     WHITEOUT_DEV, true);
 +}
 +
- static int jffs2_rename (struct user_namespace *mnt_userns,
+ static int jffs2_rename (struct mnt_idmap *idmap,
  			 struct inode *old_dir_i, struct dentry *old_dentry,
  			 struct inode *new_dir_i, struct dentry *new_dentry,
-@@ -773,7 +790,7 @@ static int jffs2_rename (struct user_nam
+@@ -777,7 +794,7 @@ static int jffs2_rename (struct mnt_idma
  	uint8_t type;
  	uint32_t now;
  
@@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		return -EINVAL;
  
  	/* The VFS will check for us and prevent trying to rename a
-@@ -839,9 +856,14 @@ static int jffs2_rename (struct user_nam
+@@ -843,9 +860,14 @@ static int jffs2_rename (struct mnt_idma
  	if (d_is_dir(old_dentry) && !victim_f)
  		inc_nlink(new_dir_i);
  
@@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 -			      old_dentry->d_name.name, old_dentry->d_name.len, NULL, now);
 +	if (flags & RENAME_WHITEOUT)
 +		/* Replace with whiteout */
-+		ret = jffs2_whiteout(mnt_userns, old_dir_i, old_dentry);
++		ret = jffs2_whiteout(idmap, old_dir_i, old_dentry);
 +	else
 +		/* Unlink the original */
 +		ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i),
diff --git a/target/linux/generic/pending-6.6/141-jffs2-add-RENAME_EXCHANGE-support.patch b/target/linux/generic/pending-6.6/141-jffs2-add-RENAME_EXCHANGE-support.patch
index f58fc791d2..c3a528ec90 100644
--- a/target/linux/generic/pending-6.6/141-jffs2-add-RENAME_EXCHANGE-support.patch
+++ b/target/linux/generic/pending-6.6/141-jffs2-add-RENAME_EXCHANGE-support.patch
@@ -6,7 +6,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/fs/jffs2/dir.c
 +++ b/fs/jffs2/dir.c
-@@ -787,18 +787,31 @@ static int jffs2_rename (struct user_nam
+@@ -791,18 +791,31 @@ static int jffs2_rename (struct mnt_idma
  	int ret;
  	struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb);
  	struct jffs2_inode_info *victim_f = NULL;
@@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		victim_f = JFFS2_INODE_INFO(d_inode(new_dentry));
  		if (d_is_dir(new_dentry)) {
  			struct jffs2_full_dirent *fd;
-@@ -833,7 +846,7 @@ static int jffs2_rename (struct user_nam
+@@ -837,7 +850,7 @@ static int jffs2_rename (struct mnt_idma
  	if (ret)
  		return ret;
  
@@ -49,10 +49,10 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		/* There was a victim. Kill it off nicely */
  		if (d_is_dir(new_dentry))
  			clear_nlink(d_inode(new_dentry));
-@@ -859,6 +872,12 @@ static int jffs2_rename (struct user_nam
+@@ -863,6 +876,12 @@ static int jffs2_rename (struct mnt_idma
  	if (flags & RENAME_WHITEOUT)
  		/* Replace with whiteout */
- 		ret = jffs2_whiteout(mnt_userns, old_dir_i, old_dentry);
+ 		ret = jffs2_whiteout(idmap, old_dir_i, old_dentry);
 +	else if (flags & RENAME_EXCHANGE)
 +		/* Replace the original */
 +		ret = jffs2_do_link(c, JFFS2_INODE_INFO(old_dir_i),
@@ -62,7 +62,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	else
  		/* Unlink the original */
  		ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i),
-@@ -890,7 +909,7 @@ static int jffs2_rename (struct user_nam
+@@ -895,7 +914,7 @@ static int jffs2_rename (struct mnt_idma
  		return ret;
  	}
  
@@ -70,4 +70,4 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +	if (d_is_dir(old_dentry) && !(flags & RENAME_EXCHANGE))
  		drop_nlink(old_dir_i);
  
- 	new_dir_i->i_mtime = new_dir_i->i_ctime = old_dir_i->i_mtime = old_dir_i->i_ctime = ITIME(now);
+ 	old_dir_i->i_mtime = inode_set_ctime_to_ts(old_dir_i, ITIME(now));
diff --git a/target/linux/generic/pending-6.6/142-jffs2-add-splice-ops.patch b/target/linux/generic/pending-6.6/142-jffs2-add-splice-ops.patch
index de847a1f5c..ea57158cc2 100644
--- a/target/linux/generic/pending-6.6/142-jffs2-add-splice-ops.patch
+++ b/target/linux/generic/pending-6.6/142-jffs2-add-splice-ops.patch
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	.open =		generic_file_open,
   	.read_iter =	generic_file_read_iter,
   	.write_iter =	generic_file_write_iter,
-+	.splice_read =	generic_file_splice_read,
++	.splice_read =	filemap_splice_read,
 +	.splice_write =	iter_file_splice_write,
  	.unlocked_ioctl=jffs2_ioctl,
  	.mmap =		generic_file_readonly_mmap,
diff --git a/target/linux/generic/pending-6.6/151-net-bridge-do-not-send-arp-replies-if-src-and-target.patch b/target/linux/generic/pending-6.6/151-net-bridge-do-not-send-arp-replies-if-src-and-target.patch
index f420d210c2..3abeacaffb 100644
--- a/target/linux/generic/pending-6.6/151-net-bridge-do-not-send-arp-replies-if-src-and-target.patch
+++ b/target/linux/generic/pending-6.6/151-net-bridge-do-not-send-arp-replies-if-src-and-target.patch
@@ -17,8 +17,8 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +++ b/net/bridge/br_arp_nd_proxy.c
 @@ -204,7 +204,10 @@ void br_do_proxy_suppress_arp(struct sk_
  			if ((p && (p->flags & BR_PROXYARP)) ||
- 			    (f->dst && (f->dst->flags & (BR_PROXYARP_WIFI |
- 							 BR_NEIGH_SUPPRESS)))) {
+ 			    (f->dst && (f->dst->flags & BR_PROXYARP_WIFI)) ||
+ 			    br_is_neigh_suppress_enabled(f->dst, vid)) {
 -				if (!vid)
 +				replied = true;
 +				if (!memcmp(n->ha, sha, dev->addr_len))
diff --git a/target/linux/generic/pending-6.6/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch b/target/linux/generic/pending-6.6/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch
index a9a5cdf8ba..85e5600847 100644
--- a/target/linux/generic/pending-6.6/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch
+++ b/target/linux/generic/pending-6.6/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch
@@ -26,8 +26,8 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu at gmail.com>
  	dev_dbg(&client->dev, "%s\n", __func__);
  
 @@ -868,6 +869,12 @@ static int rs5c372_probe(struct i2c_clie
- 	else
  		rs5c372->type = id->driver_data;
+ 	}
  
 +#ifdef CONFIG_OF
 +	if(of_property_read_bool(client->dev.of_node,
diff --git a/target/linux/generic/pending-6.6/203-kallsyms_uncompressed.patch b/target/linux/generic/pending-6.6/203-kallsyms_uncompressed.patch
index 78ed262b78..5c6f620749 100644
--- a/target/linux/generic/pending-6.6/203-kallsyms_uncompressed.patch
+++ b/target/linux/generic/pending-6.6/203-kallsyms_uncompressed.patch
@@ -66,8 +66,8 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  static int base_relative;
  static int lto_clang;
 @@ -608,6 +609,9 @@ static void write_src(void)
- 			(unsigned char)(table[i]->seq >> 0));
- 	printf("\n");
+ 
+ 	free(markers);
  
 +	if (uncompressed)
 +		return;
diff --git a/target/linux/generic/pending-6.6/205-backtrace_module_info.patch b/target/linux/generic/pending-6.6/205-backtrace_module_info.patch
index 27a1347981..7bbb596a5d 100644
--- a/target/linux/generic/pending-6.6/205-backtrace_module_info.patch
+++ b/target/linux/generic/pending-6.6/205-backtrace_module_info.patch
@@ -32,8 +32,8 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +	mod = __module_address(value);
 +	if (mod)
 +		snprintf(sym + len, sizeof(sym) - len, " [%s@%p+0x%x]",
-+			 mod->name, mod->core_layout.base,
-+			 mod->core_layout.size);
++			 mod->name, mod->mem[MOD_TEXT].base,
++			 mod->mem[MOD_TEXT].size);
  #endif
 +	return string(buf, end, sym, spec);
  }
diff --git a/target/linux/generic/pending-6.6/302-mips_no_branch_likely.patch b/target/linux/generic/pending-6.6/302-mips_no_branch_likely.patch
index 542fba651f..669aa8143a 100644
--- a/target/linux/generic/pending-6.6/302-mips_no_branch_likely.patch
+++ b/target/linux/generic/pending-6.6/302-mips_no_branch_likely.patch
@@ -17,6 +17,6 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #
 -cflags-y			+= -G 0 -mno-abicalls -fno-pic -pipe
 +cflags-y			+= -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely
- cflags-y			+= -msoft-float
+ cflags-y			+= -msoft-float -Wa,-msoft-float
  LDFLAGS_vmlinux			+= -G 0 -static -n -nostdlib
  KBUILD_AFLAGS_MODULE		+= -mlong-calls
diff --git a/target/linux/generic/pending-6.6/305-mips_module_reloc.patch b/target/linux/generic/pending-6.6/305-mips_module_reloc.patch
index 5de9019677..6d13574b66 100644
--- a/target/linux/generic/pending-6.6/305-mips_module_reloc.patch
+++ b/target/linux/generic/pending-6.6/305-mips_module_reloc.patch
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +++ b/arch/mips/Makefile
 @@ -97,8 +97,18 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin
  cflags-y			+= -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely
- cflags-y			+= -msoft-float
+ cflags-y			+= -msoft-float -Wa,-msoft-float
  LDFLAGS_vmlinux			+= -G 0 -static -n -nostdlib
 +ifdef CONFIG_64BIT
  KBUILD_AFLAGS_MODULE		+= -mlong-calls
diff --git a/target/linux/generic/pending-6.6/332-arc-add-OWRTDTB-section.patch b/target/linux/generic/pending-6.6/332-arc-add-OWRTDTB-section.patch
index 30158cf399..4a76e216d5 100644
--- a/target/linux/generic/pending-6.6/332-arc-add-OWRTDTB-section.patch
+++ b/target/linux/generic/pending-6.6/332-arc-add-OWRTDTB-section.patch
@@ -74,7 +74,7 @@ Signed-off-by: Evgeniy Didin <Evgeniy.Didin at synopsys.com>
 +	*
 +	* Note: "OWRTDTB:" won't be overwritten with .dtb, .dtb will follow it.
 +	*/
-+ 	.owrt : {
++	.owrt : {
 +		*(.owrt)
 +	. = ALIGN(PAGE_SIZE);
 +	}
diff --git a/target/linux/generic/pending-6.6/401-mtd-don-t-register-NVMEM-devices-for-partitions-with.patch b/target/linux/generic/pending-6.6/401-mtd-don-t-register-NVMEM-devices-for-partitions-with.patch
index 42b5a564b1..52acb0633b 100644
--- a/target/linux/generic/pending-6.6/401-mtd-don-t-register-NVMEM-devices-for-partitions-with.patch
+++ b/target/linux/generic/pending-6.6/401-mtd-don-t-register-NVMEM-devices-for-partitions-with.patch
@@ -43,6 +43,6 @@ Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
 +	    of_device_is_compatible(node, "brcm,env"))
 +		return 0;
 +
- 	config.id = -1;
+ 	config.id = NVMEM_DEVID_NONE;
  	config.dev = &mtd->dev;
  	config.name = dev_name(&mtd->dev);
diff --git a/target/linux/generic/pending-6.6/450-03-mtd-ubi-block-use-notifier-to-create-ubiblock-from-p.patch b/target/linux/generic/pending-6.6/450-03-mtd-ubi-block-use-notifier-to-create-ubiblock-from-p.patch
index eda3b108da..421daa0125 100644
--- a/target/linux/generic/pending-6.6/450-03-mtd-ubi-block-use-notifier-to-create-ubiblock-from-p.patch
+++ b/target/linux/generic/pending-6.6/450-03-mtd-ubi-block-use-notifier-to-create-ubiblock-from-p.patch
@@ -25,7 +25,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +#include <linux/namei.h>
  #include <linux/slab.h>
  #include <linux/mtd/ubi.h>
- #include <linux/workqueue.h>
+ #include <linux/blkdev.h>
 @@ -67,10 +68,10 @@ struct ubiblock_pdu {
  };
  
diff --git a/target/linux/generic/pending-6.6/450-09-block-partitions-populate-fwnode.patch b/target/linux/generic/pending-6.6/450-09-block-partitions-populate-fwnode.patch
index 8aa5cba678..b46044f5d9 100644
--- a/target/linux/generic/pending-6.6/450-09-block-partitions-populate-fwnode.patch
+++ b/target/linux/generic/pending-6.6/450-09-block-partitions-populate-fwnode.patch
@@ -21,10 +21,10 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +
  #include "check.h"
  
- static int (*check_part[])(struct parsed_partitions *) = {
+ static int (*const check_part[])(struct parsed_partitions *) = {
 @@ -298,6 +300,43 @@ static ssize_t whole_disk_show(struct de
  }
- static DEVICE_ATTR(whole_disk, 0444, whole_disk_show, NULL);
+ static const DEVICE_ATTR(whole_disk, 0444, whole_disk_show, NULL);
  
 +static struct fwnode_handle *find_partition_fwnode(struct block_device *bdev)
 +{
diff --git a/target/linux/generic/pending-6.6/450-11-block-implement-NVMEM-provider.patch b/target/linux/generic/pending-6.6/450-11-block-implement-NVMEM-provider.patch
index e18b0c3a5c..d1972d97dc 100644
--- a/target/linux/generic/pending-6.6/450-11-block-implement-NVMEM-provider.patch
+++ b/target/linux/generic/pending-6.6/450-11-block-implement-NVMEM-provider.patch
@@ -33,7 +33,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +
  source "block/partitions/Kconfig"
  
- config BLOCK_COMPAT
+ config BLK_MQ_PCI
 --- a/block/Makefile
 +++ b/block/Makefile
 @@ -35,6 +35,7 @@ obj-$(CONFIG_BLK_DEV_ZONED)	+= blk-zoned
@@ -97,7 +97,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +	if (!bnv->bdev->bd_disk->fops->open)
 +		return -EIO;
 +
-+	ret = bnv->bdev->bd_disk->fops->open(bnv->bdev, FMODE_READ);
++	ret = bnv->bdev->bd_disk->fops->open(bnv->bdev->bd_disk, BLK_OPEN_READ);
 +	if (ret)
 +		return ret;
 +
@@ -119,12 +119,12 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +	}
 +
 +err_release_bdev:
-+	bnv->bdev->bd_disk->fops->release(bnv->bdev->bd_disk, FMODE_READ);
++	bnv->bdev->bd_disk->fops->release(bnv->bdev->bd_disk);
 +
 +	return ret;
 +}
 +
-+static int blk_nvmem_register(struct device *dev, struct class_interface *iface)
++static int blk_nvmem_register(struct device *dev)
 +{
 +	struct device_node *np = dev_of_node(dev);
 +	struct block_device *bdev = dev_to_bdev(dev);
@@ -192,7 +192,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +	return 0;
 +}
 +
-+static void blk_nvmem_unregister(struct device *dev, struct class_interface *iface)
++static void blk_nvmem_unregister(struct device *dev)
 +{
 +	struct block_device *bdev = dev_to_bdev(dev);
 +	struct blk_nvmem *bnv_c, *bnv = NULL;
diff --git a/target/linux/generic/pending-6.6/450-13-mmc-core-set-card-fwnode_handle.patch b/target/linux/generic/pending-6.6/450-13-mmc-core-set-card-fwnode_handle.patch
index fada280437..cfc43318ca 100644
--- a/target/linux/generic/pending-6.6/450-13-mmc-core-set-card-fwnode_handle.patch
+++ b/target/linux/generic/pending-6.6/450-13-mmc-core-set-card-fwnode_handle.patch
@@ -13,8 +13,8 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 --- a/drivers/mmc/core/bus.c
 +++ b/drivers/mmc/core/bus.c
 @@ -363,6 +363,8 @@ int mmc_add_card(struct mmc_card *card)
+ 
  	mmc_add_card_debugfs(card);
- #endif
  	card->dev.of_node = mmc_of_find_child_device(card->host, 0);
 +	if (card->dev.of_node && !card->dev.fwnode)
 +		card->dev.fwnode = &card->dev.of_node->fwnode;
diff --git a/target/linux/generic/pending-6.6/450-14-mmc-block-set-fwnode-of-disk-devices.patch b/target/linux/generic/pending-6.6/450-14-mmc-block-set-fwnode-of-disk-devices.patch
index a9e53f1155..e645855475 100644
--- a/target/linux/generic/pending-6.6/450-14-mmc-block-set-fwnode-of-disk-devices.patch
+++ b/target/linux/generic/pending-6.6/450-14-mmc-block-set-fwnode-of-disk-devices.patch
@@ -36,4 +36,4 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +
  	string_get_size((u64)size, 512, STRING_UNITS_2,
  			cap_str, sizeof(cap_str));
- 	pr_info("%s: %s %s %s %s\n",
+ 	pr_info("%s: %s %s %s%s\n",
diff --git a/target/linux/generic/pending-6.6/465-m25p80-mx-disable-software-protection.patch b/target/linux/generic/pending-6.6/465-m25p80-mx-disable-software-protection.patch
index 1e28077338..0bed77b3b5 100644
--- a/target/linux/generic/pending-6.6/465-m25p80-mx-disable-software-protection.patch
+++ b/target/linux/generic/pending-6.6/465-m25p80-mx-disable-software-protection.patch
@@ -8,11 +8,11 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/mtd/spi-nor/macronix.c
 +++ b/drivers/mtd/spi-nor/macronix.c
-@@ -106,6 +106,7 @@ static void macronix_nor_default_init(st
+@@ -115,6 +115,7 @@ static void macronix_nor_default_init(st
  {
- 	nor->params->quad_enable = spi_nor_sr1_bit6_quad_enable;
- 	nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode;
+ 	if (!nor->params->set_4byte_addr_mode)
+ 		nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode_en4b_ex4b;
 +	nor->flags |= SNOR_F_HAS_LOCK;
- }
  
- static const struct spi_nor_fixups macronix_nor_fixups = {
+ 	return 0;
+ }
diff --git a/target/linux/generic/pending-6.6/479-mtd-spi-nor-add-xtx-xt25f128b.patch b/target/linux/generic/pending-6.6/479-mtd-spi-nor-add-xtx-xt25f128b.patch
index d2a9fb3436..371f1a7276 100644
--- a/target/linux/generic/pending-6.6/479-mtd-spi-nor-add-xtx-xt25f128b.patch
+++ b/target/linux/generic/pending-6.6/479-mtd-spi-nor-add-xtx-xt25f128b.patch
@@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +	&spi_nor_xtx,
  };
  
- static const struct flash_info *spi_nor_match_id(struct spi_nor *nor,
+ static const struct flash_info spi_nor_generic_flash = {
 --- a/drivers/mtd/spi-nor/core.h
 +++ b/drivers/mtd/spi-nor/core.h
 @@ -633,6 +633,7 @@ extern const struct spi_nor_manufacturer
diff --git a/target/linux/generic/pending-6.6/481-mtd-spi-nor-add-support-for-Gigadevice-GD25D05.patch b/target/linux/generic/pending-6.6/481-mtd-spi-nor-add-support-for-Gigadevice-GD25D05.patch
index 581e06190b..3fdd354e6b 100644
--- a/target/linux/generic/pending-6.6/481-mtd-spi-nor-add-support-for-Gigadevice-GD25D05.patch
+++ b/target/linux/generic/pending-6.6/481-mtd-spi-nor-add-support-for-Gigadevice-GD25D05.patch
@@ -15,7 +15,7 @@ Signed-off-by: Koen Vandeputte <koen.vandeputte at ncentric.com>
  
  static const struct flash_info gigadevice_nor_parts[] = {
 +	{ "gd25q05", INFO(0xc84010, 0, 64 * 1024,  1)
-+		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) 
++		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
 +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
 +			      SPI_NOR_QUAD_READ) },
  	{ "gd25q16", INFO(0xc84015, 0, 64 * 1024,  32)
diff --git a/target/linux/generic/pending-6.6/487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch b/target/linux/generic/pending-6.6/487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch
index 81378fba86..8fd1365952 100644
--- a/target/linux/generic/pending-6.6/487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch
+++ b/target/linux/generic/pending-6.6/487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch
@@ -40,15 +40,17 @@ Submitted-by: Daniel Danzberger <daniel at dd-wrt.com>
 
 --- a/drivers/mtd/nand/spi/Makefile
 +++ b/drivers/mtd/nand/spi/Makefile
-@@ -1,3 +1,3 @@
+@@ -1,4 +1,4 @@
  # SPDX-License-Identifier: GPL-2.0
--spinand-objs := core.o ato.o esmt.o gigadevice.o macronix.o micron.o paragon.o toshiba.o winbond.o xtx.o
-+spinand-objs := core.o ato.o esmt.o etron.o gigadevice.o macronix.o micron.o paragon.o toshiba.o winbond.o xtx.o
+-spinand-objs := core.o alliancememory.o ato.o esmt.o gigadevice.o macronix.o
+-spinand-objs += micron.o paragon.o toshiba.o winbond.o xtx.o
++spinand-objs := core.o alliancememory.o ato.o esmt.o etron.o gigadevice.o
++spinand-objs += macronix.o micron.o paragon.o toshiba.o winbond.o xtx.o
  obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
 --- a/drivers/mtd/nand/spi/core.c
 +++ b/drivers/mtd/nand/spi/core.c
-@@ -939,6 +939,7 @@ static const struct nand_ops spinand_ops
- static const struct spinand_manufacturer *spinand_manufacturers[] = {
+@@ -940,6 +940,7 @@ static const struct spinand_manufacturer
+ 	&alliancememory_spinand_manufacturer,
  	&ato_spinand_manufacturer,
  	&esmt_c8_spinand_manufacturer,
 +	&etron_spinand_manufacturer,
@@ -158,8 +160,8 @@ Submitted-by: Daniel Danzberger <daniel at dd-wrt.com>
 +};
 --- a/include/linux/mtd/spinand.h
 +++ b/include/linux/mtd/spinand.h
-@@ -262,6 +262,7 @@ struct spinand_manufacturer {
- /* SPI NAND manufacturers */
+@@ -263,6 +263,7 @@ struct spinand_manufacturer {
+ extern const struct spinand_manufacturer alliancememory_spinand_manufacturer;
  extern const struct spinand_manufacturer ato_spinand_manufacturer;
  extern const struct spinand_manufacturer esmt_c8_spinand_manufacturer;
 +extern const struct spinand_manufacturer etron_spinand_manufacturer;
diff --git a/target/linux/generic/pending-6.6/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch b/target/linux/generic/pending-6.6/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch
index f95ec46f14..b63b333c47 100644
--- a/target/linux/generic/pending-6.6/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch
+++ b/target/linux/generic/pending-6.6/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch
@@ -40,14 +40,15 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  #ifdef CONFIG_ROOT_NFS
  
  #define NFSROOT_TIMEOUT_MIN	5
-@@ -579,6 +602,10 @@ void __init mount_root(void)
- 		return;
- 	}
- #endif
+@@ -408,6 +408,11 @@ void __init mount_root(void)
+ 
+ void __init mount_root(char *root_device_name)
+ {
 +#ifdef CONFIG_MTD_ROOTFS_ROOT_DEV
 +	if (!mount_ubi_rootfs())
 +		return;
 +#endif
- 	if (ROOT_DEV == 0 && root_device_name && root_fs_names) {
- 		if (mount_nodev_root() == 0)
- 			return;
++
+ 	switch (ROOT_DEV) {
+ 	case Root_NFS:
+ 		mount_nfs_root();
diff --git a/target/linux/generic/pending-6.6/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch b/target/linux/generic/pending-6.6/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch
index 5357c7e15d..16bdfdd4b5 100644
--- a/target/linux/generic/pending-6.6/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch
+++ b/target/linux/generic/pending-6.6/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch
@@ -31,4 +31,4 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +
  	return 0;
  
- out_destroy_wq:
+ out_remove_minor:
diff --git a/target/linux/generic/pending-6.6/499-mtd-spi-nor-disable-16-bit-sr-for-macronix.patch b/target/linux/generic/pending-6.6/499-mtd-spi-nor-disable-16-bit-sr-for-macronix.patch
index 99e0fc72bf..e69eaf6bcc 100644
--- a/target/linux/generic/pending-6.6/499-mtd-spi-nor-disable-16-bit-sr-for-macronix.patch
+++ b/target/linux/generic/pending-6.6/499-mtd-spi-nor-disable-16-bit-sr-for-macronix.patch
@@ -20,11 +20,11 @@ Signed-off-by: Nick Hainke <vincent at systemli.org>
 
 --- a/drivers/mtd/spi-nor/macronix.c
 +++ b/drivers/mtd/spi-nor/macronix.c
-@@ -107,6 +107,7 @@ static void macronix_nor_default_init(st
+@@ -115,6 +115,7 @@ static void macronix_nor_default_init(st
  {
- 	nor->params->quad_enable = spi_nor_sr1_bit6_quad_enable;
- 	nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode;
+ 	if (!nor->params->set_4byte_addr_mode)
+ 		nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode_en4b_ex4b;
 +	nor->flags &= ~SNOR_F_HAS_16BIT_SR;
  	nor->flags |= SNOR_F_HAS_LOCK;
- }
  
+ 	return 0;
diff --git a/target/linux/generic/pending-6.6/500-fs_cdrom_dependencies.patch b/target/linux/generic/pending-6.6/500-fs_cdrom_dependencies.patch
index 2053c0fbe2..7c143584a4 100644
--- a/target/linux/generic/pending-6.6/500-fs_cdrom_dependencies.patch
+++ b/target/linux/generic/pending-6.6/500-fs_cdrom_dependencies.patch
@@ -17,9 +17,9 @@ Subject: [PATCH] fs: add cdrom dependency
  	tristate "Apple Macintosh file system support"
  	depends on BLOCK
 +	select CDROM
+ 	select BUFFER_HEAD
  	select NLS
- 	help
- 	  If you say Y here, you will be able to mount Macintosh-formatted
+ 	select LEGACY_DIRECT_IO
 --- a/fs/hfsplus/Kconfig
 +++ b/fs/hfsplus/Kconfig
 @@ -2,6 +2,7 @@
@@ -27,9 +27,9 @@ Subject: [PATCH] fs: add cdrom dependency
  	tristate "Apple Extended HFS file system support"
  	depends on BLOCK
 +	select CDROM
+ 	select BUFFER_HEAD
  	select NLS
  	select NLS_UTF8
- 	help
 --- a/fs/isofs/Kconfig
 +++ b/fs/isofs/Kconfig
 @@ -1,6 +1,7 @@
@@ -37,9 +37,9 @@ Subject: [PATCH] fs: add cdrom dependency
  config ISO9660_FS
  	tristate "ISO 9660 CDROM file system support"
 +	select CDROM
+ 	select BUFFER_HEAD
  	help
  	  This is the standard file system used on CD-ROMs.  It was previously
- 	  known as "High Sierra File System" and is called "hsfs" on other
 --- a/fs/udf/Kconfig
 +++ b/fs/udf/Kconfig
 @@ -1,6 +1,7 @@
@@ -47,6 +47,6 @@ Subject: [PATCH] fs: add cdrom dependency
  config UDF_FS
  	tristate "UDF file system support"
 +	select CDROM
+ 	select BUFFER_HEAD
  	select CRC_ITU_T
  	select NLS
- 	help
diff --git a/target/linux/generic/pending-6.6/511-init-bypass-device-lookup-for-dev-fit-rootfs.patch b/target/linux/generic/pending-6.6/511-init-bypass-device-lookup-for-dev-fit-rootfs.patch
index 685a5f9da5..e6ad104981 100644
--- a/target/linux/generic/pending-6.6/511-init-bypass-device-lookup-for-dev-fit-rootfs.patch
+++ b/target/linux/generic/pending-6.6/511-init-bypass-device-lookup-for-dev-fit-rootfs.patch
@@ -13,13 +13,13 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/init/do_mounts.c
 +++ b/init/do_mounts.c
-@@ -645,7 +645,8 @@ void __init prepare_namespace(void)
+@@ -463,7 +463,8 @@ static dev_t __init parse_root_device(char
+ 	int error;
+ 	dev_t dev;
  
- 	if (saved_root_name[0]) {
- 		root_device_name = saved_root_name;
--		if (!strncmp(root_device_name, "mtd", 3) ||
-+		if (!strncmp(root_device_name, "fit", 3) ||
-+		    !strncmp(root_device_name, "mtd", 3) ||
- 		    !strncmp(root_device_name, "ubi", 3)) {
- 			mount_block_root(root_device_name, root_mountflags);
- 			goto out;
+-	if (!strncmp(root_device_name, "mtd", 3) ||
++	if (!strncmp(root_device_name, "fit", 3) ||
++	    !strncmp(root_device_name, "mtd", 3) ||
+ 	    !strncmp(root_device_name, "ubi", 3))
+ 		return Root_Generic;
+ 	if (strcmp(root_device_name, "/dev/nfs") == 0)
diff --git a/target/linux/generic/pending-6.6/530-jffs2_make_lzma_available.patch b/target/linux/generic/pending-6.6/530-jffs2_make_lzma_available.patch
index 27a673399a..3e93c61839 100644
--- a/target/linux/generic/pending-6.6/530-jffs2_make_lzma_available.patch
+++ b/target/linux/generic/pending-6.6/530-jffs2_make_lzma_available.patch
@@ -66,26 +66,33 @@ Signed-off-by: Alexandros C. Couloumbis <alex at ozo.com>
 +CFLAGS_compr_lzma.o += -Iinclude/linux -Ilib/lzma
 --- a/fs/jffs2/compr.c
 +++ b/fs/jffs2/compr.c
-@@ -378,6 +378,9 @@ int __init jffs2_compressors_init(void)
- #ifdef CONFIG_JFFS2_LZO
- 	jffs2_lzo_init();
- #endif
-+#ifdef CONFIG_JFFS2_LZMA
-+	jffs2_lzma_init();
-+#endif
+@@ -381,6 +381,9 @@ int __init jffs2_compressors_init(void)
+ 	ret = jffs2_lzo_init();
+ 	if (ret)
+ 		goto exit_dynrubin;
++	ret = jffs2_lzma_init();
++	if (ret)
++		goto exit_lzo;
+ 
+ 
  /* Setting default compression mode */
- #ifdef CONFIG_JFFS2_CMODE_NONE
- 	jffs2_compression_mode = JFFS2_COMPR_MODE_NONE;
-@@ -401,6 +404,9 @@ int __init jffs2_compressors_init(void)
+@@ -402,6 +405,8 @@ int __init jffs2_compressors_init(void)
+ #endif
+ 	return 0;
+ 
++exit_lzo:
++	jffs2_lzo_exit();
+ exit_dynrubin:
+ 	jffs2_dynrubin_exit();
+ exit_runinmips:
+@@ -417,6 +422,7 @@ int __init jffs2_compressors_init(void)
  int jffs2_compressors_exit(void)
  {
  /* Unregistering compressors */
-+#ifdef CONFIG_JFFS2_LZMA
 +	jffs2_lzma_exit();
-+#endif
- #ifdef CONFIG_JFFS2_LZO
  	jffs2_lzo_exit();
- #endif
+ 	jffs2_dynrubin_exit();
+ 	jffs2_rubinmips_exit();
 --- a/fs/jffs2/compr.h
 +++ b/fs/jffs2/compr.h
 @@ -29,9 +29,9 @@
@@ -101,13 +108,16 @@ Signed-off-by: Alexandros C. Couloumbis <alex at ozo.com>
  
  #define JFFS2_RUBINMIPS_DISABLED /* RUBINs will be used only */
  #define JFFS2_DYNRUBIN_DISABLED  /*	   for decompression */
-@@ -101,5 +101,9 @@ void jffs2_zlib_exit(void);
- int jffs2_lzo_init(void);
- void jffs2_lzo_exit(void);
+@@ -115,5 +115,12 @@ extern void jffs2_lzo_exit(void);
+ static inline int jffs2_lzo_init(void) { return 0; }
+ static inline void jffs2_lzo_exit(void) {}
  #endif
 +#ifdef CONFIG_JFFS2_LZMA
-+int jffs2_lzma_init(void);
-+void jffs2_lzma_exit(void);
++extern int jffs2_lzma_init(void);
++extern void jffs2_lzma_exit(void);
++#else
++static inline int jffs2_lzma_init(void) { return 0; }
++static inline void jffs2_lzma_exit(void) {}
 +#endif
  
  #endif /* __JFFS2_COMPR_H__ */
diff --git a/target/linux/generic/pending-6.6/630-packet_socket_type.patch b/target/linux/generic/pending-6.6/630-packet_socket_type.patch
index c40c709635..f12a09e65f 100644
--- a/target/linux/generic/pending-6.6/630-packet_socket_type.patch
+++ b/target/linux/generic/pending-6.6/630-packet_socket_type.patch
@@ -21,10 +21,10 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  /* Packet socket options */
  
 @@ -59,6 +61,7 @@ struct sockaddr_ll {
- #define PACKET_ROLLOVER_STATS		21
  #define PACKET_FANOUT_DATA		22
  #define PACKET_IGNORE_OUTGOING		23
-+#define PACKET_RECV_TYPE		24
+ #define PACKET_VNET_HDR_SZ		24
++#define PACKET_RECV_TYPE		25
  
  #define PACKET_FANOUT_HASH		0
  #define PACKET_FANOUT_LB		1
@@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	if (sock->type == SOCK_PACKET)
  		po->prot_hook.func = packet_rcv_spkt;
 @@ -4013,6 +4016,16 @@ packet_setsockopt(struct socket *sock, i
- 		WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit);
+ 		packet_sock_flag_set(po, PACKET_SOCK_QDISC_BYPASS, val);
  		return 0;
  	}
 +	case PACKET_RECV_TYPE:
@@ -113,8 +113,8 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		return -ENOPROTOOPT;
  	}
 @@ -4069,6 +4082,13 @@ static int packet_getsockopt(struct sock
- 	case PACKET_VNET_HDR:
- 		val = po->has_vnet_hdr;
+ 	case PACKET_VNET_HDR_SZ:
+ 		val = READ_ONCE(po->vnet_hdr_sz);
  		break;
 +	case PACKET_RECV_TYPE:
 +		if (len > sizeof(unsigned int))
@@ -129,10 +129,10 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 --- a/net/packet/internal.h
 +++ b/net/packet/internal.h
 @@ -136,6 +136,7 @@ struct packet_sock {
- 	int			(*xmit)(struct sk_buff *skb);
+ 	struct net_device __rcu	*cached_dev;
  	struct packet_type	prot_hook ____cacheline_aligned_in_smp;
  	atomic_t		tp_drops ____cacheline_aligned_in_smp;
 +	unsigned int		pkt_type;
  };
  
- static inline struct packet_sock *pkt_sk(struct sock *sk)
+ #define pkt_sk(ptr) container_of_const(ptr, struct packet_sock, sk)
diff --git a/target/linux/generic/pending-6.6/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-6.6/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
index 72e8de2f1d..3ab023fdeb 100644
--- a/target/linux/generic/pending-6.6/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
+++ b/target/linux/generic/pending-6.6/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
@@ -125,7 +125,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  
 +static const struct rt6_info ip6_policy_failed_entry_template = {
 +	.dst = {
-+		.__refcnt	= ATOMIC_INIT(1),
++		.__rcuref	= RCUREF_INIT(1),
 +		.__use		= 1,
 +		.obsolete	= DST_OBSOLETE_FORCE_CHK,
 +		.error		= -EACCES,
@@ -137,7 +137,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
 +
  static const struct rt6_info ip6_blk_hole_entry_template = {
  	.dst = {
- 		.__refcnt	= ATOMIC_INIT(1),
+ 		.__rcuref	= RCUREF_INIT(1),
 @@ -1039,6 +1053,7 @@ static const int fib6_prop[RTN_MAX + 1]
  	[RTN_BLACKHOLE]	= -EINVAL,
  	[RTN_UNREACHABLE] = -EHOSTUNREACH,
@@ -213,7 +213,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  					       GFP_KERNEL);
 @@ -6499,11 +6535,21 @@ static int __net_init ip6_route_net_init
  			 ip6_template_metrics, true);
- 	INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
+ 	INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->dst.rt_uncached);
  
 +	net->ipv6.ip6_policy_failed_entry =
 +				kmemdup(&ip6_policy_failed_entry_template,
@@ -223,7 +223,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
 +	net->ipv6.ip6_policy_failed_entry->dst.ops = &net->ipv6.ip6_dst_ops;
 +	dst_init_metrics(&net->ipv6.ip6_policy_failed_entry->dst,
 +			 ip6_template_metrics, true);
-+	INIT_LIST_HEAD(&net->ipv6.ip6_policy_failed_entry->rt6i_uncached);
++	INIT_LIST_HEAD(&net->ipv6.ip6_policy_failed_entry->dst.rt_uncached);
 +
  	net->ipv6.ip6_blk_hole_entry = kmemdup(&ip6_blk_hole_entry_template,
  					       sizeof(*net->ipv6.ip6_blk_hole_entry),
diff --git a/target/linux/generic/pending-6.6/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-6.6/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index 11850c0418..26836240ee 100644
--- a/target/linux/generic/pending-6.6/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
+++ b/target/linux/generic/pending-6.6/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
@@ -28,13 +28,13 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #endif
 +	__u8			gro_skip:1;
  
+ #if IS_ENABLED(CONFIG_IP_VS)
  	__u8			ipvs_property:1;
- 	__u8			inner_protocol_type:1;
 --- a/net/core/gro.c
 +++ b/net/core/gro.c
 @@ -491,6 +491,9 @@ static enum gro_result dev_gro_receive(s
+ 	enum gro_result ret;
  	int same_flow;
- 	int grow;
  
 +	if (skb->gro_skip)
 +		goto normal;
@@ -109,9 +109,9 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
  				      &changeupper_info.info);
  
-@@ -8824,6 +8868,7 @@ int dev_set_mac_address(struct net_devic
- 	if (err)
- 		return err;
+@@ -8821,6 +8865,7 @@ int dev_set_mac_address(struct net_devic
+ 			return err;
+ 	}
  	dev->addr_assign_type = NET_ADDR_SET;
 +	netdev_update_addr_mask(dev);
  	call_netdevice_notifiers(NETDEV_CHANGEADDR, dev);
diff --git a/target/linux/generic/pending-6.6/683-of_net-add-mac-address-to-of-tree.patch b/target/linux/generic/pending-6.6/683-of_net-add-mac-address-to-of-tree.patch
index 03ee537fb8..9e81cb1f27 100644
--- a/target/linux/generic/pending-6.6/683-of_net-add-mac-address-to-of-tree.patch
+++ b/target/linux/generic/pending-6.6/683-of_net-add-mac-address-to-of-tree.patch
@@ -18,8 +18,8 @@ property. This way, the MAC address can be accessed using procfs.
 --- a/net/core/of_net.c
 +++ b/net/core/of_net.c
 @@ -95,6 +95,27 @@ static int of_get_mac_addr_nvmem(struct
- 	return 0;
  }
+ EXPORT_SYMBOL(of_get_mac_address_nvmem);
  
 +static int of_add_mac_address(struct device_node *np, u8* addr)
 +{
@@ -62,8 +62,8 @@ property. This way, the MAC address can be accessed using procfs.
 -		return 0;
 +		goto found;
  
--	return of_get_mac_addr_nvmem(np, addr);
-+	ret = of_get_mac_addr_nvmem(np, addr);
+-	return of_get_mac_address_nvmem(np, addr);
++	ret = of_get_mac_address_nvmem(np, addr);
 +	if (ret)
 +		return ret;
 +
diff --git a/target/linux/generic/pending-6.6/703-phy-add-detach-callback-to-struct-phy_driver.patch b/target/linux/generic/pending-6.6/703-phy-add-detach-callback-to-struct-phy_driver.patch
index e4937a1df1..61dd11727f 100644
--- a/target/linux/generic/pending-6.6/703-phy-add-detach-callback-to-struct-phy_driver.patch
+++ b/target/linux/generic/pending-6.6/703-phy-add-detach-callback-to-struct-phy_driver.patch
@@ -11,9 +11,9 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
 
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1850,6 +1850,9 @@ void phy_detach(struct phy_device *phyde
- 	struct module *ndev_owner = NULL;
- 	struct mii_bus *bus;
+@@ -1753,6 +1753,9 @@ void phy_detach(struct phy_device *phyde
+ 	if (phydev->devlink)
+ 		device_link_del(phydev->devlink);
  
 +	if (phydev->drv && phydev->drv->detach)
 +		phydev->drv->detach(phydev);
diff --git a/target/linux/generic/pending-6.6/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch b/target/linux/generic/pending-6.6/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
index 989aca8f35..85e42d5a94 100644
--- a/target/linux/generic/pending-6.6/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
+++ b/target/linux/generic/pending-6.6/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
@@ -15,18 +15,18 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 --- a/include/linux/if_bridge.h
 +++ b/include/linux/if_bridge.h
 @@ -59,6 +59,7 @@ struct br_ip_list {
- #define BR_MRP_LOST_IN_CONT	BIT(19)
- #define BR_TX_FWD_OFFLOAD	BIT(20)
  #define BR_PORT_LOCKED		BIT(21)
-+#define BR_BPDU_FILTER		BIT(22)
+ #define BR_PORT_MAB		BIT(22)
+ #define BR_NEIGH_VLAN_SUPPRESS	BIT(23)
++#define BR_BPDU_FILTER		BIT(24)
  
  #define BR_DEFAULT_AGEING_TIME	(300 * HZ)
  
 --- a/net/bridge/br_forward.c
 +++ b/net/bridge/br_forward.c
 @@ -199,6 +199,7 @@ out:
- void br_flood(struct net_bridge *br, struct sk_buff *skb,
- 	      enum br_pkt_type pkt_type, bool local_rcv, bool local_orig)
+ 	      enum br_pkt_type pkt_type, bool local_rcv, bool local_orig,
+ 	      u16 vid)
  {
 +	const unsigned char *dest = eth_hdr(skb)->h_dest;
  	struct net_bridge_port *prev = NULL;
@@ -107,9 +107,9 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 --- a/include/uapi/linux/if_link.h
 +++ b/include/uapi/linux/if_link.h
 @@ -561,6 +561,7 @@ enum {
- 	IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT,
- 	IFLA_BRPORT_MCAST_EHT_HOSTS_CNT,
- 	IFLA_BRPORT_LOCKED,
+ 	IFLA_BRPORT_MCAST_MAX_GROUPS,
+ 	IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,
+ 	IFLA_BRPORT_BACKUP_NHID,
 +	IFLA_BRPORT_BPDU_FILTER,
  	__IFLA_BRPORT_MAX
  };
@@ -117,47 +117,47 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 --- a/net/bridge/br_netlink.c
 +++ b/net/bridge/br_netlink.c
 @@ -188,6 +188,7 @@ static inline size_t br_port_info_size(v
- 		+ nla_total_size(1)	/* IFLA_BRPORT_NEIGH_SUPPRESS */
- 		+ nla_total_size(1)	/* IFLA_BRPORT_ISOLATED */
  		+ nla_total_size(1)	/* IFLA_BRPORT_LOCKED */
+ 		+ nla_total_size(1)	/* IFLA_BRPORT_MAB */
+ 		+ nla_total_size(1)	/* IFLA_BRPORT_NEIGH_VLAN_SUPPRESS */
 +		+ nla_total_size(1)	/* IFLA_BRPORT_BPDU_FILTER */
  		+ nla_total_size(sizeof(struct ifla_bridge_id))	/* IFLA_BRPORT_ROOT_ID */
  		+ nla_total_size(sizeof(struct ifla_bridge_id))	/* IFLA_BRPORT_BRIDGE_ID */
  		+ nla_total_size(sizeof(u16))	/* IFLA_BRPORT_DESIGNATED_PORT */
 @@ -274,7 +275,8 @@ static int br_port_fill_attrs(struct sk_
- 	    nla_put_u8(skb, IFLA_BRPORT_MRP_IN_OPEN,
- 		       !!(p->flags & BR_MRP_LOST_IN_CONT)) ||
- 	    nla_put_u8(skb, IFLA_BRPORT_ISOLATED, !!(p->flags & BR_ISOLATED)) ||
--	    nla_put_u8(skb, IFLA_BRPORT_LOCKED, !!(p->flags & BR_PORT_LOCKED)))
-+	    nla_put_u8(skb, IFLA_BRPORT_LOCKED, !!(p->flags & BR_PORT_LOCKED)) ||
+ 	    nla_put_u8(skb, IFLA_BRPORT_LOCKED, !!(p->flags & BR_PORT_LOCKED)) ||
+ 	    nla_put_u8(skb, IFLA_BRPORT_MAB, !!(p->flags & BR_PORT_MAB)) ||
+ 	    nla_put_u8(skb, IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,
+-		       !!(p->flags & BR_NEIGH_VLAN_SUPPRESS)))
++		       !!(p->flags & BR_NEIGH_VLAN_SUPPRESS)) ||
 +	    nla_put_u8(skb, IFLA_BRPORT_BPDU_FILTER, !!(p->flags & BR_BPDU_FILTER)))
  		return -EMSGSIZE;
  
  	timerval = br_timer_value(&p->message_age_timer);
 @@ -878,6 +880,7 @@ static const struct nla_policy br_port_p
- 	[IFLA_BRPORT_LOCKED] = { .type = NLA_U8 },
- 	[IFLA_BRPORT_BACKUP_PORT] = { .type = NLA_U32 },
- 	[IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT] = { .type = NLA_U32 },
+ 	[IFLA_BRPORT_MCAST_MAX_GROUPS] = { .type = NLA_U32 },
+ 	[IFLA_BRPORT_NEIGH_VLAN_SUPPRESS] = NLA_POLICY_MAX(NLA_U8, 1),
+ 	[IFLA_BRPORT_BACKUP_NHID] = { .type = NLA_U32 },
 +	[IFLA_BRPORT_BPDU_FILTER] = { .type = NLA_U8 },
  };
  
  /* Change the state of the port and notify spanning tree */
 @@ -943,6 +946,7 @@ static int br_setport(struct net_bridge_
- 	br_set_port_flag(p, tb, IFLA_BRPORT_NEIGH_SUPPRESS, BR_NEIGH_SUPPRESS);
- 	br_set_port_flag(p, tb, IFLA_BRPORT_ISOLATED, BR_ISOLATED);
- 	br_set_port_flag(p, tb, IFLA_BRPORT_LOCKED, BR_PORT_LOCKED);
+ 	br_set_port_flag(p, tb, IFLA_BRPORT_MAB, BR_PORT_MAB);
+ 	br_set_port_flag(p, tb, IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,
+ 			 BR_NEIGH_VLAN_SUPPRESS);
 +	br_set_port_flag(p, tb, IFLA_BRPORT_BPDU_FILTER, BR_BPDU_FILTER);
  
- 	changed_mask = old_flags ^ p->flags;
- 
+ 	if ((p->flags & BR_PORT_MAB) &&
+ 	    (!(p->flags & BR_PORT_LOCKED) || !(p->flags & BR_LEARNING))) {
 --- a/net/core/rtnetlink.c
 +++ b/net/core/rtnetlink.c
 @@ -57,7 +57,7 @@
  #include "dev.h"
  
  #define RTNL_MAX_TYPE		50
--#define RTNL_SLAVE_MAX_TYPE	40
-+#define RTNL_SLAVE_MAX_TYPE	41
+-#define RTNL_SLAVE_MAX_TYPE	44
++#define RTNL_SLAVE_MAX_TYPE	45
  
  struct rtnl_link {
  	rtnl_doit_func		doit;
diff --git a/target/linux/generic/pending-6.6/730-net-phy-realtek-detect-early-version-of-RTL8221B.patch b/target/linux/generic/pending-6.6/730-net-phy-realtek-detect-early-version-of-RTL8221B.patch
index f5987109f6..32d81d56f8 100644
--- a/target/linux/generic/pending-6.6/730-net-phy-realtek-detect-early-version-of-RTL8221B.patch
+++ b/target/linux/generic/pending-6.6/730-net-phy-realtek-detect-early-version-of-RTL8221B.patch
@@ -22,7 +22,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +	int val;
 +	u32 id;
 +
-+	if (phydev->mdio.bus->probe_capabilities >= MDIOBUS_C45) {
++	if (phydev->drv->read_mmd) {
 +		val = phy_read_mmd(phydev, MDIO_MMD_PMAPMD, MDIO_PKGID1);
 +		if (val < 0)
 +			return 0;
diff --git a/target/linux/generic/pending-6.6/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch b/target/linux/generic/pending-6.6/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch
index a1cc109050..17c7d92ce0 100644
--- a/target/linux/generic/pending-6.6/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch
+++ b/target/linux/generic/pending-6.6/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch
@@ -16,6 +16,14 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+@@ -26,6 +26,7 @@
+ #include <linux/bitfield.h>
+ #include <net/dsa.h>
+ #include <net/dst_metadata.h>
++#include <net/gso.h>
+ #include <net/page_pool/helpers.h>
+
+ #include "mtk_eth_soc.h"
 @@ -1562,12 +1562,28 @@ static void mtk_wake_queue(struct mtk_et
  	}
  }
diff --git a/target/linux/generic/pending-6.6/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch b/target/linux/generic/pending-6.6/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch
index 5bd2850fec..6fe29bc6c9 100644
--- a/target/linux/generic/pending-6.6/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch
+++ b/target/linux/generic/pending-6.6/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch
@@ -27,13 +27,13 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  F:	include/linux/pcs/pcs-mtk-lynxi.h
 +F:	include/linux/pcs/pcs-mtk-usxgmii.h
  
- MEDIATEK I2C CONTROLLER DRIVER
- M:	Qii Wang <qii.wang at mediatek.com>
+ MEDIATEK ETHERNET PHY DRIVERS
+ M:	Daniel Golle <daniel at makrotopia.org>
 --- a/drivers/net/pcs/Kconfig
 +++ b/drivers/net/pcs/Kconfig
 @@ -18,6 +18,17 @@ config PCS_LYNX
- 	  This module provides helpers to phylink for managing the Lynx PCS
- 	  which is part of the Layerscape and QorIQ Ethernet SERDES.
+ 	  This module provides helpers to phylink for managing the LynxI PCS
+ 	  which is part of MediaTek's SoC and Ethernet switch ICs.
  
 +config PCS_MTK_USXGMII
 +	tristate "MediaTek USXGMII PCS"
@@ -51,10 +51,10 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	depends on OF && (ARCH_RZN1 || COMPILE_TEST)
 --- a/drivers/net/pcs/Makefile
 +++ b/drivers/net/pcs/Makefile
-@@ -8,3 +8,4 @@ obj-$(CONFIG_PCS_LYNX)		+= pcs-lynx.o
- obj-$(CONFIG_PCS_RZN1_MIIC)	+= pcs-rzn1-miic.o
- obj-$(CONFIG_PCS_ALTERA_TSE)	+= pcs-altera-tse.o
+@@ -8,3 +8,4 @@ obj-$(CONFIG_PCS_XPCS)		+= pcs_xpcs.o
+ obj-$(CONFIG_PCS_LYNX)		+= pcs-lynx.o
  obj-$(CONFIG_PCS_MTK_LYNXI)	+= pcs-mtk-lynxi.o
+ obj-$(CONFIG_PCS_RZN1_MIIC)	+= pcs-rzn1-miic.o
 +obj-$(CONFIG_PCS_MTK_USXGMII)	+= pcs-mtk-usxgmii.o
 --- /dev/null
 +++ b/drivers/net/pcs/pcs-mtk-usxgmii.c
diff --git a/target/linux/generic/pending-6.6/760-net-core-add-optional-threading-for-backlog-processi.patch b/target/linux/generic/pending-6.6/760-net-core-add-optional-threading-for-backlog-processi.patch
index 42c8519c90..bb9149a668 100644
--- a/target/linux/generic/pending-6.6/760-net-core-add-optional-threading-for-backlog-processi.patch
+++ b/target/linux/generic/pending-6.6/760-net-core-add-optional-threading-for-backlog-processi.patch
@@ -20,10 +20,10 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  /**
   *	napi_disable - prevent NAPI from scheduling
-@@ -3152,6 +3153,7 @@ struct softnet_data {
+@@ -3129,6 +3130,7 @@ struct softnet_data {
+ 	/* stats */
  	unsigned int		processed;
  	unsigned int		time_squeeze;
- 	unsigned int		received_rps;
 +	unsigned int		process_queue_empty;
  #ifdef CONFIG_RPS
  	struct softnet_data	*rps_ipi_list;
diff --git a/target/linux/generic/pending-6.6/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch b/target/linux/generic/pending-6.6/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch
index 2b3e4bbf71..cb5d30db27 100644
--- a/target/linux/generic/pending-6.6/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch
+++ b/target/linux/generic/pending-6.6/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch
@@ -80,7 +80,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  
 -typedef int (*config_clks_t)(struct device *dev, struct opp_table *opp_table,
 +typedef int (*config_clks_t)(struct device *dev,
-+			struct opp_table *opp_table, struct dev_pm_opp *old_opp, 
++			struct opp_table *opp_table, struct dev_pm_opp *old_opp,
  			struct dev_pm_opp *opp, void *data, bool scaling_down);
  
  /**
diff --git a/target/linux/generic/pending-6.6/804-nvmem-core-support-mac-base-fixed-layout-cells.patch b/target/linux/generic/pending-6.6/804-nvmem-core-support-mac-base-fixed-layout-cells.patch
index 9bb94a28b5..2f0dcd91d9 100644
--- a/target/linux/generic/pending-6.6/804-nvmem-core-support-mac-base-fixed-layout-cells.patch
+++ b/target/linux/generic/pending-6.6/804-nvmem-core-support-mac-base-fixed-layout-cells.patch
@@ -10,14 +10,14 @@ string.
 
 --- a/drivers/nvmem/Kconfig
 +++ b/drivers/nvmem/Kconfig
-@@ -1,6 +1,7 @@
- # SPDX-License-Identifier: GPL-2.0-only
+@@ -2,6 +2,7 @@
  menuconfig NVMEM
  	bool "NVMEM Support"
-+	select GENERIC_NET_UTILS
  	imply NVMEM_LAYOUTS
++	select GENERIC_NET_UTILS
  	help
  	  Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES...
+ 
 --- a/drivers/nvmem/core.c
 +++ b/drivers/nvmem/core.c
 @@ -7,9 +7,12 @@
diff --git a/target/linux/generic/pending-6.6/811-pci_disable_usb_common_quirks.patch b/target/linux/generic/pending-6.6/811-pci_disable_usb_common_quirks.patch
index 98ea4c06d9..eb5aa15d30 100644
--- a/target/linux/generic/pending-6.6/811-pci_disable_usb_common_quirks.patch
+++ b/target/linux/generic/pending-6.6/811-pci_disable_usb_common_quirks.patch
@@ -111,5 +111,5 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +}
 +#endif
  
- #ifdef CONFIG_PM
  extern const struct dev_pm_ops usb_hcd_pci_pm_ops;
+ #endif /* CONFIG_USB_PCI */
diff --git a/target/linux/generic/pending-6.6/834-ledtrig-libata.patch b/target/linux/generic/pending-6.6/834-ledtrig-libata.patch
index 050c3515f6..562f9b866c 100644
--- a/target/linux/generic/pending-6.6/834-ledtrig-libata.patch
+++ b/target/linux/generic/pending-6.6/834-ledtrig-libata.patch
@@ -46,7 +46,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 --- a/drivers/ata/libata-core.c
 +++ b/drivers/ata/libata-core.c
 @@ -663,6 +663,19 @@ u64 ata_tf_read_block(const struct ata_t
- 	return block;
+ 	qc->flags |= ATA_QCFLAG_HAS_CDL | ATA_QCFLAG_RESULT_TF;
  }
  
 +#ifdef CONFIG_ATA_LEDS
@@ -85,10 +85,10 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	ata_sff_port_init(ap);
  
  	return ap;
-@@ -5473,6 +5492,12 @@ static void ata_host_release(struct kref
- 
+@@ -5469,6 +5488,12 @@ static void ata_host_release(struct kref
  		kfree(ap->pmp_link);
  		kfree(ap->slave_link);
+ 		kfree(ap->ncq_sense_buf);
 +#ifdef CONFIG_ATA_LEDS
 +		if (ap->ledtrig) {
 +			led_trigger_unregister(ap->ledtrig);
@@ -145,5 +145,5 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +#endif
 +
  	/* owned by EH */
+ 	u8			*ncq_sense_buf;
  	u8			sector_buf[ATA_SECT_SIZE] ____cacheline_aligned;
- };
diff --git a/target/linux/generic/pending-6.6/870-ARM-dts-nxp-imx7d-pico-add-cpu-supply-nodes.patch b/target/linux/generic/pending-6.6/870-ARM-dts-nxp-imx7d-pico-add-cpu-supply-nodes.patch
index e25389363f..1f860e9c76 100644
--- a/target/linux/generic/pending-6.6/870-ARM-dts-nxp-imx7d-pico-add-cpu-supply-nodes.patch
+++ b/target/linux/generic/pending-6.6/870-ARM-dts-nxp-imx7d-pico-add-cpu-supply-nodes.patch
@@ -24,8 +24,8 @@ Signed-off-by: Lech Perczak <lech.perczak at gmail.com>
  arch/arm/boot/dts/imx7d-pico.dtsi | 8 ++++++++
  1 file changed, 8 insertions(+)
 
---- a/arch/arm/boot/dts/imx7d-pico.dtsi
-+++ b/arch/arm/boot/dts/imx7d-pico.dtsi
+--- a/arch/arm/boot/dts/nxp/imx/imx7d-pico.dtsi
++++ b/arch/arm/boot/dts/nxp/imx/imx7d-pico.dtsi
 @@ -108,6 +108,14 @@
  	assigned-clock-rates = <0>, <32768>;
  };
diff --git a/target/linux/generic/pending-6.6/920-mangle_bootargs.patch b/target/linux/generic/pending-6.6/920-mangle_bootargs.patch
index 4552b4cd66..0d690e42e8 100644
--- a/target/linux/generic/pending-6.6/920-mangle_bootargs.patch
+++ b/target/linux/generic/pending-6.6/920-mangle_bootargs.patch
@@ -13,9 +13,9 @@ Signed-off-by: Imre Kaloz <kaloz at openwrt.org>
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1836,6 +1836,15 @@ config EMBEDDED
- 	  an embedded system so certain expert options are available
- 	  for configuration.
+@@ -1827,6 +1827,15 @@ config EMBEDDED
+ 
+ 	  If unsure, say N.
  
 +config MANGLE_BOOTARGS
 +	bool "Rename offending bootargs"




More information about the lede-commits mailing list