[packages/kernel] Up to 6.13.0

arekm arekm at pld-linux.org
Mon Jan 20 23:15:12 CET 2025


commit 5ed629965fea7dc96c7bf77fc4c7eae2de989fd0
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Mon Jan 20 23:15:02 2025 +0100

    Up to 6.13.0

 kernel-aufs.patch       |  641 ++++++++++++++++----------
 kernel-multiarch.config | 1177 +++++++++++++++++++++++++----------------------
 kernel.spec             |   11 +-
 3 files changed, 1013 insertions(+), 816 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index ad373132..b57856a5 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -52,8 +52,8 @@
 %endif
 
 %define		rel		1
-%define		basever		6.12
-%define		postver		.10
+%define		basever		6.13
+%define		postver		.0
 
 # define this to '-%{basever}' for longterm branch
 %define		versuffix	%{nil}
@@ -104,7 +104,7 @@ Epoch:		3
 License:	GPL v2
 Group:		Base/Kernel
 Source0:	https://www.kernel.org/pub/linux/kernel/v6.x/linux-%{basever}.tar.xz
-# Source0-md5:	844fae6a58c7f43af44d8cea8484b4a1
+# Source0-md5:	7a1ec5edbbdcaad287ca3c16f71abaa6
 %if "%{postver}" != ".0"
 Patch0:		https://www.kernel.org/pub/linux/kernel/v6.x/patch-%{version}.xz
 # Patch0-md5:	642e142b6cacec9e81e339af50f1868f
@@ -998,7 +998,6 @@ done
 install -d $RPM_BUILD_ROOT%{_docdir}
 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
 
-%{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
 %else
@@ -1278,7 +1277,6 @@ fi
 %{_kernelsrcdir}/scripts/*.c
 %{_kernelsrcdir}/scripts/*.h
 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
-%{_kernelsrcdir}/scripts/selinux/genheaders/*.c
 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
 %exclude %dir %{_kernelsrcdir}/security
 %exclude %dir %{_kernelsrcdir}/security/selinux
@@ -1350,9 +1348,6 @@ fi
 %exclude %{_kernelsrcdir}/scripts/*.sh
 %exclude %dir %{_kernelsrcdir}/scripts/selinux
 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
-%exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
-%exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
-%exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
diff --git a/kernel-aufs.patch b/kernel-aufs.patch
index 905cd70a..b1809051 100644
--- a/kernel-aufs.patch
+++ b/kernel-aufs.patch
@@ -2,10 +2,10 @@ SPDX-License-Identifier: GPL-2.0
 aufs6.x-rcN kbuild patch
 
 diff --git a/fs/Kconfig b/fs/Kconfig
-index aae170fc2795..d5bb584649f5 100644
+index 64d420e3c475..0873506d6b97 100644
 --- a/fs/Kconfig
 +++ b/fs/Kconfig
-@@ -341,6 +341,7 @@ source "fs/sysv/Kconfig"
+@@ -340,6 +340,7 @@ source "fs/sysv/Kconfig"
  source "fs/ufs/Kconfig"
  source "fs/erofs/Kconfig"
  source "fs/vboxsf/Kconfig"
@@ -14,10 +14,10 @@ index aae170fc2795..d5bb584649f5 100644
  endif # MISC_FILESYSTEMS
  
 diff --git a/fs/Makefile b/fs/Makefile
-index 61679fd587b7..b2539712b80d 100644
+index 15df0a923d3a..7584856689fb 100644
 --- a/fs/Makefile
 +++ b/fs/Makefile
-@@ -130,3 +130,4 @@ obj-$(CONFIG_EROFS_FS)		+= erofs/
+@@ -129,3 +129,4 @@ obj-$(CONFIG_EROFS_FS)		+= erofs/
  obj-$(CONFIG_VBOXSF_FS)		+= vboxsf/
  obj-$(CONFIG_ZONEFS_FS)		+= zonefs/
  obj-$(CONFIG_BPF_LSM)		+= bpf_fs_kfuncs.o
@@ -26,12 +26,12 @@ SPDX-License-Identifier: GPL-2.0
 aufs6.x-rcN base patch
 
 diff --git a/MAINTAINERS b/MAINTAINERS
-index 21fdaa19229a..e60ed502f8ef 100644
+index 910305c11e8a..9bae532dd667 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -3666,6 +3666,19 @@ F:	kernel/audit*
- F:	lib/*audit.c
- K:	\baudit_[a-z_0-9]\+\b
+@@ -3724,6 +3724,19 @@ S:	Supported
+ F:	Documentation/dev-tools/autofdo.rst
+ F:	scripts/Makefile.autofdo
  
 +AUFS (advanced multi layered unification filesystem) FILESYSTEM
 +M:	"J. R. Okajima" <hooanon05g at gmail.com>
@@ -50,7 +50,7 @@ index 21fdaa19229a..e60ed502f8ef 100644
  M:	Greg Kroah-Hartman <gregkh at linuxfoundation.org>
  R:	Dave Ertman <david.m.ertman at intel.com>
 diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 78a7bb28defe..479480f25a6c 100644
+index 8f6761c27c68..78dc1c0c6680 100644
 --- a/drivers/block/loop.c
 +++ b/drivers/block/loop.c
 @@ -661,6 +661,26 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
@@ -81,10 +81,10 @@ index 78a7bb28defe..479480f25a6c 100644
  
  static ssize_t loop_attr_show(struct device *dev, char *page,
 diff --git a/fs/dcache.c b/fs/dcache.c
-index 0f6b16ba30d0..1ab11cad60e8 100644
+index b4d5e9e1e43d..0a6069e6d4ca 100644
 --- a/fs/dcache.c
 +++ b/fs/dcache.c
-@@ -1223,6 +1223,9 @@ enum d_walk_ret {
+@@ -1233,6 +1233,9 @@ enum d_walk_ret {
  	D_WALK_SKIP,
  };
  
@@ -94,7 +94,7 @@ index 0f6b16ba30d0..1ab11cad60e8 100644
  /**
   * d_walk - walk the dentry tree
   * @parent:	start of walk
-@@ -1231,7 +1234,7 @@ enum d_walk_ret {
+@@ -1241,7 +1244,7 @@ enum d_walk_ret {
   *
   * The @enter() callbacks are called with d_lock held.
   */
@@ -104,10 +104,10 @@ index 0f6b16ba30d0..1ab11cad60e8 100644
  {
  	struct dentry *this_parent, *dentry;
 diff --git a/fs/fcntl.c b/fs/fcntl.c
-index 22dd9dcce7ec..460791727fd9 100644
+index 49884fa3c81d..065c3aa7a5dd 100644
 --- a/fs/fcntl.c
 +++ b/fs/fcntl.c
-@@ -37,7 +37,7 @@
+@@ -36,7 +36,7 @@
  
  #define SETFL_MASK (O_APPEND | O_NONBLOCK | O_NDELAY | O_DIRECT | O_NOATIME)
  
@@ -116,7 +116,7 @@ index 22dd9dcce7ec..460791727fd9 100644
  {
  	struct inode * inode = file_inode(filp);
  	int error = 0;
-@@ -67,6 +67,8 @@ static int setfl(int fd, struct file * filp, unsigned int arg)
+@@ -66,6 +66,8 @@ static int setfl(int fd, struct file * filp, unsigned int arg)
  
  	if (filp->f_op->check_flags)
  		error = filp->f_op->check_flags(arg);
@@ -126,7 +126,7 @@ index 22dd9dcce7ec..460791727fd9 100644
  		return error;
  
 diff --git a/fs/namespace.c b/fs/namespace.c
-index d26f5e6d2ca3..85739e2d64c0 100644
+index 23e81c2a1e3f..009c8491a01a 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
 @@ -966,6 +966,12 @@ static inline int check_mnt(struct mount *mnt)
@@ -143,7 +143,7 @@ index d26f5e6d2ca3..85739e2d64c0 100644
   * vfsmount lock must be held for write
   */
 diff --git a/fs/splice.c b/fs/splice.c
-index 06232d7e505f..b15fd6073b6d 100644
+index 2898fa1e9e63..73b9e968b28d 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
 @@ -933,7 +933,7 @@ static int warn_unsupported(struct file *file, const char *op)
@@ -156,10 +156,10 @@ index 06232d7e505f..b15fd6073b6d 100644
  {
  	if (unlikely(!out->f_op->splice_write))
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 3559446279c1..51b64b2ad82c 100644
+index 7e29433c5ecc..b74af4ae6dd4 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -1160,6 +1160,7 @@ extern void fasync_free(struct fasync_struct *);
+@@ -1162,6 +1162,7 @@ extern void fasync_free(struct fasync_struct *);
  /* can be called from interrupts */
  extern void kill_fasync(struct fasync_struct **, int, int);
  
@@ -167,7 +167,7 @@ index 3559446279c1..51b64b2ad82c 100644
  extern void __f_setown(struct file *filp, struct pid *, enum pid_type, int force);
  extern int f_setown(struct file *filp, int who, int force);
  extern void f_delown(struct file *filp);
-@@ -2082,6 +2083,7 @@ struct file_operations {
+@@ -2091,6 +2092,7 @@ struct file_operations {
  	int (*lock) (struct file *, int, struct file_lock *);
  	unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
  	int (*check_flags)(int);
@@ -176,7 +176,7 @@ index 3559446279c1..51b64b2ad82c 100644
  	ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
  	ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
 diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
-index 217f7abf2cbf..0e17b8c23f10 100644
+index 67964dc4db95..517ef3ea8c85 100644
 --- a/include/linux/lockdep.h
 +++ b/include/linux/lockdep.h
 @@ -210,6 +210,8 @@ static inline int lockdep_match_key(struct lockdep_map *lock,
@@ -222,7 +222,7 @@ index 9dec4861d09f..14583d846864 100644
 +			      loff_t *ppos, size_t len, unsigned int flags);
  #endif
 diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
-index 536bd471557f..34b378cf7a95 100644
+index 2d8ec0351ef9..25c1fb3172d9 100644
 --- a/kernel/locking/lockdep.c
 +++ b/kernel/locking/lockdep.c
 @@ -218,7 +218,7 @@ unsigned long max_lock_class_idx;
@@ -246,10 +246,10 @@ SPDX-License-Identifier: GPL-2.0
 aufs6.x-rcN mmap patch
 
 diff --git a/fs/proc/base.c b/fs/proc/base.c
-index b31283d81c52..644bd3d84cf7 100644
+index 0edf14a9840e..6114bd9c9709 100644
 --- a/fs/proc/base.c
 +++ b/fs/proc/base.c
-@@ -2270,7 +2270,7 @@ static int map_files_get_link(struct dentry *dentry, struct path *path)
+@@ -2271,7 +2271,7 @@ static int map_files_get_link(struct dentry *dentry, struct path *path)
  	rc = -ENOENT;
  	vma = find_exact_vma(mm, vm_start, vm_end);
  	if (vma && vma->vm_file) {
@@ -275,7 +275,7 @@ index c6e7ebc63756..d7ccfd909764 100644
  		ino = inode->i_ino;
  	}
 diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index e52bd96137a6..9494d69abaad 100644
+index 38a5a3e9cba2..1e187843db7b 100644
 --- a/fs/proc/task_mmu.c
 +++ b/fs/proc/task_mmu.c
 @@ -264,7 +264,8 @@ static void get_vma_name(struct vm_area_struct *vma,
@@ -298,7 +298,7 @@ index e52bd96137a6..9494d69abaad 100644
  
  		dev = inode->i_sb->s_dev;
  		ino = inode->i_ino;
-@@ -3006,7 +3008,7 @@ static int show_numa_map(struct seq_file *m, void *v)
+@@ -3008,7 +3010,7 @@ static int show_numa_map(struct seq_file *m, void *v)
  	struct proc_maps_private *proc_priv = &numa_priv->proc_maps;
  	struct vm_area_struct *vma = v;
  	struct numa_maps *md = &numa_priv->md;
@@ -324,10 +324,10 @@ index bce674533000..b12b5a75c799 100644
  		ino = inode->i_ino;
  		pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT;
 diff --git a/include/linux/mm.h b/include/linux/mm.h
-index 61fff5d34ed5..94b66987b4bb 100644
+index 338a76ce9083..cb68469c46f6 100644
 --- a/include/linux/mm.h
 +++ b/include/linux/mm.h
-@@ -2469,6 +2469,43 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,
+@@ -2480,6 +2480,43 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,
  static inline struct vm_area_struct *vma_lookup(struct mm_struct *mm,
  						unsigned long addr);
  
@@ -372,10 +372,10 @@ index 61fff5d34ed5..94b66987b4bb 100644
  		void *buf, int len, unsigned int gup_flags);
  extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
 diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
-index 6e3bdf8e38bc..c70247dc7102 100644
+index 7361a8f3ab68..c7a9e7ea36f7 100644
 --- a/include/linux/mm_types.h
 +++ b/include/linux/mm_types.h
-@@ -572,6 +572,9 @@ struct vm_region {
+@@ -554,6 +554,9 @@ struct vm_region {
  	unsigned long	vm_top;		/* region allocated to here */
  	unsigned long	vm_pgoff;	/* the offset in vm_file corresponding to vm_start */
  	struct file	*vm_file;	/* the backing file or NULL */
@@ -385,7 +385,7 @@ index 6e3bdf8e38bc..c70247dc7102 100644
  
  	int		vm_usage;	/* region usage count (access under nommu_region_sem) */
  	bool		vm_icache_flushed : 1; /* true if the icache has been flushed for
-@@ -747,6 +750,9 @@ struct vm_area_struct {
+@@ -729,6 +732,9 @@ struct vm_area_struct {
  	unsigned long vm_pgoff;		/* Offset (within vm_file) in PAGE_SIZE
  					   units */
  	struct file * vm_file;		/* File we map to (can be NULL). */
@@ -396,10 +396,10 @@ index 6e3bdf8e38bc..c70247dc7102 100644
  
  #ifdef CONFIG_ANON_VMA_NAME
 diff --git a/kernel/fork.c b/kernel/fork.c
-index 22f43721d031..03abd72b3353 100644
+index 9b301180fd41..d843da822c9e 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
-@@ -730,7 +730,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
+@@ -732,7 +732,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
  		if (file) {
  			struct address_space *mapping = file->f_mapping;
  
@@ -409,19 +409,19 @@ index 22f43721d031..03abd72b3353 100644
  			if (vma_is_shared_maywrite(tmp))
  				mapping_allow_writable(mapping);
 diff --git a/mm/Makefile b/mm/Makefile
-index d5639b036166..bb57f616f032 100644
+index dba52bb0da8a..cb956783721a 100644
 --- a/mm/Makefile
 +++ b/mm/Makefile
-@@ -145,3 +145,4 @@ obj-$(CONFIG_GENERIC_IOREMAP) += ioremap.o
+@@ -146,3 +146,4 @@ obj-$(CONFIG_GENERIC_IOREMAP) += ioremap.o
  obj-$(CONFIG_SHRINKER_DEBUG) += shrinker_debug.o
  obj-$(CONFIG_EXECMEM) += execmem.o
  obj-$(CONFIG_TMPFS_QUOTA) += shmem_quota.o
 +obj-y += prfile.o
 diff --git a/mm/filemap.c b/mm/filemap.c
-index 56fa431c52af..d55fe4e7bcfd 100644
+index f61cf51c2238..124d00dd1a35 100644
 --- a/mm/filemap.c
 +++ b/mm/filemap.c
-@@ -3707,7 +3707,7 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
+@@ -3708,7 +3708,7 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
  	vm_fault_t ret = VM_FAULT_LOCKED;
  
  	sb_start_pagefault(mapping->host->i_sb);
@@ -431,34 +431,27 @@ index 56fa431c52af..d55fe4e7bcfd 100644
  	if (folio->mapping != mapping) {
  		folio_unlock(folio);
 diff --git a/mm/mmap.c b/mm/mmap.c
-index 79d541f1502b..50430bfa4d82 100644
+index d32b7e701058..4b986ceac077 100644
 --- a/mm/mmap.c
 +++ b/mm/mmap.c
-@@ -1484,7 +1484,7 @@ static unsigned long __mmap_region(struct file *file, unsigned long addr,
- 				 * and cause general protection fault
- 				 * ultimately.
- 				 */
--				fput(vma->vm_file);
-+				vma_fput(vma);
- 				vm_area_free(vma);
- 				vma = merge;
- 				/* Update vm_flags to pick up the change. */
-@@ -1654,6 +1654,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -1399,6 +1399,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
  	unsigned long ret = -EINVAL;
  	struct file *file;
  	vm_flags_t vm_flags;
-+	struct file *prfile;
++	struct file *prfile = NULL; /* aufs */
  
  	pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/mm/remap_file_pages.rst.\n",
  		     current->comm, current->pid);
-@@ -1696,14 +1697,16 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -1441,14 +1442,18 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
  
  	/* Save vm_flags used to calculate prot and flags, and recheck later. */
  	vm_flags = vma->vm_flags;
 -	file = get_file(vma->vm_file);
 +	vma_get_file(vma);
 +	file = vma->vm_file;
++#if 1 /* IS_ENABLED(CONFIG_AUFS_FS) */
 +	prfile = vma->vm_prfile;
++#endif
  
  	mmap_read_unlock(mm);
  
@@ -470,7 +463,7 @@ index 79d541f1502b..50430bfa4d82 100644
  		return ret;
  	}
  
-@@ -1711,7 +1714,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -1456,7 +1461,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
  
  	/* OK security check passed, take write lock + let it rip. */
  	if (mmap_write_lock_killable(mm)) {
@@ -479,10 +472,11 @@ index 79d541f1502b..50430bfa4d82 100644
  		return -EINTR;
  	}
  
-@@ -1753,9 +1756,25 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -1498,9 +1503,27 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
  
  	ret = do_mmap(vma->vm_file, start, size,
  			prot, flags, 0, pgoff, &populate, NULL);
++#if 1 /* IS_ENABLED(CONFIG_AUFS_FS) */
 +	if (!IS_ERR_VALUE(ret) && file && prfile) {
 +		struct vm_area_struct *new_vma;
 +
@@ -492,6 +486,7 @@ index 79d541f1502b..50430bfa4d82 100644
 +		if (prfile)
 +			get_file(prfile);
 +	}
++#endif
 +
  out:
  	mmap_write_unlock(mm);
@@ -506,7 +501,7 @@ index 79d541f1502b..50430bfa4d82 100644
  		mm_populate(ret, populate);
  	if (!IS_ERR_VALUE(ret))
 diff --git a/mm/nommu.c b/mm/nommu.c
-index e9b5f527ab5b..0f069bf29964 100644
+index 9cb6e99215e2..5add36afa978 100644
 --- a/mm/nommu.c
 +++ b/mm/nommu.c
 @@ -512,7 +512,7 @@ static void __put_nommu_region(struct vm_region *region)
@@ -642,10 +637,10 @@ index 000000000000..8f820a235364
 +}
 +#endif /* !CONFIG_MMU */
 diff --git a/mm/vma.c b/mm/vma.c
-index 7621384d64cf..3bb41fe6ac48 100644
+index bb2119e5a0d0..ab30ebc7f55d 100644
 --- a/mm/vma.c
 +++ b/mm/vma.c
-@@ -248,7 +248,7 @@ static void vma_complete(struct vma_prepare *vp, struct vma_iterator *vmi,
+@@ -299,7 +299,7 @@ static void vma_complete(struct vma_prepare *vp, struct vma_iterator *vmi,
  		if (vp->file) {
  			uprobe_munmap(vp->remove, vp->remove->vm_start,
  				      vp->remove->vm_end);
@@ -654,7 +649,7 @@ index 7621384d64cf..3bb41fe6ac48 100644
  		}
  		if (vp->remove->anon_vma)
  			anon_vma_merge(vp->vma, vp->remove);
-@@ -328,7 +328,7 @@ void remove_vma(struct vm_area_struct *vma, bool unreachable)
+@@ -379,7 +379,7 @@ void remove_vma(struct vm_area_struct *vma, bool unreachable)
  	might_sleep();
  	vma_close(vma);
  	if (vma->vm_file)
@@ -663,7 +658,7 @@ index 7621384d64cf..3bb41fe6ac48 100644
  	mpol_put(vma_policy(vma));
  	if (unreachable)
  		__vm_area_free(vma);
-@@ -405,7 +405,7 @@ static int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma,
+@@ -456,7 +456,7 @@ static int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma,
  		goto out_free_mpol;
  
  	if (new->vm_file)
@@ -672,7 +667,7 @@ index 7621384d64cf..3bb41fe6ac48 100644
  
  	if (new->vm_ops && new->vm_ops->open)
  		new->vm_ops->open(new);
-@@ -1671,7 +1671,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -1762,7 +1762,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
  		if (anon_vma_clone(new_vma, vma))
  			goto out_free_mempol;
  		if (new_vma->vm_file)
@@ -681,7 +676,7 @@ index 7621384d64cf..3bb41fe6ac48 100644
  		if (new_vma->vm_ops && new_vma->vm_ops->open)
  			new_vma->vm_ops->open(new_vma);
  		if (vma_link(mm, new_vma))
-@@ -1684,7 +1684,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -1775,7 +1775,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
  	vma_close(new_vma);
  
  	if (new_vma->vm_file)
@@ -694,10 +689,10 @@ SPDX-License-Identifier: GPL-2.0
 aufs6.x-rcN standalone patch
 
 diff --git a/fs/dcache.c b/fs/dcache.c
-index 1ab11cad60e8..3a01c42c6639 100644
+index 0a6069e6d4ca..7d0493ea306d 100644
 --- a/fs/dcache.c
 +++ b/fs/dcache.c
-@@ -1333,6 +1333,7 @@ void d_walk(struct dentry *parent, void *data,
+@@ -1343,6 +1343,7 @@ void d_walk(struct dentry *parent, void *data,
  	seq = 1;
  	goto again;
  }
@@ -705,7 +700,7 @@ index 1ab11cad60e8..3a01c42c6639 100644
  
  struct check_mount {
  	struct vfsmount *mnt;
-@@ -2899,6 +2900,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2)
+@@ -2911,6 +2912,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2)
  
  	write_sequnlock(&rename_lock);
  }
@@ -714,7 +709,7 @@ index 1ab11cad60e8..3a01c42c6639 100644
  /**
   * d_ancestor - search for an ancestor
 diff --git a/fs/exec.c b/fs/exec.c
-index 6c53920795c2..22e10087e34f 100644
+index 98cb7ba9983c..fe9c0e99ab60 100644
 --- a/fs/exec.c
 +++ b/fs/exec.c
 @@ -114,6 +114,7 @@ bool path_noexec(const struct path *path)
@@ -726,10 +721,10 @@ index 6c53920795c2..22e10087e34f 100644
  #ifdef CONFIG_USELIB
  /*
 diff --git a/fs/fcntl.c b/fs/fcntl.c
-index 460791727fd9..75ab59a3df36 100644
+index 065c3aa7a5dd..efe86e98015e 100644
 --- a/fs/fcntl.c
 +++ b/fs/fcntl.c
-@@ -90,6 +90,7 @@ int setfl(int fd, struct file * filp, unsigned int arg)
+@@ -89,6 +89,7 @@ int setfl(int fd, struct file * filp, unsigned int arg)
   out:
  	return error;
  }
@@ -738,10 +733,10 @@ index 460791727fd9..75ab59a3df36 100644
  /*
   * Allocate an file->f_owner struct if it doesn't exist, handling racing
 diff --git a/fs/file_table.c b/fs/file_table.c
-index eed5ffad9997..2f6bead42478 100644
+index 976736be47cb..4ba889801c2f 100644
 --- a/fs/file_table.c
 +++ b/fs/file_table.c
-@@ -228,6 +228,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred)
+@@ -247,6 +247,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred)
  	}
  	return ERR_PTR(-ENFILE);
  }
@@ -750,7 +745,7 @@ index eed5ffad9997..2f6bead42478 100644
  /*
   * Variant of alloc_empty_file() that doesn't check and modify nr_files.
 diff --git a/fs/namespace.c b/fs/namespace.c
-index 85739e2d64c0..8aa96de6c151 100644
+index 009c8491a01a..770fe1d2ca2d 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
 @@ -971,6 +971,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
@@ -798,7 +793,7 @@ index 18446b7b0d49..09138e0b8a6a 100644
  /*
   * Drop a reference to a group.  Free it if it's through.
 diff --git a/fs/open.c b/fs/open.c
-index 5da4df2f9b18..6024098fc644 100644
+index e6911101fe71..fa5a7a1e4a10 100644
 --- a/fs/open.c
 +++ b/fs/open.c
 @@ -66,6 +66,7 @@ int do_truncate(struct mnt_idmap *idmap, struct dentry *dentry,
@@ -810,10 +805,10 @@ index 5da4df2f9b18..6024098fc644 100644
  long vfs_truncate(const struct path *path, loff_t length)
  {
 diff --git a/fs/read_write.c b/fs/read_write.c
-index 64dc24afdb3a..ec1fd6aab175 100644
+index a6133241dfb8..5e095d512e35 100644
 --- a/fs/read_write.c
 +++ b/fs/read_write.c
-@@ -576,6 +576,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
+@@ -572,6 +572,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
  	inc_syscr(current);
  	return ret;
  }
@@ -821,7 +816,7 @@ index 64dc24afdb3a..ec1fd6aab175 100644
  
  static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
  {
-@@ -691,6 +692,7 @@ ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_
+@@ -687,6 +688,7 @@ ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_
  	file_end_write(file);
  	return ret;
  }
@@ -830,7 +825,7 @@ index 64dc24afdb3a..ec1fd6aab175 100644
  /* file_ppos returns &file->f_pos or NULL if file is stream */
  static inline loff_t *file_ppos(struct file *file)
 diff --git a/fs/splice.c b/fs/splice.c
-index b15fd6073b6d..0fdb86c3813e 100644
+index 73b9e968b28d..7ace2e239f7a 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
 @@ -940,6 +940,7 @@ ssize_t do_splice_from(struct pipe_inode_info *pipe, struct file *out,
@@ -842,7 +837,7 @@ index b15fd6073b6d..0fdb86c3813e 100644
  /*
   * Indicate to the caller that there was a premature EOF when reading from the
 diff --git a/fs/xattr.c b/fs/xattr.c
-index 05ec7e7d9e87..e07ffa052dfb 100644
+index 02bee149ad96..71fb7d49a9c2 100644
 --- a/fs/xattr.c
 +++ b/fs/xattr.c
 @@ -405,6 +405,7 @@ vfs_getxattr_alloc(struct mnt_idmap *idmap, struct dentry *dentry,
@@ -854,7 +849,7 @@ index 05ec7e7d9e87..e07ffa052dfb 100644
  ssize_t
  __vfs_getxattr(struct dentry *dentry, struct inode *inode, const char *name,
 diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
-index 34b378cf7a95..df6a751298b3 100644
+index 25c1fb3172d9..312d8733e390 100644
 --- a/kernel/locking/lockdep.c
 +++ b/kernel/locking/lockdep.c
 @@ -239,6 +239,7 @@ inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock)
@@ -875,10 +870,10 @@ index c969f1f26be5..68eb672f425d 100644
  }
 +EXPORT_SYMBOL_GPL(task_work_run);
 diff --git a/security/security.c b/security/security.c
-index c5981e558bc2..045dd716e340 100644
+index 09664e09fec9..f4eee251c890 100644
 --- a/security/security.c
 +++ b/security/security.c
-@@ -1944,6 +1944,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry)
+@@ -1943,6 +1943,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry)
  		return 0;
  	return call_int_hook(path_rmdir, dir, dentry);
  }
@@ -886,7 +881,7 @@ index c5981e558bc2..045dd716e340 100644
  
  /**
   * security_path_unlink() - Check if removing a hard link is allowed
-@@ -1979,6 +1980,7 @@ int security_path_symlink(const struct path *dir, struct dentry *dentry,
+@@ -1978,6 +1979,7 @@ int security_path_symlink(const struct path *dir, struct dentry *dentry,
  		return 0;
  	return call_int_hook(path_symlink, dir, dentry, old_name);
  }
@@ -894,7 +889,7 @@ index c5981e558bc2..045dd716e340 100644
  
  /**
   * security_path_link - Check if creating a hard link is allowed
-@@ -1997,6 +1999,7 @@ int security_path_link(struct dentry *old_dentry, const struct path *new_dir,
+@@ -1996,6 +1998,7 @@ int security_path_link(struct dentry *old_dentry, const struct path *new_dir,
  		return 0;
  	return call_int_hook(path_link, old_dentry, new_dir, new_dentry);
  }
@@ -902,7 +897,7 @@ index c5981e558bc2..045dd716e340 100644
  
  /**
   * security_path_rename() - Check if renaming a file is allowed
-@@ -2058,6 +2061,7 @@ int security_path_chmod(const struct path *path, umode_t mode)
+@@ -2057,6 +2060,7 @@ int security_path_chmod(const struct path *path, umode_t mode)
  		return 0;
  	return call_int_hook(path_chmod, path, mode);
  }
@@ -910,7 +905,7 @@ index c5981e558bc2..045dd716e340 100644
  
  /**
   * security_path_chown() - Check if changing the file's owner/group is allowed
-@@ -2075,6 +2079,7 @@ int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
+@@ -2074,6 +2078,7 @@ int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
  		return 0;
  	return call_int_hook(path_chown, path, uid, gid);
  }
@@ -918,7 +913,7 @@ index c5981e558bc2..045dd716e340 100644
  
  /**
   * security_path_chroot() - Check if changing the root directory is allowed
-@@ -2319,6 +2324,7 @@ int security_inode_permission(struct inode *inode, int mask)
+@@ -2318,6 +2323,7 @@ int security_inode_permission(struct inode *inode, int mask)
  		return 0;
  	return call_int_hook(inode_permission, inode, mask);
  }
@@ -926,7 +921,7 @@ index c5981e558bc2..045dd716e340 100644
  
  /**
   * security_inode_setattr() - Check if setting file attributes is allowed
-@@ -2840,6 +2846,7 @@ int security_file_permission(struct file *file, int mask)
+@@ -2838,6 +2844,7 @@ int security_file_permission(struct file *file, int mask)
  {
  	return call_int_hook(file_permission, file, mask);
  }
@@ -934,7 +929,7 @@ index c5981e558bc2..045dd716e340 100644
  
  /**
   * security_file_alloc() - Allocate and init a file's LSM blob
-@@ -3144,6 +3151,7 @@ int security_file_truncate(struct file *file)
+@@ -3136,6 +3143,7 @@ int security_file_truncate(struct file *file)
  {
  	return call_int_hook(file_truncate, file);
  }
@@ -2925,7 +2920,7 @@ diff -urN /usr/share/empty/fs/aufs/aufs.h linux/fs/aufs/aufs.h
 +#endif /* __AUFS_H__ */
 diff -urN /usr/share/empty/fs/aufs/branch.c linux/fs/aufs/branch.c
 --- /usr/share/empty/fs/aufs/branch.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/branch.c	2024-11-10 01:09:28.603051194 +0100
++++ linux/fs/aufs/branch.c	2025-01-20 14:58:10.216652667 +0100
 @@ -0,0 +1,1427 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -3172,7 +3167,7 @@ diff -urN /usr/share/empty/fs/aufs/branch.c linux/fs/aufs/branch.c
 +
 +	inode = d_inode(add->path.dentry);
 +	err = -ENOENT;
-+	if (unlikely(!inode->i_nlink)) {
++	if (unlikely(!vfsub_inode_nlink(inode, AU_I_UNKNOWN))) {
 +		pr_err("no existence %s\n", add->pathname);
 +		goto out;
 +	}
@@ -3422,14 +3417,14 @@ diff -urN /usr/share/empty/fs/aufs/branch.c linux/fs/aufs/branch.c
 +	bbot = au_sbbot(sb);
 +	amount = bbot + 1 - bindex;
 +	h_dentry = au_br_dentry(br);
-+	au_sbilist_lock();
++	au_sbilist_write_lock();
 +	au_br_do_add_brp(au_sbi(sb), bindex, br, bbot, amount);
 +	au_br_do_add_hdp(au_di(root), bindex, bbot, amount);
 +	au_br_do_add_hip(au_ii(root_inode), bindex, bbot, amount);
 +	au_set_h_dptr(root, bindex, dget(h_dentry));
 +	h_inode = d_inode(h_dentry);
 +	au_set_h_iptr(root_inode, bindex, au_igrab(h_inode), /*flags*/0);
-+	au_sbilist_unlock();
++	au_sbilist_write_unlock();
 +}
 +
 +int au_br_add(struct super_block *sb, struct au_opt_add *add, int remount)
@@ -3907,11 +3902,11 @@ diff -urN /usr/share/empty/fs/aufs/branch.c linux/fs/aufs/branch.c
 +	h_inode = au_igrab(hinode->hi_inode);
 +	au_hiput(hinode);
 +
-+	au_sbilist_lock();
++	au_sbilist_write_lock();
 +	au_br_do_del_brp(sbinfo, bindex, bbot);
 +	au_br_do_del_hdp(au_di(root), bindex, bbot);
 +	au_br_do_del_hip(au_ii(inode), bindex, bbot);
-+	au_sbilist_unlock();
++	au_sbilist_write_unlock();
 +
 +	/* ignore an error */
 +	au_dr_br_fin(sb, br); /* always, regardless the mount option */
@@ -4779,8 +4774,8 @@ diff -urN /usr/share/empty/fs/aufs/conf.mk linux/fs/aufs/conf.mk
 +-include ${srctree}/${src}/conf_priv.mk
 diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 --- /usr/share/empty/fs/aufs/cpup.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/cpup.c	2024-11-18 12:46:45.633029891 +0100
-@@ -0,0 +1,1458 @@
++++ linux/fs/aufs/cpup.c	2025-01-20 14:58:10.216652667 +0100
+@@ -0,0 +1,1459 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -4852,7 +4847,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +	 * todo: O_TMPFILE+linkat(AT_SYMLINK_FOLLOW) bypassing aufs may cause
 +	 *	 the incorrect link count.
 +	 */
-+	au_set_nlink(inode, h_inode->i_nlink);
++	vfsub_set_nlink(inode, vfsub_inode_nlink(h_inode, AU_I_BRANCH));
 +
 +	/*
 +	 * fewer nlink makes find(1) noisy, but larger nlink doesn't.
@@ -4928,7 +4923,8 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +	attr.ia_atime = dt->dt_atime;
 +	attr.ia_mtime = dt->dt_mtime;
 +	attr.ia_valid = ATTR_FORCE | ATTR_MTIME | ATTR_MTIME_SET
-+		| ATTR_ATIME | ATTR_ATIME_SET;
++		| ATTR_ATIME | ATTR_ATIME_SET
++		| ATTR_CTIME;
 +
 +	/* no delegation since this is a directory */
 +	err = vfsub_notify_change(&dt->dt_h_path, &attr, /*delegated*/NULL);
@@ -4964,7 +4960,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +	h_idst = d_inode(h_path.dentry);
 +	h_isrc = d_inode(h_src->dentry);
 +	ia.ia_valid = ATTR_FORCE | ATTR_UID | ATTR_GID
-+		| ATTR_ATIME | ATTR_MTIME
++		| ATTR_ATIME | ATTR_MTIME | ATTR_CTIME
 +		| ATTR_ATIME_SET | ATTR_MTIME_SET;
 +	if (h_src_attr && h_src_attr->valid) {
 +		h_st = &h_src_attr->st;
@@ -5499,7 +5495,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +	if (!au_opt_test(mnt_flags, UDBA_NONE)
 +	    && !isdir
 +	    && au_opt_test(mnt_flags, XINO)
-+	    && (h_inode->i_nlink == 1
++	    && (vfsub_inode_nlink(h_inode, AU_I_BRANCH) == 1
 +		|| (h_inode->i_state & I_LINKABLE))
 +	    /* todo: unnecessary? */
 +	    /* && d_inode(cpg->dentry)->i_nlink == 1 */
@@ -5626,7 +5622,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +			goto out_parent;
 +		}
 +
-+		if (dst_inode->i_nlink) {
++		if (vfsub_inode_nlink(dst_inode, AU_I_BRANCH)) {
 +			const int do_dt = au_ftest_cpup(cpg->flags, DTIME);
 +
 +			h_src = au_plink_lkup(inode, cpg->bdst);
@@ -5711,7 +5707,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +
 +	src_inode = d_inode(h_src);
 +	if (!isdir
-+	    && (src_inode->i_nlink > 1
++	    && (vfsub_inode_nlink(src_inode, AU_I_BRANCH) > 1
 +		|| src_inode->i_state & I_LINKABLE)
 +	    && plink)
 +		au_plink_append(inode, cpg->bdst, h_dst);
@@ -6077,7 +6073,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +	h_dir = au_igrab(au_h_iptr(dir, bdst));
 +	h_tmpdir = h_dir;
 +	pin_orig = NULL;
-+	if (!h_dir->i_nlink) {
++	if (!vfsub_inode_nlink(h_dir, AU_I_BRANCH)) {
 +		wbr = au_sbr(dentry->d_sb, bdst)->br_wbr;
 +		h_orph = wbr->wbr_orph;
 +
@@ -7162,8 +7158,8 @@ diff -urN /usr/share/empty/fs/aufs/dcsub.c linux/fs/aufs/dcsub.c
 +}
 diff -urN /usr/share/empty/fs/aufs/dcsub.h linux/fs/aufs/dcsub.h
 --- /usr/share/empty/fs/aufs/dcsub.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dcsub.h	2022-11-05 23:02:18.962555950 +0100
-@@ -0,0 +1,137 @@
++++ linux/fs/aufs/dcsub.h	2025-01-20 14:58:10.216652667 +0100
+@@ -0,0 +1,139 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -7193,6 +7189,7 @@ diff -urN /usr/share/empty/fs/aufs/dcsub.h linux/fs/aufs/dcsub.h
 +
 +#include <linux/dcache.h>
 +#include <linux/fs.h>
++#include "vfsub.h"
 +
 +struct au_dpage {
 +	int ndentry;
@@ -7233,7 +7230,8 @@ diff -urN /usr/share/empty/fs/aufs/dcsub.h linux/fs/aufs/dcsub.h
 +	err = 0;
 +	if (unlikely(d_unhashed(d)
 +		     || d_is_negative(d)
-+		     || !inode->i_nlink))
++		     /* to support both aufs and branches */
++		     || !vfsub_inode_nlink(inode, AU_I_UNKNOWN)))
 +		err = -ENOENT;
 +	return err;
 +}
@@ -7263,7 +7261,7 @@ diff -urN /usr/share/empty/fs/aufs/dcsub.h linux/fs/aufs/dcsub.h
 +		inode = d_inode(d);
 +		if (unlikely(d_unlinked(d)
 +			     || d_is_negative(d)
-+			     || !inode->i_nlink))
++			     || !vfsub_inode_nlink(inode, AU_I_UNKNOWN)))
 +			err = -ENOENT;
 +	}
 +	return err;
@@ -7303,7 +7301,7 @@ diff -urN /usr/share/empty/fs/aufs/dcsub.h linux/fs/aufs/dcsub.h
 +#endif /* __AUFS_DCSUB_H__ */
 diff -urN /usr/share/empty/fs/aufs/debug.c linux/fs/aufs/debug.c
 --- /usr/share/empty/fs/aufs/debug.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/debug.c	2024-11-18 12:46:45.633029891 +0100
++++ linux/fs/aufs/debug.c	2025-01-20 14:58:10.216652667 +0100
 @@ -0,0 +1,448 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -7435,7 +7433,7 @@ diff -urN /usr/share/empty/fs/aufs/debug.c linux/fs/aufs/debug.c
 +	}
 +
 +	ctime = inode_get_ctime(inode);
-+	dpri("i%d: %p, i%lu, %s, cnt %d, nl %u, 0%o, sz %llu, blk %llu,"
++	dpri("i%d: %p, i%lu, %s, cnt %d, nl %u?, 0%o, sz %llu, blk %llu,"
 +	     " acl %p, def_acl %p,"
 +	     " hn %d, ct %lld, np %lu, st 0x%x, f 0x%x, v %llu, g %x%s%.*s\n",
 +	     bindex, inode,
@@ -7985,8 +7983,8 @@ diff -urN /usr/share/empty/fs/aufs/debug.h linux/fs/aufs/debug.h
 +#endif /* __AUFS_DEBUG_H__ */
 diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 --- /usr/share/empty/fs/aufs/dentry.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dentry.c	2024-10-15 11:25:59.889776980 +0200
-@@ -0,0 +1,1175 @@
++++ linux/fs/aufs/dentry.c	2025-01-20 14:58:10.216652667 +0100
+@@ -0,0 +1,1176 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -8495,10 +8493,11 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +	if (d_really_is_positive(dentry)) {
 +		inode = d_inode(dentry);
 +		if (!d_is_dir(dentry)) {
-+			if (inode->i_nlink && !d_unhashed(dentry))
-+				drop_nlink(inode);
++			if (vfsub_inode_nlink(inode, AU_I_AUFS)
++			    && !d_unhashed(dentry))
++				vfsub_drop_nlink(inode);
 +		} else {
-+			clear_nlink(inode);
++			vfsub_clear_nlink(inode);
 +			/* stop next lookup */
 +			inode->i_flags |= S_DEAD;
 +		}
@@ -8878,7 +8877,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +	 */
 +	if (do_udba && inode) {
 +		mode = (inode->i_mode & S_IFMT);
-+		plus = (inode->i_nlink > 0);
++		plus = (vfsub_inode_nlink(inode, AU_I_AUFS) > 0);
 +		ibs = au_ibtop(inode);
 +		ibe = au_ibbot(inode);
 +	}
@@ -8946,7 +8945,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +		h_cached_inode = h_inode;
 +		if (h_inode && bindex != bwh) {
 +			h_mode = (h_inode->i_mode & S_IFMT);
-+			h_plus = (h_inode->i_nlink > 0);
++			h_plus = (vfsub_inode_nlink(h_inode, AU_I_BRANCH) > 0);
 +		}
 +		if (inode && ibs <= bindex && bindex <= ibe)
 +			h_cached_inode = au_h_iptr(inode, bindex);
@@ -9102,7 +9101,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +	if (!(flags & (LOOKUP_OPEN | LOOKUP_EMPTY))
 +	    && inode
 +	    && !(inode->i_state && I_LINKABLE)
-+	    && (IS_DEADDIR(inode) || !inode->i_nlink)) {
++	    && (IS_DEADDIR(inode) || !vfsub_inode_nlink(inode, AU_I_AUFS))) {
 +		AuTraceErr(err);
 +		goto out_inval;
 +	}
@@ -9997,7 +9996,7 @@ diff -urN /usr/share/empty/fs/aufs/dinfo.c linux/fs/aufs/dinfo.c
 +}
 diff -urN /usr/share/empty/fs/aufs/dir.c linux/fs/aufs/dir.c
 --- /usr/share/empty/fs/aufs/dir.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dir.c	2024-11-18 12:46:45.636363225 +0100
++++ linux/fs/aufs/dir.c	2025-01-20 14:58:10.216652667 +0100
 @@ -0,0 +1,765 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -10027,32 +10026,32 @@ diff -urN /usr/share/empty/fs/aufs/dir.c linux/fs/aufs/dir.c
 +
 +void au_add_nlink(struct inode *dir, struct inode *h_dir)
 +{
-+	unsigned int nlink;
++	unsigned int nlink, h_nlink;
 +
 +	AuDebugOn(!S_ISDIR(dir->i_mode) || !S_ISDIR(h_dir->i_mode));
 +
-+	nlink = dir->i_nlink;
-+	nlink += h_dir->i_nlink - 2;
-+	if (h_dir->i_nlink < 2)
++	nlink = vfsub_inode_nlink(dir, AU_I_AUFS);
++	h_nlink = vfsub_inode_nlink(h_dir, AU_I_BRANCH);
++	nlink += h_nlink - 2;
++	if (h_nlink < 2)
 +		nlink += 2;
-+	smp_mb(); /* for i_nlink */
 +	/* 0 can happen in revaliding */
-+	au_set_nlink(dir, nlink);
++	vfsub_set_nlink(dir, nlink);
 +}
 +
 +void au_sub_nlink(struct inode *dir, struct inode *h_dir)
 +{
-+	unsigned int nlink;
++	unsigned int nlink, h_nlink;
 +
 +	AuDebugOn(!S_ISDIR(dir->i_mode) || !S_ISDIR(h_dir->i_mode));
 +
-+	nlink = dir->i_nlink;
-+	nlink -= h_dir->i_nlink - 2;
-+	if (h_dir->i_nlink < 2)
++	nlink = vfsub_inode_nlink(dir, AU_I_AUFS);
++	h_nlink = vfsub_inode_nlink(h_dir, AU_I_BRANCH);
++	nlink -= h_nlink - 2;
++	if (h_nlink < 2)
 +		nlink -= 2;
-+	smp_mb(); /* for i_nlink */
 +	/* nlink == 0 means the branch-fs is broken */
-+	au_set_nlink(dir, nlink);
++	vfsub_set_nlink(dir, nlink);
 +}
 +
 +loff_t au_dir_size(struct file *file, struct dentry *dentry)
@@ -10147,7 +10146,7 @@ diff -urN /usr/share/empty/fs/aufs/dir.c linux/fs/aufs/dir.c
 +	au_hn_inode_lock_nested(hdir, AuLsc_I_PARENT);
 +	h_dir = au_h_iptr(dir, btop);
 +	ts = inode_get_mtime(h_dir);
-+	if (h_dir->i_nlink
++	if (vfsub_inode_nlink(h_dir, AU_I_BRANCH)
 +	    && timespec64_compare(&ts, &dt.dt_mtime) < 0) {
 +		dt.dt_h_path = h_path;
 +		au_dtime_revert(&dt);
@@ -10601,7 +10600,7 @@ diff -urN /usr/share/empty/fs/aufs/dir.c linux/fs/aufs/dir.c
 +
 +	err = 0;
 +	if (!au_opt_test(au_mntflags(dentry->d_sb), UDBA_NONE)
-+	    && !file_inode(h_file)->i_nlink)
++	    && !vfsub_inode_nlink(file_inode(h_file), AU_I_BRANCH))
 +		goto out_put;
 +
 +	do {
@@ -14097,7 +14096,7 @@ diff -urN /usr/share/empty/fs/aufs/fhsm.c linux/fs/aufs/fhsm.c
 +}
 diff -urN /usr/share/empty/fs/aufs/file.c linux/fs/aufs/file.c
 --- /usr/share/empty/fs/aufs/file.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/file.c	2024-11-18 12:46:45.636363225 +0100
++++ linux/fs/aufs/file.c	2025-01-20 14:58:10.216652667 +0100
 @@ -0,0 +1,858 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -14499,7 +14498,7 @@ diff -urN /usr/share/empty/fs/aufs/file.c linux/fs/aufs/file.c
 +		err = au_reopen_wh(file, bcpup, hi_wh);
 +
 +	if (!err
-+	    && (inode->i_nlink > 1
++	    && (vfsub_inode_nlink(inode, AU_I_AUFS) > 1
 +		|| (inode->i_state & I_LINKABLE))
 +	    && au_opt_test(au_mntflags(cpg.dentry->d_sb), PLINK))
 +		au_plink_append(inode, bcpup, au_h_dptr(cpg.dentry, bcpup));
@@ -16242,8 +16241,8 @@ diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.c
 +};
 diff -urN /usr/share/empty/fs/aufs/fsctx.c linux/fs/aufs/fsctx.c
 --- /usr/share/empty/fs/aufs/fsctx.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/fsctx.c	2024-11-18 12:46:45.636363225 +0100
-@@ -0,0 +1,1243 @@
++++ linux/fs/aufs/fsctx.c	2025-01-20 14:58:10.219986000 +0100
+@@ -0,0 +1,1244 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2022 Junjiro R. Okajima
@@ -16341,7 +16340,8 @@ diff -urN /usr/share/empty/fs/aufs/fsctx.c linux/fs/aufs/fsctx.c
 +out:
 +	inode_unlock(inode);
 +	err = cvt_err(err);
-+	AuTraceErr(err);
++	if (unlikely(err))
++		pr_err("remount err %d\n", err);
 +
 +	return err;
 +}
@@ -18339,7 +18339,7 @@ diff -urN /usr/share/empty/fs/aufs/hfsplus.c linux/fs/aufs/hfsplus.c
 +}
 diff -urN /usr/share/empty/fs/aufs/hnotify.c linux/fs/aufs/hnotify.c
 --- /usr/share/empty/fs/aufs/hnotify.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/hnotify.c	2024-11-10 01:09:28.606384527 +0100
++++ linux/fs/aufs/hnotify.c	2025-01-20 14:58:10.219986000 +0100
 @@ -0,0 +1,715 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -18662,7 +18662,7 @@ diff -urN /usr/share/empty/fs/aufs/hnotify.c linux/fs/aufs/hnotify.c
 +	    && a->inode
 +	    && a->h_inode) {
 +		inode_lock_shared_nested(a->h_inode, AuLsc_I_CHILD);
-+		if (!a->h_inode->i_nlink
++		if (!vfsub_inode_nlink(a->h_inode, AU_I_BRANCH)
 +		    && !(a->h_inode->i_state & I_LINKABLE))
 +			hn_xino(a->inode, a->h_inode); /* ignore this error */
 +		inode_unlock_shared(a->h_inode);
@@ -18976,7 +18976,7 @@ diff -urN /usr/share/empty/fs/aufs/hnotify.c linux/fs/aufs/hnotify.c
 +
 +	/* NFS fires the event for silly-renamed one from kworker */
 +	f = 0;
-+	if (!dir->i_nlink
++	if (!vfsub_inode_nlink(dir, AU_I_AUFS)
 +	    || (au_test_nfs(h_dir->i_sb) && (mask & FS_DELETE)))
 +		f = AuWkq_NEST;
 +	err = au_wkq_nowait(au_hn_bh, args, dir->i_sb, f);
@@ -19058,8 +19058,8 @@ diff -urN /usr/share/empty/fs/aufs/hnotify.c linux/fs/aufs/hnotify.c
 +}
 diff -urN /usr/share/empty/fs/aufs/iinfo.c linux/fs/aufs/iinfo.c
 --- /usr/share/empty/fs/aufs/iinfo.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/iinfo.c	2022-11-05 23:02:18.965889284 +0100
-@@ -0,0 +1,286 @@
++++ linux/fs/aufs/iinfo.c	2025-01-20 14:58:10.219986000 +0100
+@@ -0,0 +1,287 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -19209,7 +19209,7 @@ diff -urN /usr/share/empty/fs/aufs/iinfo.c linux/fs/aufs/iinfo.c
 +
 +			h_i = au_hinode(iinfo, bindex)->hi_inode;
 +			if (h_i
-+			    && !h_i->i_nlink
++			    && !vfsub_inode_nlink(h_i, AU_I_BRANCH)
 +			    && !(h_i->i_state & I_LINKABLE))
 +				au_set_h_iptr(inode, bindex, NULL, 0);
 +		}
@@ -19242,6 +19242,7 @@ diff -urN /usr/share/empty/fs/aufs/iinfo.c linux/fs/aufs/iinfo.c
 +	spin_lock_init(&iinfo->ii_generation.ig_spin);
 +	au_rw_init(&iinfo->ii_rwsem);
 +	inode_init_once(&c->vfs_inode);
++	spin_lock_init(&c->nlink_spin);
 +}
 +
 +void au_hinode_init(struct au_hinode *hinode)
@@ -19309,7 +19310,7 @@ diff -urN /usr/share/empty/fs/aufs/iinfo.c linux/fs/aufs/iinfo.c
 +	struct au_hinode *hi;
 +	struct super_block *sb;
 +	aufs_bindex_t bindex, bbot;
-+	const unsigned char unlinked = !inode->i_nlink;
++	const unsigned char unlinked = !vfsub_inode_nlink(inode, AU_I_AUFS);
 +
 +	AuDebugOn(au_is_bad_inode(inode));
 +
@@ -19348,8 +19349,8 @@ diff -urN /usr/share/empty/fs/aufs/iinfo.c linux/fs/aufs/iinfo.c
 +}
 diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
 --- /usr/share/empty/fs/aufs/inode.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/inode.c	2024-11-18 12:46:45.636363225 +0100
-@@ -0,0 +1,531 @@
++++ linux/fs/aufs/inode.c	2025-01-20 14:58:10.219986000 +0100
+@@ -0,0 +1,532 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -19736,7 +19737,7 @@ diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
 +	h_dentry = au_h_dptr(dentry, btop);
 +	h_inode = d_inode(h_dentry);
 +	h_ino = h_inode->i_ino;
-+	hlinked = !d_is_dir(h_dentry) && h_inode->i_nlink > 1;
++	hlinked = !d_is_dir(h_dentry) && vfsub_inode_nlink(h_inode, AU_I_BRANCH) > 1;
 +
 +new_ino:
 +	/*
@@ -19789,7 +19790,8 @@ diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
 +		au_xino_write(sb, btop, h_ino, /*ino*/0);
 +		/* ignore this error */
 +		goto out_iput;
-+	} else if (!must_new && !IS_DEADDIR(inode) && inode->i_nlink) {
++	} else if (!must_new && !IS_DEADDIR(inode)
++		   && vfsub_inode_nlink(inode, AU_I_AUFS)) {
 +		/*
 +		 * horrible race condition between lookup, readdir and copyup
 +		 * (or something).
@@ -19883,8 +19885,8 @@ diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
 +}
 diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
 --- /usr/share/empty/fs/aufs/inode.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/inode.h	2024-11-10 01:09:28.606384527 +0100
-@@ -0,0 +1,707 @@
++++ linux/fs/aufs/inode.h	2025-01-20 14:58:10.219986000 +0100
+@@ -0,0 +1,727 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -19913,6 +19915,7 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
 +#ifdef __KERNEL__
 +
 +#include <linux/fsnotify.h>
++#include "fstype.h"
 +#include "rwsem.h"
 +
 +struct vfsmount;
@@ -19967,6 +19970,7 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
 +struct au_icntnr {
 +	struct au_iinfo		iinfo;
 +	struct inode		vfs_inode;
++	spinlock_t		nlink_spin; /* protects vfs_inode.i_nlink */
 +	struct hlist_bl_node	plink;
 +	struct rcu_head		rcu;
 +} ____cacheline_aligned_in_smp;
@@ -20012,6 +20016,24 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
 +	return &(container_of(inode, struct au_icntnr, vfs_inode)->iinfo);
 +}
 +
++static inline void au_nlink_lock(struct inode *inode)
++{
++	spinlock_t *spin;
++
++	AuDebugOn(!au_test_aufs(inode->i_sb));
++	AuDebugOn(is_bad_inode(inode));
++	spin = &(container_of(inode, struct au_icntnr, vfs_inode)->nlink_spin);
++	spin_lock(spin);
++}
++
++static inline void au_nlink_unlock(struct inode *inode)
++{
++	spinlock_t *spin;
++
++	spin = &(container_of(inode, struct au_icntnr, vfs_inode)->nlink_spin);
++	spin_unlock(spin);
++}
++
 +/* ---------------------------------------------------------------------- */
 +
 +/* inode.c */
@@ -20818,7 +20840,7 @@ diff -urN /usr/share/empty/fs/aufs/ioctl.c linux/fs/aufs/ioctl.c
 +#endif
 diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 --- /usr/share/empty/fs/aufs/i_op_add.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op_add.c	2024-11-18 12:46:45.636363225 +0100
++++ linux/fs/aufs/i_op_add.c	2025-01-20 14:58:10.219986000 +0100
 @@ -0,0 +1,971 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -20945,7 +20967,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +		if (unlikely(d_is_negative(h_dentry)))
 +			goto out;
 +		h_inode = d_inode(h_dentry);
-+		if (unlikely(!h_inode->i_nlink))
++		if (unlikely(!vfsub_inode_nlink(h_inode, AU_I_BRANCH)))
 +			goto out;
 +
 +		h_mode = h_inode->i_mode;
@@ -21326,7 +21348,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +		goto out_h_file;
 +	}
 +
-+	au_init_nlink(inode, 1);
++	vfsub_inode_nlink_init(inode, 1);
 +	d_tmpfile(file, inode);
 +	au_di(dentry)->di_tmpfile = 1;
 +	get_file(h_file);
@@ -21431,7 +21453,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +	inode = d_inode(src_dentry);
 +	if (au_ibtop(inode) <= a->bdst)
 +		h_inode = au_h_iptr(inode, a->bdst);
-+	if (!h_inode || !h_inode->i_nlink) {
++	if (!h_inode || !vfsub_inode_nlink(h_inode, AU_I_BRANCH)) {
 +		/* copyup src_dentry as the name of dentry. */
 +		bbot = au_dbbot(dentry);
 +		if (bbot < a->bsrc)
@@ -21644,7 +21666,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +
 +	au_dir_ts(dir, a->bdst);
 +	inode_inc_iversion(dir);
-+	inc_nlink(inode);
++	vfsub_inc_nlink(inode);
 +	inode_set_ctime_to_ts(inode, inode_get_ctime(dir));
 +	d_instantiate(dentry, au_igrab(inode));
 +	if (d_unhashed(a->h_path.dentry))
@@ -21749,7 +21771,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +
 +	err = epilog(dir, bindex, wh_dentry, dentry);
 +	if (!err) {
-+		inc_nlink(dir);
++		vfsub_inc_nlink(dir);
 +		goto out_unpin; /* success */
 +	}
 +
@@ -21793,8 +21815,8 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +}
 diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 --- /usr/share/empty/fs/aufs/i_op.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op.c	2024-11-18 12:46:45.636363225 +0100
-@@ -0,0 +1,1520 @@
++++ linux/fs/aufs/i_op.c	2025-01-20 14:58:10.219986000 +0100
+@@ -0,0 +1,1522 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -22425,7 +22447,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 +			continue;
 +		if (d_is_positive(h_d[i])) {
 +			h_i = d_inode(h_d[i]);
-+			err = !h_i->i_nlink;
++			err = !vfsub_inode_nlink(h_i, AU_I_BRANCH);
 +		}
 +	}
 +
@@ -22435,7 +22457,13 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 +
 +static void au_pin_hdir_set_owner(struct au_pin *p, struct task_struct *task)
 +{
++	AuRwMustWriteLock(&p->hdir->hi_inode->i_rwsem);
++#ifndef CONFIG_PREEMPT_RT
 +	atomic_long_set(&p->hdir->hi_inode->i_rwsem.owner, (long)task);
++#else
++	p->hdir->hi_inode->i_rwsem.rwbase.rtmutex.owner = task;
++	smp_mb();
++#endif
 +}
 +
 +void au_pin_hdir_acquire_nest(struct au_pin *p)
@@ -22970,12 +22998,11 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 +
 +	au_cpup_attr_nlink(inode, /*force*/0);
 +	if (S_ISDIR(inode->i_mode)) {
-+		n = inode->i_nlink;
++		n = vfsub_inode_nlink(inode, AU_I_AUFS);
 +		n -= nlink;
 +		n += st->nlink;
-+		smp_mb(); /* for i_nlink */
 +		/* 0 can happen */
-+		au_set_nlink(inode, n);
++		vfsub_set_nlink(inode, n);
 +	}
 +
 +	spin_lock(&inode->i_lock);
@@ -23090,17 +23117,14 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 +		goto out_fill; /* pretending success */
 +
 +	positive = d_is_positive(h_path.dentry);
-+	if (positive) {
++	if (positive)
 +		/* no vfsub version */
-+		if (query & AT_GETATTR_NOSEC)
-+			err = vfs_getattr_nosec(&h_path, st, request, query);
-+		else
-+			err = vfs_getattr(&h_path, st, request, query);
-+	}
++		err = vfs_getattr_nosec(&h_path, st, request, query);
 +	if (!err) {
 +		if (positive)
 +			au_refresh_iattr(inode, st,
-+					 d_inode(h_path.dentry)->i_nlink);
++					 vfsub_inode_nlink(d_inode(h_path.dentry),
++							   AU_I_BRANCH));
 +		goto out_fill; /* success */
 +	}
 +	AuTraceErr(err);
@@ -23317,7 +23341,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 +};
 diff -urN /usr/share/empty/fs/aufs/i_op_del.c linux/fs/aufs/i_op_del.c
 --- /usr/share/empty/fs/aufs/i_op_del.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op_del.c	2023-10-31 09:31:04.199880750 +0100
++++ linux/fs/aufs/i_op_del.c	2025-01-20 14:58:10.219986000 +0100
 @@ -0,0 +1,523 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -23426,7 +23450,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_del.c linux/fs/aufs/i_op_del.c
 +		if (unlikely(d_is_negative(h_dentry)))
 +			goto out;
 +		h_inode = d_inode(h_dentry);
-+		if (unlikely(!h_inode->i_nlink))
++		if (unlikely(!vfsub_inode_nlink(h_inode, AU_I_BRANCH)))
 +			goto out;
 +
 +		h_mode = h_inode->i_mode;
@@ -23844,7 +23868,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_del.c linux/fs/aufs/i_op_del.c
 +}
 diff -urN /usr/share/empty/fs/aufs/i_op_ren.c linux/fs/aufs/i_op_ren.c
 --- /usr/share/empty/fs/aufs/i_op_ren.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op_ren.c	2024-11-10 01:09:28.606384527 +0100
++++ linux/fs/aufs/i_op_ren.c	2025-01-20 14:58:10.219986000 +0100
 @@ -0,0 +1,1264 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -24499,7 +24523,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_ren.c linux/fs/aufs/i_op_ren.c
 +		if (unlikely(d_is_negative(a->dst_h_dentry)))
 +			goto out;
 +		h_inode = d_inode(a->dst_h_dentry);
-+		if (h_inode->i_nlink)
++		if (vfsub_inode_nlink(h_inode, AU_I_BRANCH))
 +			err = au_may_del(a->dst_dentry, a->btgt,
 +					 a->dst_h_parent, isdir);
 +	}
@@ -24896,7 +24920,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_ren.c linux/fs/aufs/i_op_ren.c
 +		 * If it is a dir, VFS unhash it before this
 +		 * function. It means we cannot rely upon d_unhashed().
 +		 */
-+		if (unlikely(!a->dst_inode->i_nlink))
++		if (unlikely(!vfsub_inode_nlink(a->dst_inode, AU_I_AUFS)))
 +			goto out_unlock;
 +		if (!au_ftest_ren(a->auren_flags, ISDIR_DST)) {
 +			err = au_d_hashed_positive(a->dst_dentry);
@@ -25803,8 +25827,8 @@ diff -urN /usr/share/empty/fs/aufs/Makefile linux/fs/aufs/Makefile
 +aufs-$(CONFIG_AUFS_MAGIC_SYSRQ) += sysrq.o
 diff -urN /usr/share/empty/fs/aufs/module.c linux/fs/aufs/module.c
 --- /usr/share/empty/fs/aufs/module.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/module.c	2022-11-05 23:02:18.965889284 +0100
-@@ -0,0 +1,273 @@
++++ linux/fs/aufs/module.c	2025-01-20 14:58:10.219986000 +0100
+@@ -0,0 +1,275 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -25940,7 +25964,8 @@ diff -urN /usr/share/empty/fs/aufs/module.c linux/fs/aufs/module.c
 + * iterate_supers_type() doesn't protect us from
 + * remounting (branch management)
 + */
-+struct hlist_bl_head au_sbilist;
++struct au_rwsem au_sbilist_lock;
++struct hlist_head au_sbilist;
 +#endif
 +
 +/*
@@ -26074,6 +26099,7 @@ diff -urN /usr/share/empty/fs/aufs/module.c linux/fs/aufs/module.c
 +	dbgaufs_fin();
 +	sysaufs_fin();
 +	au_dy_fin();
++	au_sbilist_fin();
 +}
 +
 +module_init(aufs_init);
@@ -26264,8 +26290,8 @@ diff -urN /usr/share/empty/fs/aufs/module.h linux/fs/aufs/module.h
 +#endif /* __AUFS_MODULE_H__ */
 diff -urN /usr/share/empty/fs/aufs/mvdown.c linux/fs/aufs/mvdown.c
 --- /usr/share/empty/fs/aufs/mvdown.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/mvdown.c	2024-11-10 01:09:28.606384527 +0100
-@@ -0,0 +1,713 @@
++++ linux/fs/aufs/mvdown.c	2025-01-20 14:58:10.219986000 +0100
+@@ -0,0 +1,714 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2011-2022 Junjiro R. Okajima
@@ -26675,15 +26701,16 @@ diff -urN /usr/share/empty/fs/aufs/mvdown.c linux/fs/aufs/mvdown.c
 +	    && atomic_read(&a->inode->i_count) == 1
 +	    /* && a->mvd_h_src_inode->i_nlink == 1 */
 +	    && (!plinked || !au_plink_test(a->inode))
-+	    && a->inode->i_nlink == 1)
++	    && vfsub_inode_nlink(a->inode, AU_I_AUFS) == 1)
 +		goto out;
 +
 +	err = -EBUSY;
 +	AU_MVD_PR(dmsg,
 +		  "b%d, d{b%d, c%d?}, i{c%d?, l%u}, hi{l%u}, p{%d, %d}\n",
 +		  a->mvd_bsrc, au_dbtop(a->dentry), au_dcount(a->dentry),
-+		  atomic_read(&a->inode->i_count), a->inode->i_nlink,
-+		  a->mvd_h_src_inode->i_nlink,
++		  atomic_read(&a->inode->i_count),
++		  vfsub_inode_nlink(a->inode, AU_I_AUFS),
++		  vfsub_inode_nlink(a->mvd_h_src_inode, AU_I_BRANCH),
 +		  plinked, plinked ? au_plink_test(a->inode) : 0);
 +
 +out:
@@ -28970,8 +28997,8 @@ diff -urN /usr/share/empty/fs/aufs/posix_acl.c linux/fs/aufs/posix_acl.c
 +}
 diff -urN /usr/share/empty/fs/aufs/procfs.c linux/fs/aufs/procfs.c
 --- /usr/share/empty/fs/aufs/procfs.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/procfs.c	2022-11-05 23:02:18.969222617 +0100
-@@ -0,0 +1,170 @@
++++ linux/fs/aufs/procfs.c	2025-01-20 14:58:10.219986000 +0100
+@@ -0,0 +1,168 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2010-2022 Junjiro R. Okajima
@@ -29024,22 +29051,20 @@ diff -urN /usr/share/empty/fs/aufs/procfs.c linux/fs/aufs/procfs.c
 +	int err;
 +	struct super_block *sb;
 +	struct au_sbinfo *sbinfo;
-+	struct hlist_bl_node *pos;
 +
 +	err = -EBUSY;
 +	if (unlikely(file->private_data))
 +		goto out;
 +
 +	sb = NULL;
-+	/* don't use au_sbilist_lock() here */
-+	hlist_bl_lock(&au_sbilist);
-+	hlist_bl_for_each_entry(sbinfo, pos, &au_sbilist, si_list)
++	au_sbilist_read_lock();
++	hlist_for_each_entry(sbinfo, &au_sbilist, si_list)
 +		if (id == sysaufs_si_id(sbinfo)) {
 +			if (kobject_get_unless_zero(&sbinfo->si_kobj))
 +				sb = sbinfo->si_sb;
 +			break;
 +		}
-+	hlist_bl_unlock(&au_sbilist);
++	au_sbilist_read_unlock();
 +
 +	err = -EINVAL;
 +	if (unlikely(!sb))
@@ -29532,8 +29557,8 @@ diff -urN /usr/share/empty/fs/aufs/rdu.c linux/fs/aufs/rdu.c
 +#endif
 diff -urN /usr/share/empty/fs/aufs/rwsem.h linux/fs/aufs/rwsem.h
 --- /usr/share/empty/fs/aufs/rwsem.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/rwsem.h	2024-10-15 11:25:59.893110313 +0200
-@@ -0,0 +1,85 @@
++++ linux/fs/aufs/rwsem.h	2025-01-20 14:58:10.219986000 +0100
+@@ -0,0 +1,89 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -29567,7 +29592,11 @@ diff -urN /usr/share/empty/fs/aufs/rwsem.h linux/fs/aufs/rwsem.h
 +#define au_rwsem	rw_semaphore
 +
 +/* to debug easier, do not make them inlined functions */
++#ifndef CONFIG_PREEMPT_RT
 +#define AuRwMustNoWaiters(rw)	AuDebugOn(rwsem_is_contended(rw))
++#else
++#define AuRwMustNoWaiters(rw)	do {} while(0)
++#endif
 +
 +#ifdef CONFIG_LOCKDEP
 +/* rwsem_is_locked() is unusable */
@@ -29941,8 +29970,8 @@ diff -urN /usr/share/empty/fs/aufs/sbinfo.c linux/fs/aufs/sbinfo.c
 +}
 diff -urN /usr/share/empty/fs/aufs/super.c linux/fs/aufs/super.c
 --- /usr/share/empty/fs/aufs/super.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/super.c	2024-11-18 12:46:45.636363225 +0100
-@@ -0,0 +1,871 @@
++++ linux/fs/aufs/super.c	2025-01-20 14:58:10.219986000 +0100
+@@ -0,0 +1,872 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -30736,7 +30765,7 @@ diff -urN /usr/share/empty/fs/aufs/super.c linux/fs/aufs/super.c
 +	inode->i_op = aufs_iop + AuIop_DIR; /* with getattr by default */
 +	inode->i_fop = &aufs_dir_fop;
 +	inode->i_mode = S_IFDIR;
-+	au_init_nlink(inode, 2);
++	vfsub_inode_nlink_init(inode, 2);
 +	unlock_new_inode(inode);
 +
 +	root = d_make_root(inode);
@@ -30805,6 +30834,7 @@ diff -urN /usr/share/empty/fs/aufs/super.c linux/fs/aufs/super.c
 +	.name		= AUFS_FSTYPE,
 +	/* a race between rename and others */
 +	.fs_flags	= FS_RENAME_DOES_D_MOVE
++				| FS_MGTIME
 +				/* untested */
 +				/*| FS_ALLOW_IDMAP*/
 +				,
@@ -30816,8 +30846,8 @@ diff -urN /usr/share/empty/fs/aufs/super.c linux/fs/aufs/super.c
 +};
 diff -urN /usr/share/empty/fs/aufs/super.h linux/fs/aufs/super.h
 --- /usr/share/empty/fs/aufs/super.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/super.h	2024-11-10 01:09:28.609717860 +0100
-@@ -0,0 +1,592 @@
++++ linux/fs/aufs/super.h	2025-01-20 14:58:10.219986000 +0100
+@@ -0,0 +1,618 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -31016,7 +31046,7 @@ diff -urN /usr/share/empty/fs/aufs/super.h linux/fs/aufs/super.h
 +#endif
 +
 +#ifdef CONFIG_AUFS_SBILIST
-+	struct hlist_bl_node	si_list;
++	struct hlist_node	si_list;
 +#endif
 +
 +	/* dirty, necessary for unmounting, sysfs and sysrq */
@@ -31196,45 +31226,71 @@ diff -urN /usr/share/empty/fs/aufs/super.h linux/fs/aufs/super.h
 +
 +#ifdef CONFIG_AUFS_SBILIST
 +/* module.c */
-+extern struct hlist_bl_head au_sbilist;
++extern struct au_rwsem au_sbilist_lock;
++extern struct hlist_head au_sbilist;
 +
 +static inline void au_sbilist_init(void)
 +{
-+	INIT_HLIST_BL_HEAD(&au_sbilist);
++	au_rw_init(&au_sbilist_lock);
++	INIT_HLIST_HEAD(&au_sbilist);
++}
++
++static inline void au_sbilist_fin(void)
++{
++	AuRwDestroy(&au_sbilist_lock);
 +}
 +
 +static inline void au_sbilist_add(struct super_block *sb)
 +{
-+	au_hbl_add(&au_sbi(sb)->si_list, &au_sbilist);
++	au_rw_write_lock(&au_sbilist_lock);
++	hlist_add_head(&au_sbi(sb)->si_list, &au_sbilist);
++	au_rw_write_unlock(&au_sbilist_lock);
 +}
 +
 +static inline void au_sbilist_del(struct super_block *sb)
 +{
-+	au_hbl_del(&au_sbi(sb)->si_list, &au_sbilist);
++	au_rw_write_lock(&au_sbilist_lock);
++	hlist_del(&au_sbi(sb)->si_list);
++	au_rw_write_unlock(&au_sbilist_lock);
 +}
 +
 +#ifdef CONFIG_AUFS_MAGIC_SYSRQ
-+static inline void au_sbilist_lock(void)
++static inline void au_sbilist_write_lock(void)
 +{
-+	hlist_bl_lock(&au_sbilist);
++	au_rw_write_lock(&au_sbilist_lock);
 +}
 +
-+static inline void au_sbilist_unlock(void)
++static inline void au_sbilist_write_unlock(void)
 +{
-+	hlist_bl_unlock(&au_sbilist);
++	au_rw_write_unlock(&au_sbilist_lock);
++}
++
++static inline void au_sbilist_read_lock(void)
++{
++	au_rw_read_lock(&au_sbilist_lock);
++}
++
++static inline void au_sbilist_read_unlock(void)
++{
++	au_rw_read_unlock(&au_sbilist_lock);
 +}
 +#define AuGFP_SBILIST	GFP_ATOMIC
 +#else
-+AuStubVoid(au_sbilist_lock, void)
-+AuStubVoid(au_sbilist_unlock, void)
++AuStubVoid(au_sbilist_write_lock, void)
++AuStubVoid(au_sbilist_write_unlock, void)
++AuStubVoid(au_sbilist_read_lock, void)
++AuStubVoid(au_sbilist_read_unlock, void)
 +#define AuGFP_SBILIST	GFP_NOFS
 +#endif /* CONFIG_AUFS_MAGIC_SYSRQ */
 +#else
 +AuStubVoid(au_sbilist_init, void)
++AuStubVoid(au_sbilist_fin, void)
 +AuStubVoid(au_sbilist_add, struct super_block *sb)
 +AuStubVoid(au_sbilist_del, struct super_block *sb)
-+AuStubVoid(au_sbilist_lock, void)
-+AuStubVoid(au_sbilist_unlock, void)
++AuStubVoid(au_sbilist_write_lock, void)
++AuStubVoid(au_sbilist_write_unlock, void)
++AuStubVoid(au_sbilist_read_lock, void)
++AuStubVoid(au_sbilist_read_unlock, void)
 +#define AuGFP_SBILIST	GFP_NOFS
 +#endif
 +
@@ -31994,8 +32050,8 @@ diff -urN /usr/share/empty/fs/aufs/sysfs.c linux/fs/aufs/sysfs.c
 +}
 diff -urN /usr/share/empty/fs/aufs/sysrq.c linux/fs/aufs/sysrq.c
 --- /usr/share/empty/fs/aufs/sysrq.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/sysrq.c	2023-10-31 09:31:04.199880750 +0100
-@@ -0,0 +1,149 @@
++++ linux/fs/aufs/sysrq.c	2025-01-20 14:58:10.219986000 +0100
+@@ -0,0 +1,157 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -32101,17 +32157,25 @@ diff -urN /usr/share/empty/fs/aufs/sysrq.c linux/fs/aufs/sysrq.c
 +module_param_named(sysrq, aufs_sysrq_key, charp, 0444);
 +MODULE_PARM_DESC(sysrq, "MagicSysRq key for " AUFS_NAME);
 +
-+static void au_sysrq(u8 key __maybe_unused)
++static void au_sysrq_work_fn(struct work_struct *wk __maybe_unused)
 +{
 +	struct au_sbinfo *sbinfo;
-+	struct hlist_bl_node *pos;
 +
-+	lockdep_off();
-+	au_sbilist_lock();
-+	hlist_bl_for_each_entry(sbinfo, pos, &au_sbilist, si_list)
++	au_sbilist_read_lock();
++	hlist_for_each_entry(sbinfo, &au_sbilist, si_list)
 +		sysrq_sb(sbinfo->si_sb);
-+	au_sbilist_unlock();
-+	lockdep_on();
++	au_sbilist_read_unlock();
++
++	module_put(THIS_MODULE);
++}
++
++static DECLARE_WORK(au_sysrq_work, au_sysrq_work_fn);
++
++static void au_sysrq(u8 key __maybe_unused)
++{
++	/* au_wkq is too much here */
++	__module_get(THIS_MODULE);
++	schedule_work(&au_sysrq_work);
 +}
 +
 +static struct sysrq_key_op au_sysrq_op = {
@@ -32147,7 +32211,7 @@ diff -urN /usr/share/empty/fs/aufs/sysrq.c linux/fs/aufs/sysrq.c
 +}
 diff -urN /usr/share/empty/fs/aufs/vdir.c linux/fs/aufs/vdir.c
 --- /usr/share/empty/fs/aufs/vdir.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/vdir.c	2024-11-18 12:46:45.636363225 +0100
++++ linux/fs/aufs/vdir.c	2025-01-20 14:58:09.003319334 +0100
 @@ -0,0 +1,896 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -33047,8 +33111,8 @@ diff -urN /usr/share/empty/fs/aufs/vdir.c linux/fs/aufs/vdir.c
 +}
 diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
 --- /usr/share/empty/fs/aufs/vfsub.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/vfsub.c	2024-11-10 01:09:28.609717860 +0100
-@@ -0,0 +1,919 @@
++++ linux/fs/aufs/vfsub.c	2025-01-20 14:58:10.219986000 +0100
+@@ -0,0 +1,965 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -33102,6 +33166,52 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
 +
 +/* ---------------------------------------------------------------------- */
 +
++unsigned int vfsub_inode_nlink_aufs(struct inode *inode)
++{
++	unsigned int nlink;
++
++	au_nlink_lock(inode);
++	nlink = inode->i_nlink;
++	au_nlink_unlock(inode);
++
++	return nlink;
++}
++
++void vfsub_inc_nlink(struct inode *inode)
++{
++	au_nlink_lock(inode);
++	inc_nlink(inode);
++	au_nlink_unlock(inode);
++}
++
++void vfsub_drop_nlink(struct inode *inode)
++{
++	au_nlink_lock(inode);
++	AuDebugOn(!inode->i_nlink);
++	drop_nlink(inode);
++	au_nlink_unlock(inode);
++}
++
++void vfsub_clear_nlink(struct inode *inode)
++{
++	au_nlink_lock(inode);
++	AuDebugOn(!inode->i_nlink);
++	clear_nlink(inode);
++	au_nlink_unlock(inode);
++}
++
++void vfsub_set_nlink(struct inode *inode, unsigned int nlink)
++{
++	/*
++	 * stop setting the value equal to the current one, in order to stop
++	 * a useless warning from vfs:destroy_inode() about sb->s_remove_count.
++	 */
++	au_nlink_lock(inode);
++	if (nlink != inode->i_nlink)
++		set_nlink(inode, nlink);
++	au_nlink_unlock(inode);
++}
++
 +int vfsub_update_h_iattr(struct path *h_path, int *did)
 +{
 +	int err;
@@ -33406,7 +33516,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
 +	const unsigned int link_max = UINT_MAX >> 1; /* rough margin */
 +
 +	if (!au_test_fs_no_limit_nlink(inode->i_sb)
-+	    || inode->i_nlink < link_max)
++	    || vfsub_inode_nlink(inode, AU_I_BRANCH) < link_max)
 +		return 0;
 +	return -EMLINK;
 +}
@@ -33970,8 +34080,8 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
 +}
 diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
 --- /usr/share/empty/fs/aufs/vfsub.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/vfsub.h	2024-11-18 12:46:45.636363225 +0100
-@@ -0,0 +1,418 @@
++++ linux/fs/aufs/vfsub.h	2025-01-20 14:58:10.219986000 +0100
+@@ -0,0 +1,441 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -34004,6 +34114,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
 +#include <linux/posix_acl.h>
 +#include <linux/xattr.h>
 +#include "debug.h"
++#include "fstype.h"
 +
 +/* copied from linux/fs/internal.h */
 +/* todo: BAD approach!! */
@@ -34030,33 +34141,55 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
 +
 +/* ---------------------------------------------------------------------- */
 +
-+static inline void au_set_nlink(struct inode *inode, unsigned int nlink)
++unsigned int vfsub_inode_nlink_aufs(struct inode *inode);
++
++enum au_inode_type {
++	AU_I_AUFS,
++	AU_I_BRANCH,
++	AU_I_UNKNOWN
++};
++
++static inline unsigned int vfsub_inode_nlink(struct inode *inode,
++					     enum au_inode_type type)
 +{
-+	/*
-+	 * stop setting the value equal to the current one, in order to stop
-+	 * a useless warning from vfs:destroy_inode() about sb->s_remove_count.
-+	 */
-+	if (nlink != inode->i_nlink)
-+		set_nlink(inode, nlink);
++	unsigned int nlink;
++
++	switch (type) {
++	case AU_I_AUFS:
++		nlink = vfsub_inode_nlink_aufs(inode);
++		break;
++	case AU_I_BRANCH: /* aufs cannot be a branch of another aufs mount */
++		AuDebugOn(au_test_aufs(inode->i_sb));
++		nlink = inode->i_nlink;
++		break;
++	case AU_I_UNKNOWN:
++		if (au_test_aufs(inode->i_sb))
++			nlink = vfsub_inode_nlink_aufs(inode);
++		else
++			nlink = inode->i_nlink;
++		break;
++	};
++
++	return nlink;
 +}
 +
-+static inline void au_init_nlink(struct inode *inode, unsigned int nlink)
++void vfsub_inc_nlink(struct inode *inode);
++void vfsub_drop_nlink(struct inode *inode);
++void vfsub_clear_nlink(struct inode *inode);
++void vfsub_set_nlink(struct inode *inode, unsigned int nlink);
++
++static inline void vfsub_inode_nlink_init(struct inode *inode,
++					  unsigned int nlink)
 +{
 +	/* to ignore sb->s_remove_count, do not use set_nlink() */
 +	inode->__i_nlink = nlink;
 +}
 +
-+static inline void vfsub_drop_nlink(struct inode *inode)
-+{
-+	AuDebugOn(!inode->i_nlink);
-+	drop_nlink(inode);
-+}
-+
 +static inline void vfsub_dead_dir(struct inode *inode)
 +{
 +	AuDebugOn(!S_ISDIR(inode->i_mode));
 +	inode->i_flags |= S_DEAD;
-+	clear_nlink(inode);
++	vfsub_clear_nlink(inode);
 +}
 +
 +static inline int vfsub_native_ro(struct inode *inode)
@@ -35226,7 +35359,7 @@ diff -urN /usr/share/empty/fs/aufs/wbr_policy.c linux/fs/aufs/wbr_policy.c
 +};
 diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
 --- /usr/share/empty/fs/aufs/whout.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/whout.c	2023-10-31 09:31:04.199880750 +0100
++++ linux/fs/aufs/whout.c	2025-01-20 14:58:10.223319334 +0100
 @@ -0,0 +1,1072 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -36211,10 +36344,10 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
 +	inode_unlock(wh_inode);
 +
 +	if (!err) {
-+		h_nlink = h_dir->i_nlink;
++		h_nlink = vfsub_inode_nlink(h_dir, AU_I_BRANCH);
 +		err = vfsub_rmdir(h_dir, &wh_path);
 +		/* some fs doesn't change the parent nlink in some cases */
-+		h_nlink -= h_dir->i_nlink;
++		h_nlink -= vfsub_inode_nlink(h_dir, AU_I_BRANCH);
 +	}
 +
 +	if (!err) {
@@ -37224,7 +37357,7 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c
 +}
 diff -urN /usr/share/empty/fs/aufs/xino.c linux/fs/aufs/xino.c
 --- /usr/share/empty/fs/aufs/xino.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/xino.c	2023-10-31 09:31:04.203214083 +0100
++++ linux/fs/aufs/xino.c	2025-01-20 14:58:10.223319334 +0100
 @@ -0,0 +1,1926 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -37425,7 +37558,7 @@ diff -urN /usr/share/empty/fs/aufs/xino.c linux/fs/aufs/xino.c
 +	h_dir = d_inode(h_parent);
 +	inode = file_inode(file);
 +	/* no delegation since it is just created */
-+	if (inode->i_nlink)
++	if (vfsub_inode_nlink(inode, AU_I_BRANCH))
 +		err = vfsub_unlink(h_dir, &file->f_path, /*delegated*/NULL,
 +				   /*force*/0);
 +	inode_unlock(h_dir);
@@ -38326,7 +38459,7 @@ diff -urN /usr/share/empty/fs/aufs/xino.c linux/fs/aufs/xino.c
 +	struct super_block *sb;
 +	struct au_sbinfo *sbinfo;
 +
-+	AuDebugOn(inode->i_nlink);
++	AuDebugOn(vfsub_inode_nlink(inode, AU_I_AUFS));
 +
 +	sb = inode->i_sb;
 +	xib_calc_bit(inode->i_ino, &pindex, &bit);
@@ -39015,7 +39148,7 @@ diff -urN /usr/share/empty/fs/aufs/xino.c linux/fs/aufs/xino.c
 +	for (; bindex <= bbot; bindex++, hi++) {
 +		h_inode = hi->hi_inode;
 +		if (!h_inode
-+		    || (!unlinked && h_inode->i_nlink))
++		    || (!unlinked && vfsub_inode_nlink(h_inode, AU_I_BRANCH)))
 +			continue;
 +
 +		/* inode may not be revalidated */
@@ -39154,7 +39287,7 @@ diff -urN /usr/share/empty/fs/aufs/xino.c linux/fs/aufs/xino.c
 +}
 diff -urN /usr/share/empty/include/uapi/linux/aufs_type.h linux/include/uapi/linux/aufs_type.h
 --- /usr/share/empty/include/uapi/linux/aufs_type.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/include/uapi/linux/aufs_type.h	2024-11-18 12:46:45.636363225 +0100
++++ linux/include/uapi/linux/aufs_type.h	2025-01-20 14:58:10.223319334 +0100
 @@ -0,0 +1,452 @@
 +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 +/*
@@ -39198,7 +39331,7 @@ diff -urN /usr/share/empty/include/uapi/linux/aufs_type.h linux/include/uapi/lin
 +#include <limits.h>
 +#endif /* __KERNEL__ */
 +
-+#define AUFS_VERSION	"6.x-rcN-20241118"
++#define AUFS_VERSION	"6.x-rcN-20250106"
 +
 +/* todo? move this to linux-2.6.19/include/magic.h */
 +#define AUFS_SUPER_MAGIC	('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
@@ -39612,7 +39745,7 @@ SPDX-License-Identifier: GPL-2.0
 aufs6.x-rcN loopback patch
 
 diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 479480f25a6c..ba3477c30e29 100644
+index 78dc1c0c6680..022d8cf26eb6 100644
 --- a/drivers/block/loop.c
 +++ b/drivers/block/loop.c
 @@ -54,7 +54,7 @@ struct loop_device {
@@ -39694,7 +39827,7 @@ index 479480f25a6c..ba3477c30e29 100644
  	goto done;
  }
  
-@@ -1039,6 +1062,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -1038,6 +1061,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
  			  const struct loop_config *config)
  {
  	struct file *file = fget(config->fd);
@@ -39702,7 +39835,7 @@ index 479480f25a6c..ba3477c30e29 100644
  	struct address_space *mapping;
  	int error;
  	loff_t size;
-@@ -1052,6 +1076,13 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -1051,6 +1075,13 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
  	/* This is safe, since we have a reference from open(). */
  	__module_get(THIS_MODULE);
  
@@ -39716,7 +39849,7 @@ index 479480f25a6c..ba3477c30e29 100644
  	/*
  	 * If we don't hold exclusive handle for the device, upgrade to it
  	 * here to avoid changing device under exclusive owner.
-@@ -1108,6 +1139,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -1107,6 +1138,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
  	lo->use_dio = lo->lo_flags & LO_FLAGS_DIRECT_IO;
  	lo->lo_device = bdev;
  	lo->lo_backing_file = file;
@@ -39724,7 +39857,7 @@ index 479480f25a6c..ba3477c30e29 100644
  	lo->old_gfp_mask = mapping_gfp_mask(mapping);
  	mapping_set_gfp_mask(mapping, lo->old_gfp_mask & ~(__GFP_IO|__GFP_FS));
  
-@@ -1150,6 +1182,8 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -1149,6 +1181,8 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
  		bd_abort_claiming(bdev, loop_configure);
  out_putf:
  	fput(file);
@@ -39733,7 +39866,7 @@ index 479480f25a6c..ba3477c30e29 100644
  	/* This is safe: open() is still holding a reference. */
  	module_put(THIS_MODULE);
  	return error;
-@@ -1159,11 +1193,13 @@ static void __loop_clr_fd(struct loop_device *lo)
+@@ -1158,11 +1192,13 @@ static void __loop_clr_fd(struct loop_device *lo)
  {
  	struct queue_limits lim;
  	struct file *filp;
@@ -39747,7 +39880,7 @@ index 479480f25a6c..ba3477c30e29 100644
  	spin_unlock_irq(&lo->lo_lock);
  
  	lo->lo_device = NULL;
-@@ -1225,6 +1261,8 @@ static void __loop_clr_fd(struct loop_device *lo)
+@@ -1224,6 +1260,8 @@ static void __loop_clr_fd(struct loop_device *lo)
  	 * fput can take open_mutex which is usually taken before lo_mutex.
  	 */
  	fput(filp);
@@ -39816,7 +39949,7 @@ index 03d4908a6c03..34d356e181d5 100644
  
  #endif /* __KERNEL__ */
 diff --git a/fs/aufs/super.c b/fs/aufs/super.c
-index ec1cd23719fd..55cde6ac582b 100644
+index 3528a65928a0..490178f0a04f 100644
 --- a/fs/aufs/super.c
 +++ b/fs/aufs/super.c
 @@ -758,7 +758,10 @@ const struct super_operations aufs_sop = {
@@ -39832,10 +39965,10 @@ index ec1cd23719fd..55cde6ac582b 100644
  
  /* ---------------------------------------------------------------------- */
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 51b64b2ad82c..8c3ff295b020 100644
+index b74af4ae6dd4..5514fc9ea7bd 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -2248,6 +2248,11 @@ struct super_operations {
+@@ -2259,6 +2259,11 @@ struct super_operations {
  	long (*free_cached_objects)(struct super_block *,
  				    struct shrink_control *);
  	void (*shutdown)(struct super_block *sb);
diff --git a/kernel-multiarch.config b/kernel-multiarch.config
index 50b93de1..d8e3c521 100644
--- a/kernel-multiarch.config
+++ b/kernel-multiarch.config
@@ -137,6 +137,7 @@ UNWINDER_ARM arm=y
 UNWINDER_FRAME_POINTER arm=n i386=y x86_64=n
 UNWINDER_ORC x86_64=y
 VMAP_STACK all=y
+X86_BUS_LOCK_DETECT x86_64=y x86=y
 X86_DEBUG_FPU all=n
 X86_DECODER_SELFTEST all=n
 X86_VERBOSE_BOOTUP all=n
@@ -205,6 +206,7 @@ KARMA_PARTITION all=y
 EFI_PARTITION all=y
 SYSV68_PARTITION all=y
 CMDLINE_PARTITION all=y
+OF_PARTITION all=y
 
 #-
 #- *** FILE: certs/Kconfig ***
@@ -371,6 +373,7 @@ DRM_ACCEL_HABANALABS all=m
 #- *** FILE: drivers/accel/ivpu/Kconfig ***
 #-
 DRM_ACCEL_IVPU all=m
+DRM_ACCEL_IVPU_DEBUG all=n
 
 #-
 #- *** FILE: drivers/accel/qaic/Kconfig ***
@@ -412,6 +415,7 @@ ACPI_DEBUGGER all=n
 ACPI_SPCR_TABLE all=y
 ACPI_SLEEP x86=y
 ACPI_REV_OVERRIDE_POSSIBLE all=y
+ACPI_EC all=y
 ACPI_EC_DEBUGFS all=m
 ACPI_AC arm64=m x86=m
 ACPI_BATTERY arm64=m x86=m
@@ -513,7 +517,7 @@ SATA_MOBILE_LPM_POLICY all=0
 SATA_AHCI_PLATFORM all=m
 AHCI_DWC all=m
 AHCI_IMX all=m
-AHCI_CEVA arm=m arm64=m
+AHCI_CEVA all=m
 AHCI_MVEBU arm=m
 AHCI_XGENE arm64=m
 AHCI_QORIQ arm=m arm64=m
@@ -592,7 +596,7 @@ PATA_NS87410 all=m sparc=n
 PATA_OPTI all=m sparc=n
 PATA_PCMCIA all=m
 PATA_PLATFORM all=m
-PATA_OF_PLATFORM arm=m arm64=m ppc=m ppc64=m
+PATA_OF_PLATFORM all=m
 PATA_QDI alpha=m i386=m
 PATA_RZ1000 all=m sparc=n
 PATA_WINBOND_VLB all=m sparc=n
@@ -852,7 +856,7 @@ BT_INTEL_PCIE all=m
 #- *** FILE: drivers/bus/Kconfig ***
 #-
 BRCMSTB_GISB_ARB arm=n arm64=n
-MOXTET arm=m arm64=m
+MOXTET all=m
 OMAP_OCP2SCP all=m
 VEXPRESS_CONFIG arm=m arm64=y
 #- file drivers/bus/fsl-mc/Kconfig goes here
@@ -950,7 +954,7 @@ HW_RANDOM_MESON arm64=m
 HW_RANDOM_CAVIUM arm64=m
 HW_RANDOM_EXYNOS all=m
 HW_RANDOM_OPTEE arm=m arm64=m
-HW_RANDOM_CCTRNG arm=m arm64=m
+HW_RANDOM_CCTRNG all=m
 HW_RANDOM_XIPHERA all=m
 HW_RANDOM_ARM_SMCCC_TRNG arm=m arm64=m
 HW_RANDOM_CN10K arm64=m
@@ -1007,7 +1011,7 @@ TCG_TIS_ST33ZP24_SPI all=m
 #-
 XILLYBUS all=m
 XILLYBUS_PCIE all=m
-XILLYBUS_OF arm=m arm64=m
+XILLYBUS_OF all=m
 XILLYUSB=m
 
 #-
@@ -1018,31 +1022,31 @@ COMMON_CLK_WM831X all=m
 #- file drivers/clk/versatile/Kconfig goes here
 CLK_HSDK arm=n arm64=n
 LMK04832=m
-COMMON_CLK_MAX77686 arm=m arm64=m
+COMMON_CLK_MAX77686 all=m
 COMMON_CLK_MAX9485 all=m
-COMMON_CLK_RK808 arm=m arm64=m
+COMMON_CLK_RK808 all=m
 COMMON_CLK_SCMI arm=m arm64=m
 COMMON_CLK_SCPI all=m
 COMMON_CLK_SI5341 all=m
 COMMON_CLK_SI5351 all=m
-COMMON_CLK_SI514 arm=m arm64=m
+COMMON_CLK_SI514 all=m
 COMMON_CLK_SI544 all=m
-COMMON_CLK_SI570 arm=m arm64=m
+COMMON_CLK_SI570 all=m
 COMMON_CLK_CDCE706 all=m
 COMMON_CLK_TPS68470 all=m
-COMMON_CLK_CDCE925 arm=m arm64=m
+COMMON_CLK_CDCE925 all=m
 COMMON_CLK_CS2000_CP all=m
 COMMON_CLK_LAN966X arm=n arm64=n
-COMMON_CLK_AXI_CLKGEN arm=m arm64=m
+COMMON_CLK_AXI_CLKGEN all=m
 CLK_QORIQ arm=n arm64=n
 COMMON_CLK_XGENE arm64=y
 COMMON_CLK_PWM all=m
-COMMON_CLK_RS9_PCIE arm=m arm64=m
-COMMON_CLK_SI521XX arm=m arm64=m
-COMMON_CLK_VC3 arm=m arm64=m
-COMMON_CLK_VC5 arm=m arm64=m
-COMMON_CLK_VC7 arm=m arm64=m
-COMMON_CLK_FIXED_MMIO arm=y arm64=y
+COMMON_CLK_RS9_PCIE all=m
+COMMON_CLK_SI521XX all=m
+COMMON_CLK_VC3 all=m
+COMMON_CLK_VC5 all=m
+COMMON_CLK_VC7 all=m
+COMMON_CLK_FIXED_MMIO all=y
 #- file drivers/clk/actions/Kconfig goes here
 #- file drivers/clk/analogbits/Kconfig goes here
 #- file drivers/clk/baikal-t1/Kconfig goes here
@@ -1144,11 +1148,16 @@ CLK_ICST arm=y arm64=y
 CLK_SP810=y
 CLK_VEXPRESS_OSC arm=m arm64=y
 
+#-
+#- *** FILE: drivers/clk/x86/Kconfig ***
+#-
+CLK_LGM_CGU all=y
+
 #-
 #- *** FILE: drivers/clk/xilinx/Kconfig ***
 #-
 XILINX_VCU all=m
-COMMON_CLK_XLNX_CLKWZRD arm=m arm64=m
+COMMON_CLK_XLNX_CLKWZRD all=m
 
 #-
 #- *** FILE: drivers/clocksource/Kconfig ***
@@ -1331,6 +1340,8 @@ CPU_FREQ_GOV_ONDEMAND all=m
 CPU_FREQ_GOV_CONSERVATIVE all=m
 CPU_FREQ_GOV_SCHEDUTIL all=y
 #- CPU frequency scaling drivers
+CPUFREQ_DT all=m
+CPUFREQ_DT_PLATDEV all=m
 #- file drivers/cpufreq/Kconfig.x86 goes here
 #- file drivers/cpufreq/Kconfig.arm goes here
 #- file drivers/cpufreq/Kconfig.powerpc goes here
@@ -1393,7 +1404,7 @@ CRYPTO_DEV_ROCKCHIP_DEBUG arm64=n
 #- file drivers/crypto/virtio/Kconfig goes here
 #- file drivers/crypto/stm32/Kconfig goes here
 CRYPTO_DEV_SAFEXCEL all=m
-CRYPTO_DEV_CCREE arm=m arm64=m
+CRYPTO_DEV_CCREE all=m
 #- file drivers/crypto/hisilicon/Kconfig goes here
 #- file drivers/crypto/amlogic/Kconfig goes here
 #- file drivers/crypto/aspeed/Kconfig goes here
@@ -1534,9 +1545,9 @@ ALTERA_MSGDMA all=m
 AMBA_PL08X arm=n arm64=n
 BCM_SBA_RAID arm64=m
 DMA_BCM2835 arm=m arm64=m
-DW_AXI_DMAC arm=m arm64=m
+DW_AXI_DMAC all=m
 FSL_DMA ppc=y ppc64=y
-FSL_EDMA arm=m arm64=m
+FSL_EDMA all=m
 FSL_QDMA arm=m arm64=m
 HISI_DMA arm64=m
 INTEL_IDMA64 all=m
@@ -1650,8 +1661,6 @@ EDAC_PND2 all=m
 EDAC_IGEN6 all=m
 EDAC_PASEMI ppc64=m
 EDAC_CELL ppc64=m
-EDAC_AMD8131 powerpc=m
-EDAC_AMD8111 powerpc=m
 EDAC_THUNDERX arm64=m
 EDAC_ARMADA_XP arm=y
 EDAC_XGENE arm64=m
@@ -1715,7 +1724,6 @@ RASPBERRYPI_FIRMWARE arm=y arm64=y
 FW_CFG_SYSFS all=m
 FW_CFG_SYSFS_CMDLINE all=y
 SYSFB_SIMPLEFB all=y
-IMX_SCMI_MISC_DRV all=m
 TRUSTED_FOUNDATIONS arm=n
 TURRIS_MOX_RWTM arm=m
 #- file drivers/firmware/arm_ffa/Kconfig goes here
@@ -1800,7 +1808,7 @@ GOOGLE_VPD all=m
 #-
 #- *** FILE: drivers/firmware/imx/Kconfig ***
 #-
-IMX_SCMI_MISC_DRV arm=m arm64=m
+IMX_SCMI_MISC_DRV all=m
 
 #-
 #- *** FILE: drivers/firmware/meson/Kconfig ***
@@ -1822,19 +1830,19 @@ ARM_SMCCC_SOC_ID arm=y arm64=y
 #-
 FPGA all=m
 ALTERA_PR_IP_CORE all=m
-ALTERA_PR_IP_CORE_PLAT arm=m arm64=m
+ALTERA_PR_IP_CORE_PLAT all=m
 FPGA_MGR_ALTERA_PS_SPI all=m
 FPGA_MGR_ALTERA_CVP all=m
 FPGA_MGR_ZYNQ_FPGA all=m
 FPGA_MGR_XILINX_SELECTMAP all=m
 FPGA_MGR_XILINX_SPI all=m
-FPGA_MGR_ICE40_SPI arm=m arm64=m
+FPGA_MGR_ICE40_SPI all=m
 FPGA_MGR_MACHXO2_SPI all=m
 FPGA_BRIDGE all=m
 ALTERA_FREEZE_BRIDGE all=m
 XILINX_PR_DECOUPLER all=m
 FPGA_REGION all=m
-OF_FPGA_REGION arm=m arm64=m
+OF_FPGA_REGION all=m
 FPGA_DFL all=m
 FPGA_DFL_FME all=m
 FPGA_DFL_FME_MGR all=m
@@ -1852,15 +1860,15 @@ FPGA_MGR_LATTICE_SYSCONFIG_SPI all=m
 #- *** FILE: drivers/fsi/Kconfig ***
 #-
 FSI all=m
-FSI_NEW_DEV_NODE arm=n arm64=n
+FSI_NEW_DEV_NODE all=y
 FSI_MASTER_GPIO all=m
 FSI_MASTER_HUB all=m
-FSI_MASTER_ASPEED arm=m arm64=m
-FSI_MASTER_I2CR arm=m arm64=m
+FSI_MASTER_ASPEED all=m
+FSI_MASTER_I2CR all=m
 FSI_SCOM all=m
-FSI_SBEFIFO arm=m arm64=m
-FSI_OCC arm=m arm64=m
-I2CR_SCOM arm=m arm64=m
+FSI_SBEFIFO all=m
+FSI_OCC all=m
+I2CR_SCOM all=m
 
 #-
 #- *** FILE: drivers/gnss/Kconfig ***
@@ -1879,32 +1887,33 @@ GPIOLIB_FASTPATH_LIMIT all=512
 DEBUG_GPIO all=n
 GPIO_SYSFS all=y
 GPIO_CDEV_V1 all=y
-GPIO_74XX_MMIO arm=m arm64=m
-GPIO_ALTERA arm=m arm64=m
+GPIO_74XX_MMIO all=m
+GPIO_ALTERA all=m
 GPIO_AMDPT all=m
 GPIO_RASPBERRYPI_EXP arm=m arm64=m
 GPIO_BRCMSTB arm=m arm64=m
-GPIO_CADENCE arm=m arm64=m
+GPIO_CADENCE all=m
 GPIO_DWAPB all=m
 GPIO_EXAR all=m
-GPIO_FTGPIO010 arm=n arm64=n
+GPIO_FTGPIO010 all=y
 GPIO_GENERIC_PLATFORM all=m
 GPIO_GRANITERAPIDS all=m
-GPIO_GRGPIO arm=m arm64=m
+GPIO_GRGPIO all=m
 GPIO_HISI arm64=m
-GPIO_HLWD arm=m arm64=m
+GPIO_HLWD all=m
 GPIO_ICH all=m
-GPIO_LOGICVC arm=m arm64=m
+GPIO_LOGICVC all=m
 GPIO_MB86S7X all=m
 GPIO_MENZ127 all=m
 GPIO_MPC8XXX arm=n
 GPIO_PL061 arm=m arm64=y
+GPIO_POLARFIRE_SOC all=y
 GPIO_ROCKCHIP arm64=m
 GPIO_SAMA5D2_PIOBU arm=m arm64=m
-GPIO_SIFIVE arm=n arm64=n
+GPIO_SIFIVE all=m
 GPIO_SIOX all=m
-GPIO_SYSCON arm=m arm64=m
-GPIO_WCD934X arm=m arm64=m
+GPIO_SYSCON all=m
+GPIO_WCD934X all=m
 GPIO_XGENE arm64=y
 GPIO_XILINX all=m
 GPIO_ZEVIO arm=n
@@ -1921,10 +1930,10 @@ GPIO_SCH311X all=m
 GPIO_TS5500 all=m
 GPIO_WINBOND all=m
 GPIO_WS16C48 all=m
-GPIO_ADNP arm=m arm64=m
+GPIO_ADNP all=m
 GPIO_FXL6408 all=m
 GPIO_DS4520 all=m
-GPIO_GW_PLD arm=m arm64=m
+GPIO_GW_PLD all=m
 GPIO_MAX7300 all=m
 GPIO_MAX732X all=m
 GPIO_PCA953X all=m
@@ -1933,9 +1942,10 @@ GPIO_PCA9570 all=m
 GPIO_PCF857X all=m
 GPIO_TPIC2810 all=m
 GPIO_TS4900 all=m
-GPIO_ADP5585 arm=m arm64=m
+GPIO_ADP5585 all=m
 GPIO_ARIZONA all=m
 GPIO_BD9571MWV all=m
+GPIO_CGBC all=m
 GPIO_CROS_EC all=m
 GPIO_CS5535 all=m
 GPIO_DA9052 all=m
@@ -1947,15 +1957,15 @@ GPIO_KEMPLD all=m
 GPIO_LJCA all=m
 GPIO_LP3943 all=m
 GPIO_LP873X all=m
-GPIO_LP87565 arm=m arm64=m
+GPIO_LP87565 all=m
 GPIO_MADERA all=m
-GPIO_MAX77650 arm=m arm64=m
+GPIO_MAX77650 all=m
 GPIO_SL28CPLD all=m
 GPIO_STMPE all=y
 GPIO_TIMBERDALE all=y
 GPIO_TPS65086 all=m
 GPIO_TPS65218 all=m
-GPIO_TPS65219 arm=m arm64=m
+GPIO_TPS65219 all=m
 GPIO_TPS65912 all=m
 GPIO_TPS68470 all=m
 GPIO_TQMX86 all=m
@@ -1973,14 +1983,16 @@ GPIO_PCH all=m
 GPIO_PCI_IDIO_16 all=m
 GPIO_PCIE_IDIO_24 all=m
 GPIO_RDC321X all=m
+GPIO_SODAVILLE all=y
 GPIO_74X164 all=m
 GPIO_MAX3191X all=m
 GPIO_MAX7301 all=m
 GPIO_MC33880 all=m
 GPIO_PISOSR all=m
 GPIO_XRA1403 all=m
-GPIO_MOXTET arm=m arm64=m
+GPIO_MOXTET all=m
 GPIO_VIPERBOARD all=m
+GPIO_MPSSE all=m
 GPIO_AGGREGATOR all=m
 GPIO_LATCH all=m
 GPIO_MOCKUP all=m
@@ -2105,7 +2117,7 @@ DRM_MALI_DISPLAY arm=m arm64=m
 #-
 #- *** FILE: drivers/gpu/drm/arm/display/Kconfig ***
 #-
-DRM_KOMEDA arm=m arm64=m
+DRM_KOMEDA all=m
 
 #-
 #- *** FILE: drivers/gpu/drm/armada/Kconfig ***
@@ -2125,40 +2137,42 @@ DRM_ATMEL_HLCDC arm=m
 #-
 #- *** FILE: drivers/gpu/drm/bridge/Kconfig ***
 #-
-DRM_CHIPONE_ICN6211 arm=m arm64=m
-DRM_CHRONTEL_CH7033 arm=m arm64=m
-DRM_CROS_EC_ANX7688 arm=m arm64=m
-DRM_DISPLAY_CONNECTOR arm=m arm64=m
+DRM_CHIPONE_ICN6211 all=m
+DRM_CHRONTEL_CH7033 all=m
+DRM_CROS_EC_ANX7688 all=m
+DRM_DISPLAY_CONNECTOR all=m
 DRM_FSL_LDB arm=m arm64=m
-DRM_ITE_IT6505 arm=m arm64=m
-DRM_LONTIUM_LT8912B arm=m arm64=m
-DRM_LONTIUM_LT9211 arm=m arm64=m
-DRM_LONTIUM_LT9611 arm=m arm64=m
-DRM_LONTIUM_LT9611UXC arm=m arm64=m
-DRM_ITE_IT66121 arm=m arm64=m
-DRM_LVDS_CODEC arm=m arm64=m
-DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW arm=m arm64=m
+DRM_ITE_IT6263 all=m
+DRM_ITE_IT6505 all=m
+DRM_LONTIUM_LT8912B all=m
+DRM_LONTIUM_LT9211 all=m
+DRM_LONTIUM_LT9611 all=m
+DRM_LONTIUM_LT9611UXC all=m
+DRM_ITE_IT66121 all=m
+DRM_LVDS_CODEC all=m
+DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW all=m
 DRM_MICROCHIP_LVDS_SERIALIZER arm=m
-DRM_NWL_MIPI_DSI arm=m arm64=m
-DRM_NXP_PTN3460 arm=m arm64=m
-DRM_PARADE_PS8622 arm=m arm64=m
-DRM_PARADE_PS8640 arm=m arm64=m
-DRM_SAMSUNG_DSIM arm=m arm64=m
-DRM_SIL_SII8620 arm=m arm64=m
-DRM_SII902X arm=m arm64=m
-DRM_SII9234 arm=m arm64=m
-DRM_SIMPLE_BRIDGE arm=m arm64=m
-DRM_THINE_THC63LVD1024 arm=m arm64=m
-DRM_TOSHIBA_TC358762 arm=m arm64=m
-DRM_TOSHIBA_TC358764 arm=m arm64=m
-DRM_TOSHIBA_TC358767 arm=m arm64=m
-DRM_TOSHIBA_TC358768 arm=m arm64=m
-DRM_TOSHIBA_TC358775 arm=m arm64=m
-DRM_TI_DLPC3433 arm=m arm64=m
-DRM_TI_TFP410 arm=m arm64=m
-DRM_TI_SN65DSI83 arm=m arm64=m
-DRM_TI_SN65DSI86 arm=m arm64=m
-DRM_TI_TPD12S015 arm=m arm64=m
+DRM_NWL_MIPI_DSI all=m
+DRM_NXP_PTN3460 all=m
+DRM_PARADE_PS8622 all=m
+DRM_PARADE_PS8640 all=m
+DRM_SAMSUNG_DSIM all=m
+DRM_SIL_SII8620 all=m
+DRM_SII902X all=m
+DRM_SII9234 all=m
+DRM_SIMPLE_BRIDGE all=m
+DRM_THINE_THC63LVD1024 all=m
+DRM_TOSHIBA_TC358762 all=m
+DRM_TOSHIBA_TC358764 all=m
+DRM_TOSHIBA_TC358767 all=m
+DRM_TOSHIBA_TC358768 all=m
+DRM_TOSHIBA_TC358775 all=m
+DRM_TI_DLPC3433 all=m
+DRM_TI_TDP158 all=m
+DRM_TI_TFP410 all=m
+DRM_TI_SN65DSI83 all=m
+DRM_TI_SN65DSI86 all=m
+DRM_TI_TPD12S015 all=m
 #- file drivers/gpu/drm/bridge/analogix/Kconfig goes here
 #- file drivers/gpu/drm/bridge/adv7511/Kconfig goes here
 #- file drivers/gpu/drm/bridge/cadence/Kconfig goes here
@@ -2169,22 +2183,22 @@ DRM_TI_TPD12S015 arm=m arm64=m
 #- *** FILE: drivers/gpu/drm/bridge/adv7511/Kconfig ***
 #-
 DRM_I2C_ADV7511 all=m
-DRM_I2C_ADV7511_AUDIO arm=n arm64=y
-DRM_I2C_ADV7511_CEC arm=y arm64=y
+DRM_I2C_ADV7511_AUDIO all=y
+DRM_I2C_ADV7511_CEC all=y
 
 #-
 #- *** FILE: drivers/gpu/drm/bridge/analogix/Kconfig ***
 #-
-DRM_ANALOGIX_ANX6345 arm=m arm64=m
+DRM_ANALOGIX_ANX6345 all=m
 DRM_ANALOGIX_ANX78XX all=m
-DRM_ANALOGIX_ANX7625 arm=m arm64=m
+DRM_ANALOGIX_ANX7625 all=m
 
 #-
 #- *** FILE: drivers/gpu/drm/bridge/cadence/Kconfig ***
 #-
-DRM_CDNS_DSI arm=m arm64=m
-DRM_CDNS_DSI_J721E arm=y arm64=y
-DRM_CDNS_MHDP8546 arm=m arm64=m
+DRM_CDNS_DSI all=m
+DRM_CDNS_DSI_J721E all=y
+DRM_CDNS_MHDP8546 all=m
 
 #-
 #- *** FILE: drivers/gpu/drm/bridge/synopsys/Kconfig ***
@@ -2294,7 +2308,7 @@ DRM_LIMA arm=m arm64=m
 #-
 #- *** FILE: drivers/gpu/drm/logicvc/Kconfig ***
 #-
-DRM_LOGICVC arm=m arm64=m
+DRM_LOGICVC all=m
 
 #-
 #- *** FILE: drivers/gpu/drm/loongson/Kconfig ***
@@ -2355,107 +2369,111 @@ OMAP2_DSS_SLEEP_AFTER_VENC_RESET arm=y
 #-
 #- *** FILE: drivers/gpu/drm/panel/Kconfig ***
 #-
-DRM_PANEL_ABT_Y030XX067A arm=m arm64=m
-DRM_PANEL_ARM_VERSATILE arm=m arm64=m
-DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 arm=m arm64=m
+DRM_PANEL_ABT_Y030XX067A all=m
+DRM_PANEL_ARM_VERSATILE all=m
+DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 all=m
 DRM_PANEL_AUO_A030JTN01 all=m
-DRM_PANEL_BOE_BF060Y8M_AJ0 arm=m arm64=m
-DRM_PANEL_BOE_HIMAX8279D arm=m arm64=m
-DRM_PANEL_BOE_TH101MB31UIG002_28A arm=m arm64=m
-DRM_PANEL_BOE_TV101WUM_NL6 arm=m arm64=m
-DRM_PANEL_BOE_TV101WUM_LL2 arm=m arm64=m
-DRM_PANEL_EBBG_FT8719 arm=m arm64=m
-DRM_PANEL_ELIDA_KD35T133 arm=m arm64=m
-DRM_PANEL_FEIXIN_K101_IM2BA02 arm=m arm64=m
-DRM_PANEL_FEIYANG_FY07024DI26A30D arm=m arm64=m
-DRM_PANEL_DSI_CM arm=m arm64=m
-DRM_PANEL_LVDS arm=m arm64=m
-DRM_PANEL_HIMAX_HX83102 arm=m arm64=m
-DRM_PANEL_HIMAX_HX83112A arm=m arm64=m
-DRM_PANEL_HIMAX_HX8394 arm=m arm64=m
-DRM_PANEL_ILITEK_IL9322 arm=m arm64=m
+DRM_PANEL_BOE_BF060Y8M_AJ0 all=m
+DRM_PANEL_BOE_HIMAX8279D all=m
+DRM_PANEL_BOE_TH101MB31UIG002_28A all=m
+DRM_PANEL_BOE_TV101WUM_NL6 all=m
+DRM_PANEL_BOE_TV101WUM_LL2 all=m
+DRM_PANEL_EBBG_FT8719 all=m
+DRM_PANEL_ELIDA_KD35T133 all=m
+DRM_PANEL_FEIXIN_K101_IM2BA02 all=m
+DRM_PANEL_FEIYANG_FY07024DI26A30D all=m
+DRM_PANEL_DSI_CM all=m
+DRM_PANEL_LVDS all=m
+DRM_PANEL_HIMAX_HX83102 all=m
+DRM_PANEL_HIMAX_HX83112A all=m
+DRM_PANEL_HIMAX_HX8394 all=m
+DRM_PANEL_ILITEK_IL9322 all=m
 DRM_PANEL_ILITEK_ILI9341 all=m
-DRM_PANEL_ILITEK_ILI9805 arm=m arm64=m
-DRM_PANEL_ILITEK_ILI9806E arm=m arm64=m
-DRM_PANEL_ILITEK_ILI9881C arm=m arm64=m
-DRM_PANEL_ILITEK_ILI9882T arm=m arm64=m
-DRM_PANEL_INNOLUX_EJ030NA arm=m arm64=m
-DRM_PANEL_INNOLUX_P079ZCA arm=m arm64=m
-DRM_PANEL_JADARD_JD9365DA_H3 arm=m arm64=m
-DRM_PANEL_JDI_LPM102A188A arm=m arm64=m
-DRM_PANEL_JDI_LT070ME05000 arm=m arm64=m
-DRM_PANEL_JDI_R63452 arm=m arm64=m
-DRM_PANEL_KHADAS_TS050 arm=m arm64=m
-DRM_PANEL_KINGDISPLAY_KD097D04 arm=m arm64=m
-DRM_PANEL_LEADTEK_LTK050H3146W arm=m arm64=m
-DRM_PANEL_LEADTEK_LTK500HD1829 arm=m arm64=m
-DRM_PANEL_LINCOLNTECH_LCD197 arm=m arm64=m
-DRM_PANEL_LG_LB035Q02 arm=m arm64=m
-DRM_PANEL_LG_LG4573 arm=m arm64=m
-DRM_PANEL_LG_SW43408 arm=m arm64=m
-DRM_PANEL_MAGNACHIP_D53E6EA8966 arm=m arm64=m
-DRM_PANEL_MANTIX_MLAF057WE51 arm=m arm64=m
-DRM_PANEL_NEC_NL8048HL11 arm=m arm64=m
-DRM_PANEL_NEWVISION_NV3051D arm=m arm64=m
-DRM_PANEL_NEWVISION_NV3052C arm=m arm64=m
-DRM_PANEL_NOVATEK_NT35510 arm=m arm64=m
-DRM_PANEL_NOVATEK_NT35560 arm=m arm64=m
-DRM_PANEL_NOVATEK_NT35950 arm=m arm64=m
-DRM_PANEL_NOVATEK_NT36523 arm=m arm64=m
-DRM_PANEL_NOVATEK_NT36672A arm=m arm64=m
-DRM_PANEL_NOVATEK_NT36672E arm=m arm64=m
-DRM_PANEL_NOVATEK_NT39016 arm=m arm64=m
-DRM_PANEL_OLIMEX_LCD_OLINUXINO arm=m arm64=m
+DRM_PANEL_ILITEK_ILI9805 all=m
+DRM_PANEL_ILITEK_ILI9806E all=m
+DRM_PANEL_ILITEK_ILI9881C all=m
+DRM_PANEL_ILITEK_ILI9882T all=m
+DRM_PANEL_INNOLUX_EJ030NA all=m
+DRM_PANEL_INNOLUX_P079ZCA all=m
+DRM_PANEL_JADARD_JD9365DA_H3 all=m
+DRM_PANEL_JDI_LPM102A188A all=m
+DRM_PANEL_JDI_LT070ME05000 all=m
+DRM_PANEL_JDI_R63452 all=m
+DRM_PANEL_KHADAS_TS050 all=m
+DRM_PANEL_KINGDISPLAY_KD097D04 all=m
+DRM_PANEL_LEADTEK_LTK050H3146W all=m
+DRM_PANEL_LEADTEK_LTK500HD1829 all=m
+DRM_PANEL_LINCOLNTECH_LCD197 all=m
+DRM_PANEL_LG_LB035Q02 all=m
+DRM_PANEL_LG_LG4573 all=m
+DRM_PANEL_LG_SW43408 all=m
+DRM_PANEL_MAGNACHIP_D53E6EA8966 all=m
+DRM_PANEL_MANTIX_MLAF057WE51 all=m
+DRM_PANEL_NEC_NL8048HL11 all=m
+DRM_PANEL_NEWVISION_NV3051D all=m
+DRM_PANEL_NEWVISION_NV3052C all=m
+DRM_PANEL_NOVATEK_NT35510 all=m
+DRM_PANEL_NOVATEK_NT35560 all=m
+DRM_PANEL_NOVATEK_NT35950 all=m
+DRM_PANEL_NOVATEK_NT36523 all=m
+DRM_PANEL_NOVATEK_NT36672A all=m
+DRM_PANEL_NOVATEK_NT36672E all=m
+DRM_PANEL_NOVATEK_NT39016 all=m
+DRM_PANEL_OLIMEX_LCD_OLINUXINO all=m
 DRM_PANEL_ORISETECH_OTA5601A all=m
-DRM_PANEL_ORISETECH_OTM8009A arm=m arm64=m
-DRM_PANEL_OSD_OSD101T2587_53TS arm=m arm64=m
-DRM_PANEL_PANASONIC_VVX10F034N00 arm=m arm64=m
+DRM_PANEL_ORISETECH_OTM8009A all=m
+DRM_PANEL_OSD_OSD101T2587_53TS all=m
+DRM_PANEL_PANASONIC_VVX10F034N00 all=m
 DRM_PANEL_RASPBERRYPI_TOUCHSCREEN all=m
-DRM_PANEL_RAYDIUM_RM67191 arm=m arm64=m
-DRM_PANEL_RAYDIUM_RM68200 arm=m arm64=m
-DRM_PANEL_RAYDIUM_RM692E5 arm=m arm64=m
-DRM_PANEL_RAYDIUM_RM69380 arm=m arm64=m
-DRM_PANEL_RONBO_RB070D30 arm=m arm64=m
-DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 arm=m arm64=m
-DRM_PANEL_SAMSUNG_ATNA33XC20 arm=m arm64=m
-DRM_PANEL_SAMSUNG_DB7430 arm=m arm64=m
-DRM_PANEL_SAMSUNG_LD9040 arm=m arm64=m
-DRM_PANEL_SAMSUNG_S6E3FA7 arm=m arm64=m
-DRM_PANEL_SAMSUNG_S6D16D0 arm=m arm64=m
-DRM_PANEL_SAMSUNG_S6D27A1 arm=m arm64=m
-DRM_PANEL_SAMSUNG_S6D7AA0 arm=m arm64=m
-DRM_PANEL_SAMSUNG_S6E3HA2 arm=m arm64=m
-DRM_PANEL_SAMSUNG_S6E63J0X03 arm=m arm64=m
-DRM_PANEL_SAMSUNG_S6E63M0 arm=m arm64=m
-DRM_PANEL_SAMSUNG_S6E63M0_SPI arm=m arm64=m
-DRM_PANEL_SAMSUNG_S6E63M0_DSI arm=m arm64=m
-DRM_PANEL_SAMSUNG_S6E8AA0 arm=m arm64=m
-DRM_PANEL_SAMSUNG_SOFEF00 arm=m arm64=m
-DRM_PANEL_SEIKO_43WVF1G arm=m arm64=m
-DRM_PANEL_SHARP_LQ101R1SX01 arm=m arm64=m
-DRM_PANEL_SHARP_LS037V7DW01 arm=m arm64=m
-DRM_PANEL_SHARP_LS043T1LE01 arm=m arm64=m
-DRM_PANEL_SHARP_LS060T1SX01 arm=m arm64=m
-DRM_PANEL_SITRONIX_ST7701 arm=m arm64=m
-DRM_PANEL_SITRONIX_ST7703 arm=m arm64=m
-DRM_PANEL_SITRONIX_ST7789V arm=m arm64=m
-DRM_PANEL_SONY_ACX565AKM arm=m arm64=m
-DRM_PANEL_SONY_TD4353_JDI arm=m arm64=m
-DRM_PANEL_SONY_TULIP_TRULY_NT35521 arm=m arm64=m
-DRM_PANEL_STARTEK_KD070FHFID015 arm=m arm64=m
-DRM_PANEL_EDP arm=m arm64=m
-DRM_PANEL_SIMPLE arm=m arm64=m
-DRM_PANEL_SYNAPTICS_R63353 arm=m arm64=m
-DRM_PANEL_TDO_TL070WSH30 arm=m arm64=m
-DRM_PANEL_TPO_TD028TTEC1 arm=m arm64=m
-DRM_PANEL_TPO_TD043MTEA1 arm=m arm64=m
-DRM_PANEL_TPO_TPG110 arm=m arm64=m
-DRM_PANEL_TRULY_NT35597_WQXGA arm=m arm64=m
-DRM_PANEL_VISIONOX_R66451 arm=m arm64=m
-DRM_PANEL_VISIONOX_RM69299 arm=m arm64=m
-DRM_PANEL_VISIONOX_VTDR6130 arm=m arm64=m
+DRM_PANEL_RAYDIUM_RM67191 all=m
+DRM_PANEL_RAYDIUM_RM68200 all=m
+DRM_PANEL_RAYDIUM_RM692E5 all=m
+DRM_PANEL_RAYDIUM_RM69380 all=m
+DRM_PANEL_RONBO_RB070D30 all=m
+DRM_PANEL_SAMSUNG_AMS581VF01 all=m
+DRM_PANEL_SAMSUNG_AMS639RQ08 all=m
+DRM_PANEL_SAMSUNG_S6E88A0_AMS427AP24 all=m
+DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 all=m
+DRM_PANEL_SAMSUNG_ATNA33XC20 all=m
+DRM_PANEL_SAMSUNG_DB7430 all=m
+DRM_PANEL_SAMSUNG_LD9040 all=m
+DRM_PANEL_SAMSUNG_S6E3FA7 all=m
+DRM_PANEL_SAMSUNG_S6D16D0 all=m
+DRM_PANEL_SAMSUNG_S6D27A1 all=m
+DRM_PANEL_SAMSUNG_S6D7AA0 all=m
+DRM_PANEL_SAMSUNG_S6E3HA2 all=m
+DRM_PANEL_SAMSUNG_S6E3HA8 all=m
+DRM_PANEL_SAMSUNG_S6E63J0X03 all=m
+DRM_PANEL_SAMSUNG_S6E63M0 all=m
+DRM_PANEL_SAMSUNG_S6E63M0_SPI all=m
+DRM_PANEL_SAMSUNG_S6E63M0_DSI all=m
+DRM_PANEL_SAMSUNG_S6E8AA0 all=m
+DRM_PANEL_SAMSUNG_SOFEF00 all=m
+DRM_PANEL_SEIKO_43WVF1G all=m
+DRM_PANEL_SHARP_LQ101R1SX01 all=m
+DRM_PANEL_SHARP_LS037V7DW01 all=m
+DRM_PANEL_SHARP_LS043T1LE01 all=m
+DRM_PANEL_SHARP_LS060T1SX01 all=m
+DRM_PANEL_SITRONIX_ST7701 all=m
+DRM_PANEL_SITRONIX_ST7703 all=m
+DRM_PANEL_SITRONIX_ST7789V all=m
+DRM_PANEL_SONY_ACX565AKM all=m
+DRM_PANEL_SONY_TD4353_JDI all=m
+DRM_PANEL_SONY_TULIP_TRULY_NT35521 all=m
+DRM_PANEL_STARTEK_KD070FHFID015 all=m
+DRM_PANEL_EDP all=m
+DRM_PANEL_SIMPLE all=m
+DRM_PANEL_SYNAPTICS_R63353 all=m
+DRM_PANEL_TDO_TL070WSH30 all=m
+DRM_PANEL_TPO_TD028TTEC1 all=m
+DRM_PANEL_TPO_TD043MTEA1 all=m
+DRM_PANEL_TPO_TPG110 all=m
+DRM_PANEL_TRULY_NT35597_WQXGA all=m
+DRM_PANEL_VISIONOX_R66451 all=m
+DRM_PANEL_VISIONOX_RM69299 all=m
+DRM_PANEL_VISIONOX_VTDR6130 all=m
 DRM_PANEL_WIDECHIPS_WS2401 all=m
-DRM_PANEL_XINPENG_XPP055C272 arm=m arm64=m
+DRM_PANEL_XINPENG_XPP055C272 all=m
 
 #-
 #- *** FILE: drivers/gpu/drm/panfrost/Kconfig ***
@@ -2538,7 +2556,7 @@ DRM_TILCDC arm=m
 #-
 #- *** FILE: drivers/gpu/drm/tiny/Kconfig ***
 #-
-DRM_ARCPGU arm=m arm64=m
+DRM_ARCPGU all=m
 DRM_BOCHS all=m
 DRM_CIRRUS_QEMU all=m
 DRM_GM12U320 all=m
@@ -2551,6 +2569,7 @@ TINYDRM_ILI9341 all=m
 TINYDRM_ILI9486 all=m
 TINYDRM_MI0283QT all=m
 TINYDRM_REPAPER all=m
+TINYDRM_SHARP_MEMORY all=m
 TINYDRM_ST7586 all=m
 TINYDRM_ST7735R all=m
 
@@ -2680,6 +2699,7 @@ HID_VIVALDI all=m
 HID_GT683R all=m
 HID_KEYTOUCH all=m
 HID_KYE all=m
+HID_KYSONA all=m
 HID_UCLOGIC all=m
 HID_WALTOP all=m
 HID_VIEWSONIC all=m
@@ -2794,8 +2814,8 @@ HID_BPF all=y
 I2C_HID all=m
 I2C_HID_ACPI all=m
 I2C_HID_OF all=m
-I2C_HID_OF_ELAN arm=m arm64=m
-I2C_HID_OF_GOODIX arm=m arm64=m
+I2C_HID_OF_ELAN all=m
+I2C_HID_OF_GOODIX all=m
 
 #-
 #- *** FILE: drivers/hid/intel-ish-hid/Kconfig ***
@@ -2899,7 +2919,7 @@ SENSORS_I5K_AMB all=m
 SENSORS_F71805F all=m
 SENSORS_F71882FG all=m
 SENSORS_F75375S all=m
-SENSORS_GSC arm=m arm64=m
+SENSORS_GSC all=m
 SENSORS_MC13783_ADC all=m
 SENSORS_FSCHMD all=m
 SENSORS_FTSTEUTATES all=m
@@ -2916,6 +2936,7 @@ SENSORS_IBMPEX all=m
 SENSORS_IIO_HWMON all=m
 SENSORS_I5500 all=m
 SENSORS_CORETEMP all=m
+SENSORS_ISL28022 all=m
 SENSORS_IT87 all=m
 SENSORS_JC42 all=m
 SENSORS_POWERZ all=m
@@ -2981,6 +3002,7 @@ SENSORS_NTC_THERMISTOR all=m
 SENSORS_NCT6683 all=m
 SENSORS_NCT6775 all=m
 SENSORS_NCT6775_I2C all=m
+SENSORS_NCT7363 all=m
 SENSORS_NCT7802 all=m
 SENSORS_NCT7904 all=m
 SENSORS_NPCM7XX all=m
@@ -3069,7 +3091,7 @@ SENSORS_HP_WMI all=m
 #- *** FILE: drivers/hwmon/occ/Kconfig ***
 #-
 SENSORS_OCC_P8_I2C all=m
-SENSORS_OCC_P9_SBE arm=m arm64=m
+SENSORS_OCC_P9_SBE all=m
 
 #-
 #- *** FILE: drivers/hwmon/peci/Kconfig ***
@@ -3220,15 +3242,14 @@ I2C_ALI1535 all=m
 I2C_ALI1563 all=m
 I2C_ALI15X3 all=m
 I2C_AMD756 all=m sparc=n
-I2C_AMD756_S4882 all=m sparc=
 I2C_AMD8111 all=m
 I2C_AMD_MP2 all=m
+I2C_AMD_ASF all=m
 I2C_I801 all=m
 I2C_ISCH all=m
 I2C_ISMT all=m
 I2C_PIIX4 all=m sparc=n
 I2C_NFORCE2 all=m
-I2C_NFORCE2_S4985 all=m
 I2C_NVIDIA_GPU all=m
 I2C_SIS5595 all=m
 I2C_SIS630 all=m
@@ -3246,6 +3267,7 @@ I2C_BCM2835 arm=m arm64=m
 I2C_BRCMSTB arm=m arm64=m
 I2C_CADENCE arm64=m
 I2C_CBUS_GPIO all=m
+I2C_CGBC all=m
 I2C_DESIGNWARE_CORE all=m
 I2C_DESIGNWARE_SLAVE all=y
 I2C_DESIGNWARE_PLATFORM all=m
@@ -3270,7 +3292,7 @@ I2C_PCA_PLATFORM all=m
 I2C_PXA arm=m
 I2C_PXA_PCI all=n
 I2C_PXA_SLAVE arm=y
-I2C_RK3X arm=m arm64=m
+I2C_RK3X all=m
 I2C_SIMTEC all=m sparc=n
 I2C_THUNDERX arm64=m
 I2C_XILINX all=m
@@ -3291,23 +3313,23 @@ I2C_MLXCPLD all=m
 I2C_PCA_ISA all=m
 I2C_CROS_EC_TUNNEL all=m
 SCx200_ACB i386=m
-I2C_FSI arm=m arm64=m
+I2C_FSI all=m
 I2C_VIRTIO all=m
 
 #-
 #- *** FILE: drivers/i2c/muxes/Kconfig ***
 #-
-I2C_ARB_GPIO_CHALLENGE arm=m arm64=m
+I2C_ARB_GPIO_CHALLENGE all=m
 I2C_MUX_GPIO all=m
-I2C_MUX_GPMUX arm=m arm64=m
+I2C_MUX_GPMUX all=m
 I2C_MUX_LTC4306 all=m
 I2C_MUX_PCA9541 all=m
 I2C_MUX_PCA954x all=m
 I2C_MUX_PINCTRL all=m
 I2C_MUX_REG all=m
-I2C_DEMUX_PINCTRL arm=m arm64=m
+I2C_DEMUX_PINCTRL all=m
 I2C_MUX_MLXCPLD all=m
-I2C_MUX_MULE arm=m arm64=m
+I2C_MUX_MULE all=m
 
 #-
 #- *** FILE: drivers/i3c/Kconfig ***
@@ -3441,8 +3463,10 @@ AD7476 all=m
 AD7606 all=m
 AD7606_IFACE_PARALLEL all=m
 AD7606_IFACE_SPI all=m
+AD7625 all=m
 AD7766 all=m
 AD7768_1 all=m
+AD7779 all=m
 AD7780 all=m
 AD7791 all=m
 AD7793 all=m
@@ -3456,10 +3480,11 @@ ADI_AXI_ADC all=m
 AXP20X_ADC all=m
 AXP288_ADC all=m
 CC10001_ADC all=m
-CPCAP_ADC arm=m arm64=m
+CPCAP_ADC all=m
 DA9150_GPADC all=m
 DLN2_ADC all=m
 ENVELOPE_DETECTOR all=m
+GEHC_PMC_ADC all=m
 HI8435 all=m
 HX711 all=m
 INA2XX_ADC all=m
@@ -3495,11 +3520,11 @@ QCOM_PM8XXX_XOADC arm=m
 QCOM_SPMI_IADC all=m
 QCOM_SPMI_VADC all=m
 QCOM_SPMI_ADC5 all=m
-RN5T618_ADC arm=m arm64=m
+RN5T618_ADC all=m
 ROCKCHIP_SARADC arm64=m
 RICHTEK_RTQ6056 all=m
 SD_ADC_MODULATOR all=m
-STMPE_ADC arm=m arm64=m
+STMPE_ADC all=m
 TI_ADC081C all=m
 TI_ADC0832 all=m
 TI_ADC084S021 all=m
@@ -3603,6 +3628,7 @@ IIO_SSP_SENSORHUB all=m
 #-
 #- *** FILE: drivers/iio/dac/Kconfig ***
 #-
+AD3552R_HS all=m
 AD3552R all=m
 AD5064 all=m
 AD5360 all=m
@@ -3629,6 +3655,7 @@ AD5770R all=m
 AD5791 all=m
 AD7293 all=m
 AD7303 all=m
+AD8460 all=m
 AD8801 all=m
 CIO_DAC all=m
 DPOT_DAC all=m
@@ -3724,6 +3751,7 @@ ADIS16460 all=m
 ADIS16475 all=m
 ADIS16480 all=m
 #- file drivers/iio/imu/bmi160/Kconfig goes here
+#- file drivers/iio/imu/bmi270/Kconfig goes here
 #- file drivers/iio/imu/bmi323/Kconfig goes here
 #- file drivers/iio/imu/bno055/Kconfig goes here
 FXOS8700_I2C all=m
@@ -3731,6 +3759,7 @@ FXOS8700_SPI all=m
 KMX61 all=m
 #- file drivers/iio/imu/inv_icm42600/Kconfig goes here
 #- file drivers/iio/imu/inv_mpu6050/Kconfig goes here
+SMI240 all=m
 #- file drivers/iio/imu/st_lsm6dsx/Kconfig goes here
 #- file drivers/iio/imu/st_lsm9ds0/Kconfig goes here
 
@@ -3740,6 +3769,12 @@ KMX61 all=m
 BMI160_I2C all=m
 BMI160_SPI all=m
 
+#-
+#- *** FILE: drivers/iio/imu/bmi270/Kconfig ***
+#-
+BMI270_I2C all=m
+BMI270_SPI all=m
+
 #-
 #- *** FILE: drivers/iio/imu/bmi323/Kconfig ***
 #-
@@ -3838,6 +3873,7 @@ TSL4531 all=m
 US5182D all=m
 VCNL4000 all=m
 VCNL4035 all=m
+VEML3235 all=m
 VEML6030 all=m
 VEML6040 all=m
 VEML6070 all=m
@@ -3848,10 +3884,11 @@ ZOPT2201 all=m
 #-
 #- *** FILE: drivers/iio/magnetometer/Kconfig ***
 #-
-AF8133J arm=m arm64=m
+AF8133J all=m
 AK8974 all=m
 AK8975 all=m
 AK09911 all=m
+ALS31300 all=m
 BMC150_MAGN all=m
 BMC150_MAGN_I2C all=m
 BMC150_MAGN_SPI all=m
@@ -4291,8 +4328,8 @@ KEYBOARD_TM2_TOUCHKEY all=m
 KEYBOARD_TWL4030 powerpc=m
 KEYBOARD_XTKBD all=m
 KEYBOARD_CROS_EC all=m
-KEYBOARD_CAP11XX arm=m arm64=m
-KEYBOARD_BCM arm=m arm64=m
+KEYBOARD_CAP11XX all=m
+KEYBOARD_BCM all=m
 KEYBOARD_MTK_PMIC all=m
 KEYBOARD_CYPRESS_SF all=m
 
@@ -4307,7 +4344,7 @@ INPUT_AD714X_I2C all=m
 INPUT_AD714X_SPI all=m
 INPUT_ARIZONA_HAPTICS all=m
 INPUT_ATC260X_ONKEY all=m
-INPUT_ATMEL_CAPTOUCH arm=m arm64=m
+INPUT_ATMEL_CAPTOUCH all=m
 INPUT_BMA150 all=m
 INPUT_CS40L50_VIBRA all=m
 INPUT_E3X0_BUTTON all=m
@@ -4315,7 +4352,7 @@ INPUT_PCSPKR all=m
 INPUT_PM8XXX_VIBRATOR arm=m
 INPUT_PMIC8XXX_PWRKEY arm=m
 INPUT_SPARCSPKR sparc64=m
-INPUT_MAX77650_ONKEY arm=m arm64=m
+INPUT_MAX77650_ONKEY all=m
 INPUT_MAX77693_HAPTIC all=m
 INPUT_MC13783_PWRBUTTON all=m
 INPUT_MMA8450 all=m
@@ -4323,7 +4360,7 @@ INPUT_APANEL all=m
 INPUT_GPIO_BEEPER all=m
 INPUT_GPIO_DECODER all=m
 INPUT_GPIO_VIBRA all=m
-INPUT_CPCAP_PWRBUTTON arm=m arm64=m
+INPUT_CPCAP_PWRBUTTON all=m
 INPUT_WISTRON_BTNS i386=m
 INPUT_ATLAS_BTNS i386=m x86_64=m
 INPUT_ATI_REMOTE2 all=m sparc=n
@@ -4335,7 +4372,7 @@ INPUT_CM109 all=m
 INPUT_REGULATOR_HAPTIC all=m
 INPUT_RETU_PWRBUTTON all=m
 INPUT_TPS65218_PWRBUTTON all=m
-INPUT_TPS65219_PWRBUTTON arm=m arm64=m
+INPUT_TPS65219_PWRBUTTON all=m
 INPUT_AXP20X_PEK all=m
 INPUT_TWL4030_PWRBUTTON powerpc=m
 INPUT_UINPUT all=m sparc=n
@@ -4343,7 +4380,7 @@ INPUT_PCF50633_PMU all=m
 INPUT_PCF8574 all=m
 INPUT_PWM_BEEPER all=m
 INPUT_PWM_VIBRA all=m
-INPUT_RK805_PWRKEY arm=m arm64=m
+INPUT_RK805_PWRKEY all=m
 INPUT_GPIO_ROTARY_ENCODER all=m
 INPUT_DA7280_HAPTICS all=m
 INPUT_DA9052_ONKEY all=m
@@ -4432,7 +4469,7 @@ SERIO_XILINX_XPS_PS2 all=m
 SERIO_ALTERA_PS2 all=m
 SERIO_PS2MULT all=m
 SERIO_ARC_PS2 all=m
-SERIO_APBPS2 arm=m arm64=m
+SERIO_APBPS2 all=m
 SERIO_OLPC_APSP all=m
 HYPERV_KEYBOARD all=m
 SERIO_GPIO_PS2 all=m
@@ -4459,13 +4496,13 @@ TOUCHSCREEN_AD7879 all=m
 TOUCHSCREEN_AD7879_I2C all=m
 TOUCHSCREEN_AD7879_SPI all=m
 TOUCHSCREEN_ADC all=m
-TOUCHSCREEN_AR1021_I2C arm=m arm64=m
+TOUCHSCREEN_AR1021_I2C all=m
 TOUCHSCREEN_ATMEL_MXT all=m
 TOUCHSCREEN_ATMEL_MXT_T37 all=y
 TOUCHSCREEN_AUO_PIXCIR all=m
 TOUCHSCREEN_BU21013 all=m
 TOUCHSCREEN_BU21029 all=m
-TOUCHSCREEN_CHIPONE_ICN8318 arm=m arm64=m
+TOUCHSCREEN_CHIPONE_ICN8318 all=m
 TOUCHSCREEN_CHIPONE_ICN8505 all=m
 TOUCHSCREEN_CY8CTMA140 all=m
 TOUCHSCREEN_CY8CTMG110 all=m
@@ -4504,7 +4541,7 @@ TOUCHSCREEN_MSG2638 all=m
 TOUCHSCREEN_MTOUCH all=m
 TOUCHSCREEN_NOVATEK_NVT_TS all=m
 TOUCHSCREEN_IMAGIS all=m
-TOUCHSCREEN_IMX6UL_TSC arm=m arm64=m
+TOUCHSCREEN_IMX6UL_TSC all=m
 TOUCHSCREEN_INEXIO all=m
 TOUCHSCREEN_MK712 all=m sparc=n
 TOUCHSCREEN_HTCPEN all=m
@@ -4590,6 +4627,7 @@ IOMMU_DEFAULT_PASSTHROUGH all=y
 #- file drivers/iommu/amd/Kconfig goes here
 #- file drivers/iommu/intel/Kconfig goes here
 #- file drivers/iommu/iommufd/Kconfig goes here
+#- file drivers/iommu/riscv/Kconfig goes here
 IRQ_REMAP all=y
 ROCKCHIP_IOMMU arm64=y
 ARM_SMMU arm=m arm64=m
@@ -4639,11 +4677,11 @@ SERIAL_IPOCTAL all=m
 #-
 #- *** FILE: drivers/irqchip/Kconfig ***
 #-
-AL_FIC arm=n arm64=n
+AL_FIC all=y
 BRCMSTB_L2_IRQ arm=m arm64=m
 LAN966X_OIC all=m
 TS4800_IRQ all=m
-XILINX_INTC arm=n arm64=n
+XILINX_INTC all=y
 MESON_IRQ_GPIO arm64=m
 
 #-
@@ -4691,22 +4729,22 @@ LEDS_CLASS_FLASH all=m
 LEDS_CLASS_MULTICOLOR all=m
 LEDS_BRIGHTNESS_HW_CHANGED all=y
 #- LED drivers
-LEDS_AN30259A arm=m arm64=m
+LEDS_AN30259A all=m
 LEDS_APU all=m
 LEDS_AW200XX all=m
-LEDS_AW2013 arm=m arm64=m
-LEDS_BCM6328 arm=m arm64=m
-LEDS_BCM6358 arm=m arm64=m
-LEDS_CPCAP arm=m arm64=m
-LEDS_CR0014114 arm=m arm64=m
+LEDS_AW2013 all=m
+LEDS_BCM6328 all=m
+LEDS_BCM6358 all=m
+LEDS_CPCAP all=m
+LEDS_CR0014114 all=m
 LEDS_CROS_EC all=m
-LEDS_EL15203000 arm=m arm64=m
+LEDS_EL15203000 all=m
 LEDS_TURRIS_OMNIA arm=m
 LEDS_LM3530 all=m
 LEDS_LM3532 all=m
 LEDS_LM3533 all=m
 LEDS_LM3642 all=m
-LEDS_LM3692X arm=m arm64=m
+LEDS_LM3692X all=m
 LEDS_MT6323 all=m
 LEDS_NET48XX i386=m
 LEDS_WRAP i386=m
@@ -4717,11 +4755,11 @@ LEDS_GPIO all=m
 LEDS_LP3944 all=m
 LEDS_LP3952 all=m
 LEDS_LP50XX all=m
-LEDS_LP55XX_COMMON arm=m arm64=m
+LEDS_LP55XX_COMMON all=m
 LEDS_LP5521 all=m
 LEDS_LP5523 all=m
 LEDS_LP5562 all=m
-LEDS_LP5569 arm=m arm64=m
+LEDS_LP5569 all=m
 LEDS_LP8501 all=m
 LEDS_LP8860 all=m
 LEDS_CLEVO_MAIL all=m
@@ -4740,20 +4778,20 @@ LEDS_BD2606MVV all=m
 LEDS_BD2802 all=m
 LEDS_INTEL_SS4200 all=m
 LEDS_LT3593 all=m
-LEDS_MAX5970 arm=m arm64=m
+LEDS_MAX5970 all=m
 LEDS_MC13783 all=m
 LEDS_TCA6507 all=m
 LEDS_TLC591XX all=m
-LEDS_MAX77650 arm=m arm64=m
+LEDS_MAX77650 all=m
 LEDS_LM355x all=m
 LEDS_OT200 all=m
 LEDS_MENF21BMC all=m
 LEDS_IS31FL319X all=m
-LEDS_IS31FL32XX arm=m arm64=m
+LEDS_IS31FL32XX all=m
 #- LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
 LEDS_BLINKM all=m
 LEDS_BLINKM_MULTICOLOR all=y
-LEDS_SYSCON arm=y arm64=y
+LEDS_SYSCON all=y
 LEDS_PM8058 arm=m
 LEDS_MLXCPLD all=m
 LEDS_MLXREG all=m
@@ -4761,7 +4799,7 @@ LEDS_USER all=m
 LEDS_NIC78BX all=m
 LEDS_SPI_BYTE all=m
 LEDS_TI_LMU_COMMON all=m
-LEDS_LM3697 arm=m arm64=m
+LEDS_LM3697 all=m
 LEDS_LM36274 all=m
 LEDS_TPS6105X all=m
 #- file drivers/leds/blink/Kconfig goes here
@@ -4774,29 +4812,34 @@ LEDS_TPS6105X all=m
 #- Simple LED drivers
 #- file drivers/leds/simple/Kconfig goes here
 
+#-
+#- *** FILE: drivers/leds/blink/Kconfig ***
+#-
+LEDS_LGM all=m
+
 #-
 #- *** FILE: drivers/leds/flash/Kconfig ***
 #-
-LEDS_AAT1290 arm=m arm64=m
+LEDS_AAT1290 all=m
 LEDS_AS3645A all=m
-LEDS_KTD2692 arm=m arm64=m
+LEDS_KTD2692 all=m
 LEDS_LM3601X all=m
-LEDS_MAX77693 arm=m arm64=m
-LEDS_MT6360 arm=m arm64=m
+LEDS_MAX77693 all=m
+LEDS_MT6360 all=m
 LEDS_MT6370_FLASH all=m
-LEDS_RT4505 arm=m arm64=m
+LEDS_RT4505 all=m
 LEDS_RT8515 all=m
 LEDS_SGM3140 all=m
-LEDS_SY7802 arm=m arm64=m
+LEDS_SY7802 all=m
 
 #-
 #- *** FILE: drivers/leds/rgb/Kconfig ***
 #-
-LEDS_GROUP_MULTICOLOR arm=m arm64=m
+LEDS_GROUP_MULTICOLOR all=m
 LEDS_KTD202X all=m
-LEDS_NCP5623 arm=m arm64=m
+LEDS_NCP5623 all=m
 LEDS_PWM_MULTICOLOR all=m
-LEDS_QCOM_LPG arm=m arm64=m
+LEDS_QCOM_LPG all=m
 LEDS_MT6370_RGB all=m
 
 #-
@@ -4862,14 +4905,14 @@ MAILBOX all=y
 ARM_MHU arm=m arm64=m
 ARM_MHU_V2 arm=m arm64=m
 ARM_MHU_V3 arm=m arm64=m
-PLATFORM_MHU arm=m arm64=m
+PLATFORM_MHU all=m
 PL320_MBOX arm=n arm64=n
 ARMADA_37XX_RWTM_MBOX arm=m
 ROCKCHIP_MBOX arm64=y
 PCC all=y
 ALTERA_MBOX all=m
 BCM2835_MBOX arm=y arm64=y
-MAILBOX_TEST arm=m arm64=m
+MAILBOX_TEST all=m
 
 #-
 #- *** FILE: drivers/mcb/Kconfig ***
@@ -5163,11 +5206,11 @@ VIDEO_IMX283 all=m
 VIDEO_IMX290 all=m
 VIDEO_IMX296 all=m
 VIDEO_IMX319 all=m
-VIDEO_IMX334 arm=m arm64=m
-VIDEO_IMX335 arm=m arm64=m
+VIDEO_IMX334 all=m
+VIDEO_IMX335 all=m
 VIDEO_IMX355 all=m
-VIDEO_IMX412 arm=m arm64=m
-VIDEO_IMX415 arm=m arm64=m
+VIDEO_IMX412 all=m
+VIDEO_IMX415 all=m
 VIDEO_MT9M001 all=m
 VIDEO_MT9M111 all=m
 VIDEO_MT9M114 all=m
@@ -5189,8 +5232,8 @@ VIDEO_OV2680 all=m
 VIDEO_OV2685 all=m
 VIDEO_OV2740 all=m
 VIDEO_OV4689 all=m
-VIDEO_OV5640 arm=m arm64=m
-VIDEO_OV5645 arm=m arm64=m
+VIDEO_OV5640 all=m
+VIDEO_OV5645 all=m
 VIDEO_OV5647 all=m
 VIDEO_OV5648 all=m
 VIDEO_OV5670 all=m
@@ -5207,7 +5250,7 @@ VIDEO_OV7740 all=m
 VIDEO_OV8856 all=m
 VIDEO_OV8858 all=m
 VIDEO_OV8865 all=m
-VIDEO_OV9282 arm=m arm64=m
+VIDEO_OV9282 all=m
 VIDEO_OV9640 all=m
 VIDEO_OV9650 all=m
 VIDEO_OV9734 all=m
@@ -5217,7 +5260,7 @@ VIDEO_RJ54N1 all=m
 VIDEO_S5C73M3 all=m
 VIDEO_S5K5BAF all=m
 VIDEO_S5K6A3 all=m
-VIDEO_VGXY61 arm=m arm64=m
+VIDEO_VGXY61 all=m
 #- file drivers/media/i2c/ccs/Kconfig goes here
 #- file drivers/media/i2c/et8ek8/Kconfig goes here
 VIDEO_THP7312 all=m
@@ -5256,11 +5299,11 @@ VIDEO_SAA7127 all=m
 VIDEO_SAA7185 all=m
 VIDEO_UPD64031A all=m
 VIDEO_UPD64083 all=m
-VIDEO_DS90UB913 arm=m arm64=m
-VIDEO_DS90UB953 arm=m arm64=m
-VIDEO_DS90UB960 arm=m arm64=m
-VIDEO_MAX96714 arm=m arm64=m
-VIDEO_MAX96717 arm=m arm64=m
+VIDEO_DS90UB913 all=m
+VIDEO_DS90UB953 all=m
+VIDEO_DS90UB960 all=m
+VIDEO_MAX96714 all=m
+VIDEO_MAX96717 all=m
 
 #-
 #- *** FILE: drivers/media/i2c/ccs/Kconfig ***
@@ -5537,7 +5580,7 @@ SDR_PLATFORM_DRIVERS all=y
 DVB_PLATFORM_DRIVERS all=y
 V4L_MEM2MEM_DRIVERS all=y
 VIDEO_MEM2MEM_DEINTERLACE all=m
-VIDEO_MUX arm=m arm64=m
+VIDEO_MUX all=m
 #- file drivers/media/platform/allegro-dvt/Kconfig goes here
 #- file drivers/media/platform/amlogic/Kconfig goes here
 #- file drivers/media/platform/amphion/Kconfig goes here
@@ -5605,6 +5648,11 @@ VIDEO_CAFE_CCIC all=m sparc=n
 #-
 VIDEO_RASPBERRYPI_PISP_BE all=m
 
+#-
+#- *** FILE: drivers/media/platform/raspberrypi/rp1-cfe/Kconfig ***
+#-
+VIDEO_RP1_CFE all=m
+
 #-
 #- *** FILE: drivers/media/platform/renesas/Kconfig ***
 #-
@@ -5651,9 +5699,9 @@ VIDEO_VIA_CAMERA all=m
 #- *** FILE: drivers/media/platform/xilinx/Kconfig ***
 #-
 #- Xilinx media platform drivers
-VIDEO_XILINX arm=m arm64=m
-VIDEO_XILINX_CSI2RXSS arm=m arm64=m
-VIDEO_XILINX_TPG arm=m arm64=m
+VIDEO_XILINX all=m
+VIDEO_XILINX_CSI2RXSS all=m
+VIDEO_XILINX_TPG all=m
 VIDEO_XILINX_VTC arm=m arm64=m
 
 #-
@@ -6126,23 +6174,24 @@ FUSION_LOGGING all=y sparc=n
 #- *** FILE: drivers/mfd/Kconfig ***
 #-
 MFD_CS5535 all=m
-MFD_ADP5585 arm=m arm64=m
-MFD_ACT8945A arm=m arm64=m
+MFD_ADP5585 all=m
+MFD_ACT8945A all=m
 MFD_SMPRO all=m
 MFD_AT91_USART all=m
-MFD_ATMEL_FLEXCOM arm=m arm64=m
-MFD_ATMEL_HLCDC arm=m arm64=m
+MFD_ATMEL_FLEXCOM all=m
+MFD_ATMEL_HLCDC all=m
 MFD_BCM590XX all=m
 MFD_BD9571MWV all=m
 MFD_AXP20X all=m
 MFD_AXP20X_I2C all=m
+MFD_CGBC all=m
 MFD_CROS_EC_DEV all=m
 MFD_CS42L43_I2C all=m
 MFD_CS42L43_SDW all=m
 MFD_MADERA all=m
 MFD_MADERA_I2C all=m
 MFD_MADERA_SPI all=m
-MFD_MAX5970 arm=m arm64=m
+MFD_MAX5970 all=m
 MFD_CS47L15 all=y
 MFD_CS47L35 all=y
 MFD_CS47L85 all=y
@@ -6155,13 +6204,13 @@ MFD_DA9063 all=m
 MFD_DA9150 all=m
 MFD_DLN2 all=m
 MFD_EXYNOS_LPASS all=m
-MFD_GATEWORKS_GSC arm=m arm64=m
+MFD_GATEWORKS_GSC all=m
 MFD_MC13XXX all=m
 MFD_MC13XXX_SPI all=m
 MFD_MC13XXX_I2C all=m
 MFD_MP2629 all=m
-MFD_HI6421_PMIC arm=m arm64=m
-MFD_HI6421_SPMI arm=m arm64=m
+MFD_HI6421_PMIC all=m
+MFD_HI6421_SPMI all=m
 MFD_INTEL_QUARK_I2C_GPIO all=m
 LPC_ICH all=m
 LPC_SCH all=m
@@ -6177,10 +6226,10 @@ MFD_KEMPLD all=m
 MFD_88PM800 all=m
 MFD_88PM805 all=m
 MFD_MAX14577 all=m
-MFD_MAX77650 arm=m arm64=m
-MFD_MAX77686 arm=m arm64=m
+MFD_MAX77650 all=m
+MFD_MAX77686 all=m
 MFD_MAX77693 all=m
-MFD_MAX77714 arm=m arm64=m
+MFD_MAX77714 all=m
 MFD_MAX8907 all=m
 MFD_MT6360 all=m
 MFD_MT6370 all=m
@@ -6188,9 +6237,9 @@ MFD_MT6397 all=m
 MFD_MENF21BMC all=m
 MFD_OCELOT all=m
 EZX_PCAP all=y
-MFD_CPCAP arm=m arm64=m
+MFD_CPCAP all=m
 MFD_VIPERBOARD all=m
-MFD_NTXEC arm=m arm64=m
+MFD_NTXEC all=m
 MFD_RETU all=m
 MFD_PCF50633 all=m
 PCF50633_ADC all=m
@@ -6201,8 +6250,8 @@ MFD_RDC321X all=m
 MFD_RT4831=m
 MFD_RT5033 all=m
 MFD_RT5120 all=m
-MFD_RK8XX_I2C arm=m arm64=m
-MFD_RK8XX_SPI arm=m arm64=m
+MFD_RK8XX_I2C all=m
+MFD_RK8XX_SPI all=m
 MFD_RN5T618 all=m
 MFD_SI476X_CORE all=m
 MFD_SIMPLE_MFD_I2C all=m
@@ -6224,9 +6273,9 @@ TPS6507X all=m
 MFD_TPS65086 all=m
 MFD_TPS65217 all=m
 MFD_TI_LP873X all=m
-MFD_TI_LP87565 arm=m arm64=m
+MFD_TI_LP87565 all=m
 MFD_TPS65218 all=m
-MFD_TPS65219 arm=m arm64=m
+MFD_TPS65219 all=m
 MFD_TPS65912_I2C all=m
 MFD_TPS65912_SPI all=y
 MFD_TPS6594_I2C all=m
@@ -6252,15 +6301,15 @@ MFD_STMFX arm=m arm64=m
 MFD_WCD934X all=m
 MFD_ATC260X_I2C all=m
 MFD_KHADAS_MCU arm64=m
-MFD_QCOM_PM8008 arm=m arm64=m
+MFD_QCOM_PM8008 all=m
 MFD_CS40L50_I2C all=m
 MFD_CS40L50_SPI all=m
 MFD_VEXPRESS_SYSREG arm=m arm64=m
 RAVE_SP_CORE all=m
 MFD_INTEL_M10_BMC_SPI all=m
 MFD_INTEL_M10_BMC_PMCI all=m
-MFD_RSMU_I2C arm=m arm64=m
-MFD_RSMU_SPI arm=m arm64=m
+MFD_RSMU_I2C all=m
+MFD_RSMU_SPI all=m
 
 #-
 #- *** FILE: drivers/misc/Kconfig ***
@@ -6283,7 +6332,7 @@ SMPRO_ERRMON all=m
 SMPRO_MISC all=m
 CS5535_MFGPT all=m
 CS5535_CLOCK_EVENT_SRC all=m
-HI6421V600_IRQ arm=m arm64=m
+HI6421V600_IRQ all=m
 HP_ILO all=m
 SGI_GRU x86_64=m
 SGI_GRU_DEBUG x86_64=n
@@ -6302,16 +6351,16 @@ SRAM all=n arm=y arm64=y
 DW_XDATA_PCIE all=m
 PCI_ENDPOINT_TEST all=m
 XILINX_SDFEC all=m
-HISI_HIKEY_USB arm=m arm64=m
-OPEN_DICE arm=m arm64=m
-VCPU_STALL_DETECTOR arm=m arm64=m
+HISI_HIKEY_USB all=m
+OPEN_DICE all=m
+VCPU_STALL_DETECTOR all=m
 TPS6594_ESM all=m
 TPS6594_PFSM all=m
 NSM all=m
+MCHP_LAN966X_PCI all=m
 #- file drivers/misc/c2port/Kconfig goes here
 #- file drivers/misc/eeprom/Kconfig goes here
 #- file drivers/misc/cb710/Kconfig goes here
-#- file drivers/misc/ti-st/Kconfig goes here
 #- file drivers/misc/lis3lv02d/Kconfig goes here
 #- file drivers/misc/altera-stapl/Kconfig goes here
 #- file drivers/misc/mei/Kconfig goes here
@@ -6384,6 +6433,7 @@ GENWQE_PLATFORM_ERROR_RECOVERY all=0
 #- *** FILE: drivers/misc/keba/Kconfig ***
 #-
 KEBA_CP500 all=m
+KEBA_LAN9252 all=m
 
 #-
 #- *** FILE: drivers/misc/lis3lv02d/Kconfig ***
@@ -6431,11 +6481,6 @@ PVPANIC all=y
 PVPANIC_MMIO all=m
 PVPANIC_PCI all=m
 
-#-
-#- *** FILE: drivers/misc/ti-st/Kconfig ***
-#-
-TI_ST all=m
-
 #-
 #- *** FILE: drivers/misc/uacce/Kconfig ***
 #-
@@ -6456,9 +6501,9 @@ MMC all=m
 #-
 #- *** FILE: drivers/mmc/core/Kconfig ***
 #-
-PWRSEQ_EMMC arm=m arm64=m
-PWRSEQ_SD8787 arm=m arm64=m
-PWRSEQ_SIMPLE arm=m arm64=m
+PWRSEQ_EMMC all=m
+PWRSEQ_SD8787 all=m
+PWRSEQ_SIMPLE all=m
 MMC_BLOCK all=m
 MMC_BLOCK_MINORS all=8
 SDIO_UART all=m
@@ -6477,15 +6522,15 @@ MMC_SDHCI_PCI all=m
 MMC_RICOH_MMC all=y
 MMC_SDHCI_ACPI all=m
 MMC_SDHCI_PLTFM all=m
-MMC_SDHCI_OF_ARASAN arm=m arm64=m
+MMC_SDHCI_OF_ARASAN all=m
 MMC_SDHCI_OF_ASPEED arm=m arm64=m
-MMC_SDHCI_OF_AT91 arm=m arm64=m
-MMC_SDHCI_OF_DWCMSHC arm=m arm64=m
-MMC_SDHCI_CADENCE arm=m arm64=m
+MMC_SDHCI_OF_AT91 all=m
+MMC_SDHCI_OF_DWCMSHC all=m
+MMC_SDHCI_CADENCE all=m
 MMC_SDHCI_PXAV3 all=m
 MMC_SDHCI_PXAV2 all=m
 MMC_SDHCI_F_SDH30 all=m
-MMC_SDHCI_MILBEAUT arm=m arm64=m
+MMC_SDHCI_MILBEAUT all=m
 MMC_SDHCI_IPROC arm=m arm64=m
 MMC_MESON_GX arm64=m
 MMC_MESON_MX_SDIO arm64=m
@@ -6520,7 +6565,7 @@ MMC_SDHCI_BRCMSTB arm=m arm64=m
 MMC_SDHCI_XENON all=m
 MMC_SDHCI_OMAP arm=m arm64=m
 MMC_SDHCI_AM654 arm=m arm64=m
-MMC_LITEX arm=m arm64=m
+MMC_LITEX all=m
 
 #-
 #- *** FILE: drivers/most/Kconfig ***
@@ -6635,9 +6680,9 @@ MTD_PHYSMAP_COMPAT all=n
 MTD_PHYSMAP_START all=0x8000000
 MTD_PHYSMAP_LEN all=0x4000000
 MTD_PHYSMAP_BANKWIDTH all=2
-MTD_PHYSMAP_OF arm=y arm64=y ppc=m ppc64=m
-MTD_PHYSMAP_VERSATILE arm=n arm64=n
-MTD_PHYSMAP_GEMINI arm=n arm64=n
+MTD_PHYSMAP_OF all=y
+MTD_PHYSMAP_VERSATILE all=y
+MTD_PHYSMAP_GEMINI all=y
 MTD_PHYSMAP_IXP4XX arm=n
 MTD_PHYSMAP_GPIO_ADDR all=y
 MTD_SUN_UFLASH sparc=n sparc64=m
@@ -6700,9 +6745,9 @@ MTD_NAND_MXIC all=m
 MTD_NAND_MESON arm64=m
 MTD_NAND_GPIO all=m
 MTD_NAND_PLATFORM all=m sparc=n
-MTD_NAND_CADENCE arm=m arm64=m
+MTD_NAND_CADENCE all=m
 MTD_NAND_ARASAN all=m
-MTD_NAND_INTEL_LGM arm=m arm64=m
+MTD_NAND_INTEL_LGM all=m
 MTD_NAND_ROCKCHIP arm64=m
 MTD_NAND_PL35X arm=m
 #- Misc
@@ -6731,7 +6776,7 @@ MTD_SPI_NAND all=m
 #- *** FILE: drivers/mtd/parsers/Kconfig ***
 #-
 MTD_CMDLINE_PARTS all=m
-MTD_OF_PARTS arm=m arm64=m ppc=m ppc64=m
+MTD_OF_PARTS all=m
 MTD_AFS_PARTS arm=m arm64=m
 MTD_REDBOOT_PARTS all=m
 MTD_REDBOOT_DIRECTORY_BLOCK all=-1
@@ -6765,7 +6810,7 @@ MTD_UBI_NVMEM all=m
 MUX_ADG792A all=m
 MUX_ADGS1408 all=m
 MUX_GPIO all=m
-MUX_MMIO arm=m arm64=m
+MUX_MMIO all=m
 
 #-
 #- *** FILE: drivers/net/Kconfig ***
@@ -6874,8 +6919,8 @@ CAN_VXCAN all=m
 CAN_NETLINK all=y
 CAN_CALC_BITTIMING all=y
 CAN_CAN327 all=m
-CAN_FLEXCAN arm=m arm64=m
-CAN_GRCAN arm=m arm64=m
+CAN_FLEXCAN all=m
+CAN_GRCAN all=m
 CAN_JANZ_ICAN3 all=m
 CAN_KVASER_PCIEFD all=m
 CAN_SLCAN all=m
@@ -6915,7 +6960,7 @@ CAN_CC770_PLATFORM all=m
 #- *** FILE: drivers/net/can/ctucanfd/Kconfig ***
 #-
 CAN_CTUCANFD_PCI all=m
-CAN_CTUCANFD_PLATFORM arm=m arm64=m
+CAN_CTUCANFD_PLATFORM all=m
 
 #-
 #- *** FILE: drivers/net/can/esd/Kconfig ***
@@ -7053,6 +7098,7 @@ NET_DSA_MICROCHIP_KSZ8863_SMI all=m
 #-
 NET_DSA_MV88E6XXX all=m
 NET_DSA_MV88E6XXX_PTP all=y
+NET_DSA_MV88E6XXX_LEDS all=y
 
 #-
 #- *** FILE: drivers/net/dsa/ocelot/Kconfig ***
@@ -7072,7 +7118,7 @@ NET_DSA_QCA8K_LEDS_SUPPORT all=y
 #- *** FILE: drivers/net/dsa/realtek/Kconfig ***
 #-
 NET_DSA_REALTEK all=m
-NET_DSA_REALTEK_MDIO arm=y arm64=y
+NET_DSA_REALTEK_MDIO all=y
 NET_DSA_REALTEK_SMI all=n arm=y arm64=y
 NET_DSA_REALTEK_RTL8365MB all=m
 NET_DSA_REALTEK_RTL8366RB all=m
@@ -7415,7 +7461,7 @@ ENIC all=m
 #- *** FILE: drivers/net/ethernet/cortina/Kconfig ***
 #-
 NET_VENDOR_CORTINA all=y
-GEMINI_ETHERNET arm=m arm64=m
+GEMINI_ETHERNET all=m
 
 #-
 #- *** FILE: drivers/net/ethernet/davicom/Kconfig ***
@@ -7452,8 +7498,6 @@ PCMCIA_XIRCOM all=m
 #-
 NET_VENDOR_DLINK all=y
 DL2K all=m
-SUNDANCE all=m
-SUNDANCE_MMIO all=n sparc=y sparc64=y
 
 #-
 #- *** FILE: drivers/net/ethernet/emulex/Kconfig ***
@@ -7483,7 +7527,7 @@ TSNEP_SELFTESTS all=n
 #- *** FILE: drivers/net/ethernet/ezchip/Kconfig ***
 #-
 NET_VENDOR_EZCHIP all=y
-EZCHIP_NPS_MANAGEMENT_ENET arm=m arm64=m
+EZCHIP_NPS_MANAGEMENT_ENET all=m
 
 #-
 #- *** FILE: drivers/net/ethernet/faraday/Kconfig ***
@@ -7530,7 +7574,7 @@ GVE all=m
 #-
 #- *** FILE: drivers/net/ethernet/hisilicon/Kconfig ***
 #-
-NET_VENDOR_HISILICON arm=y arm64=y
+NET_VENDOR_HISILICON all=y
 HIX5HD2_GMAC arm=m arm64=m
 HISI_FEMAC arm=m arm64=m
 HIP04_ETH arm=m arm64=m
@@ -7543,6 +7587,7 @@ HNS3_HCLGE arm=m arm64=m
 HNS3_DCB arm=n arm64=n
 HNS3_HCLGEVF arm=m arm64=m
 HNS3_ENET arm64=m
+HIBMCGE all=m
 
 #-
 #- *** FILE: drivers/net/ethernet/huawei/Kconfig ***
@@ -7608,7 +7653,7 @@ IDPF_SINGLEQ all=n
 #- *** FILE: drivers/net/ethernet/litex/Kconfig ***
 #-
 NET_VENDOR_LITEX all=y
-LITEX_LITEETH arm=m arm64=m
+LITEX_LITEETH all=m
 
 #-
 #- *** FILE: drivers/net/ethernet/marvell/Kconfig ***
@@ -7754,8 +7799,8 @@ LAN865X all=m
 #-
 #- *** FILE: drivers/net/ethernet/microchip/lan966x/Kconfig ***
 #-
-LAN966X_SWITCH arm=m arm64=m
-LAN966X_DCB arm=y arm64=y
+LAN966X_SWITCH all=m
+LAN966X_DCB all=y
 
 #-
 #- *** FILE: drivers/net/ethernet/microchip/vcap/Kconfig ***
@@ -7863,8 +7908,8 @@ QEDE all=m
 #- *** FILE: drivers/net/ethernet/qualcomm/Kconfig ***
 #-
 NET_VENDOR_QUALCOMM all=y
-QCA7000_SPI arm=m arm64=m
-QCA7000_UART arm=m arm64=m
+QCA7000_SPI all=m
+QCA7000_UART all=m
 QCOM_EMAC all=m
 #- file drivers/net/ethernet/qualcomm/rmnet/Kconfig goes here
 
@@ -7984,11 +8029,11 @@ NET_VENDOR_STMICRO all=y
 STMMAC_ETH all=m
 STMMAC_SELFTESTS all=n
 STMMAC_PLATFORM all=m
-DWMAC_DWC_QOS_ETH arm=m arm64=m
+DWMAC_DWC_QOS_ETH all=m
 DWMAC_GENERIC all=m
 DWMAC_MESON arm64=m
 DWMAC_ROCKCHIP arm64=m
-DWMAC_INTEL_PLAT arm=m arm64=m
+DWMAC_INTEL_PLAT all=m
 DWMAC_INTEL all=m
 DWMAC_LOONGSON=m
 STMMAC_PCI all=n
@@ -8143,19 +8188,19 @@ MDIO_BITBANG all=m
 MDIO_BCM_UNIMAC all=m
 MDIO_CAVIUM all=m
 MDIO_GPIO all=m
-MDIO_HISI_FEMAC arm=m arm64=m
+MDIO_HISI_FEMAC all=m
 MDIO_MVUSB all=m
 MDIO_MSCC_MIIM all=m
 MDIO_OCTEON all=m
-MDIO_IPQ4019 arm=m arm64=m
-MDIO_IPQ8064 arm=m arm64=m
+MDIO_IPQ4019 all=m
+MDIO_IPQ8064 all=m
 MDIO_THUNDER all=m
 #- MDIO Multiplexers
 MDIO_BUS_MUX_MESON_G12A arm64=m
 MDIO_BUS_MUX_MESON_GXL arm64=m
-MDIO_BUS_MUX_GPIO arm=m arm64=m
-MDIO_BUS_MUX_MULTIPLEXER arm=m arm64=m
-MDIO_BUS_MUX_MMIOREG arm=m arm64=m
+MDIO_BUS_MUX_GPIO all=m
+MDIO_BUS_MUX_MULTIPLEXER all=m
+MDIO_BUS_MUX_MMIOREG all=m
 
 #-
 #- *** FILE: drivers/net/pcs/Kconfig ***
@@ -8195,7 +8240,7 @@ MARVELL_10G_PHY all=m
 MARVELL_88Q2XXX_PHY all=m
 MARVELL_88X2222_PHY all=m
 MAXLINEAR_GPHY all=m
-MEDIATEK_GE_PHY=m
+#- file drivers/net/phy/mediatek/Kconfig goes here
 MICREL_PHY all=m
 MICROCHIP_T1S_PHY all=m
 MICROCHIP_PHY all=m
@@ -8231,13 +8276,18 @@ MICREL_KS8995MA all=m
 #-
 AQUANTIA_PHY all=m
 
+#-
+#- *** FILE: drivers/net/phy/mediatek/Kconfig ***
+#-
+MEDIATEK_GE_PHY=m
+
 #-
 #- *** FILE: drivers/net/phy/qcom/Kconfig ***
 #-
 AT803X_PHY all=m
 QCA83XX_PHY all=m
 QCA808X_PHY all=m
-QCA807X_PHY arm=m arm64=m
+QCA807X_PHY all=m
 
 #-
 #- *** FILE: drivers/net/plip/Kconfig ***
@@ -8371,7 +8421,7 @@ LAPBETHER all=m
 #- *** FILE: drivers/net/wan/framer/Kconfig ***
 #-
 FRAMER all=m
-FRAMER_PEF2256 arm=m arm64=m
+FRAMER_PEF2256 all=m
 
 #-
 #- *** FILE: drivers/net/wireless/Kconfig ***
@@ -8430,7 +8480,7 @@ AR5523 all=m
 #-
 ATH10K all=m
 ATH10K_PCI all=m
-ATH10K_AHB arm=n arm64=n
+ATH10K_AHB arm=n arm64=n all=y
 ATH10K_SDIO all=m
 ATH10K_USB all=m
 ATH10K_DEBUG all=n
@@ -8452,6 +8502,7 @@ ATH11K_TRACING all=n
 ATH12K all=m
 ATH12K_DEBUG all=n
 ATH12K_TRACING all=n
+ATH12K_COREDUMP all=n
 
 #-
 #- *** FILE: drivers/net/wireless/ath/ath5k/Kconfig ***
@@ -8833,6 +8884,8 @@ RTW88_8723DU all=m
 RTW88_8821CE all=m
 RTW88_8821CS all=m
 RTW88_8821CU all=m
+RTW88_8821AU all=m
+RTW88_8812AU all=m
 RTW88_DEBUG all=n
 RTW88_DEBUGFS all=n
 
@@ -9081,7 +9134,7 @@ BLK_DEV_PMEM all=m
 BTT all=y
 NVDIMM_PFN all=y
 NVDIMM_DAX all=y
-OF_PMEM arm64=m
+OF_PMEM all=y
 NVDIMM_SECURITY_TEST all=n
 
 #-
@@ -9130,20 +9183,20 @@ NVMEM_RMEM all=m
 NVMEM_ROCKCHIP_EFUSE arm64=m
 NVMEM_ROCKCHIP_OTP arm64=m
 NVMEM_SPMI_SDAM all=m
-NVMEM_U_BOOT_ENV arm=m arm64=m
+NVMEM_U_BOOT_ENV all=m
 
 #-
 #- *** FILE: drivers/nvmem/layouts/Kconfig ***
 #-
 NVMEM_LAYOUT_SL28_VPD all=m
 NVMEM_LAYOUT_ONIE_TLV all=m
-NVMEM_LAYOUT_U_BOOT_ENV arm=m arm64=m
+NVMEM_LAYOUT_U_BOOT_ENV all=y
 
 #-
 #- *** FILE: drivers/of/Kconfig ***
 #-
 OF all=n arm=y arm64=y
-OF_UNITTEST arm=n arm64=n
+OF_UNITTEST all=y
 OF_OVERLAY arm=y arm64=y
 
 #-
@@ -9176,17 +9229,18 @@ PCI_IOV all=y
 PCI_NPEM all=y
 PCI_PRI all=y
 PCI_PASID all=y
+PCIE_TPH all=y
 PCI_P2PDMA all=y
 PCI_LABEL all=y
 PCI_HYPERV all=m
-PCI_DYNAMIC_OF_NODES arm=n arm64=n
+PCI_DYNAMIC_OF_NODES all=y
 VGA_ARB all=y
 VGA_ARB_MAX_GPUS all=16
 #- file drivers/pci/hotplug/Kconfig goes here
 #- file drivers/pci/controller/Kconfig goes here
 #- file drivers/pci/endpoint/Kconfig goes here
 #- file drivers/pci/switch/Kconfig goes here
-#- file drivers/pci/pwrctl/Kconfig goes here
+#- file drivers/pci/pwrctrl/Kconfig goes here
 
 #-
 #- *** FILE: drivers/pci/controller/Kconfig ***
@@ -9196,8 +9250,8 @@ PCIE_ALTERA_MSI arm=m arm64=m
 PCIE_BRCMSTB arm=m arm64=m
 PCI_HOST_THUNDER_PEM arm64=n
 PCI_HOST_THUNDER_ECAM arm64=n
-PCI_FTPCI100 arm=n arm64=n
-PCI_HOST_GENERIC arm=m arm64=y
+PCI_FTPCI100 all=y
+PCI_HOST_GENERIC all=m
 PCIE_HISI_ERR arm64=n
 PCI_IXP4XX arm=n
 VMD all=m
@@ -9208,7 +9262,7 @@ PCIE_ROCKCHIP_EP arm64=y
 PCI_V3_SEMI arm=n
 PCI_XGENE arm64=y
 PCI_XGENE_MSI arm64=y
-PCIE_XILINX arm=n arm64=n
+PCIE_XILINX all=y
 #- file drivers/pci/controller/cadence/Kconfig goes here
 #- file drivers/pci/controller/dwc/Kconfig goes here
 #- file drivers/pci/controller/mobiveil/Kconfig goes here
@@ -9217,8 +9271,8 @@ PCIE_XILINX arm=n arm64=n
 #-
 #- *** FILE: drivers/pci/controller/cadence/Kconfig ***
 #-
-PCIE_CADENCE_PLAT_HOST arm=n arm64=n
-PCIE_CADENCE_PLAT_EP arm=n arm64=n
+PCIE_CADENCE_PLAT_HOST all=y
+PCIE_CADENCE_PLAT_EP all=y
 PCI_J721E_HOST arm=n arm64=n
 PCI_J721E_EP arm=n arm64=n
 
@@ -9232,6 +9286,7 @@ PCI_LAYERSCAPE arm=n
 PCI_LAYERSCAPE_EP arm=n
 PCI_HISI arm64=y
 PCIE_KIRIN arm64=n
+PCIE_INTEL_GW all=y
 PCIE_ARMADA_8K arm=y
 PCIE_DW_PLAT all=y
 PCIE_DW_PLAT_HOST all=y
@@ -9247,7 +9302,7 @@ PCIE_LAYERSCAPE_GEN4 arm64=n
 #-
 #- *** FILE: drivers/pci/controller/plda/Kconfig ***
 #-
-PCIE_MICROCHIP_HOST arm=n arm64=n
+PCIE_MICROCHIP_HOST all=m
 
 #-
 #- *** FILE: drivers/pci/endpoint/Kconfig ***
@@ -9277,6 +9332,7 @@ HOTPLUG_PCI_ACPI_IBM all=m
 HOTPLUG_PCI_CPCI all=y
 HOTPLUG_PCI_CPCI_ZT5550 i386=m x86_64=m
 HOTPLUG_PCI_CPCI_GENERIC i386=m x86_64=m
+HOTPLUG_PCI_OCTEONEP all=y
 HOTPLUG_PCI_SHPC all=y
 HOTPLUG_PCI_RPA ppc64=n
 
@@ -9382,6 +9438,7 @@ GENERIC_PHY all=y
 PHY_XGENE arm64=m
 USB_LGM_PHY all=m
 PHY_CAN_TRANSCEIVER=m
+PHY_NXP_PTN3222 all=m
 #- file drivers/phy/allwinner/Kconfig goes here
 #- file drivers/phy/amlogic/Kconfig goes here
 #- file drivers/phy/broadcom/Kconfig goes here
@@ -9431,11 +9488,11 @@ BCM_KONA_USB2_PHY all=m
 #-
 #- *** FILE: drivers/phy/cadence/Kconfig ***
 #-
-PHY_CADENCE_TORRENT arm=m arm64=m
-PHY_CADENCE_DPHY arm=m arm64=m
-PHY_CADENCE_DPHY_RX arm=m arm64=m
-PHY_CADENCE_SIERRA arm=m arm64=m
-PHY_CADENCE_SALVO arm=m arm64=m
+PHY_CADENCE_TORRENT all=m
+PHY_CADENCE_DPHY all=m
+PHY_CADENCE_DPHY_RX all=m
+PHY_CADENCE_SIERRA all=m
+PHY_CADENCE_SALVO all=m
 
 #-
 #- *** FILE: drivers/phy/freescale/Kconfig ***
@@ -9447,6 +9504,7 @@ PHY_FSL_IMX8M_PCIE arm=m arm64=m
 #-
 #- *** FILE: drivers/phy/intel/Kconfig ***
 #-
+PHY_INTEL_LGM_COMBO all=y
 PHY_INTEL_LGM_EMMC all=m
 
 #-
@@ -9463,18 +9521,18 @@ PHY_PXA_28NM_USB2 all=m
 #-
 #- *** FILE: drivers/phy/microchip/Kconfig ***
 #-
-PHY_LAN966X_SERDES arm=m arm64=m
+PHY_LAN966X_SERDES all=m
 
 #-
 #- *** FILE: drivers/phy/motorola/Kconfig ***
 #-
 PHY_CPCAP_USB all=m
-PHY_MAPPHONE_MDM6600 arm=m arm64=m
+PHY_MAPPHONE_MDM6600 all=m
 
 #-
 #- *** FILE: drivers/phy/mscc/Kconfig ***
 #-
-PHY_OCELOT_SERDES arm=m arm64=m
+PHY_OCELOT_SERDES all=m
 
 #-
 #- *** FILE: drivers/phy/qualcomm/Kconfig ***
@@ -9522,22 +9580,19 @@ PINCONF all=y
 GENERIC_PINCONF all=y
 DEBUG_PINCTRL all=n
 PINCTRL_AMD all=y
-PINCTRL_AXP209 arm=m arm64=m
-PINCTRL_AW9523 arm=m arm64=m
+PINCTRL_AXP209 all=m
+PINCTRL_AW9523 all=m
 PINCTRL_CY8C95X0 all=m
 PINCTRL_DA9062 all=m
-PINCTRL_EQUILIBRIUM arm64=m
+PINCTRL_EQUILIBRIUM all=m
 PINCTRL_MCP23S08 all=m
-PINCTRL_MICROCHIP_SGPIO arm=n arm64=n
-PINCTRL_OCELOT arm=n arm64=n
-PINCTRL_PEF2256 arm=m arm64=m
-PINCTRL_RK805 arm=m arm64=m
-PINCTRL_ROCKCHIP arm64=m
-PINCTRL_SCMI arm=m arm64=m
-PINCTRL_SINGLE arm=m arm64=m
-PINCTRL_STMFX arm=m arm64=m
-PINCTRL_TPS6594 arm=m arm64=m
-PINCTRL_MLXBF3 arm64=m
+PINCTRL_MICROCHIP_SGPIO all=m
+PINCTRL_OCELOT all=m
+PINCTRL_PEF2256 all=m
+PINCTRL_RK805 all=m
+PINCTRL_SINGLE all=m
+PINCTRL_STMFX all=m
+PINCTRL_TPS6594 all=m
 #- file drivers/pinctrl/actions/Kconfig goes here
 #- file drivers/pinctrl/aspeed/Kconfig goes here
 #- file drivers/pinctrl/bcm/Kconfig goes here
@@ -9557,6 +9612,7 @@ PINCTRL_MLXBF3 arm64=m
 #- file drivers/pinctrl/renesas/Kconfig goes here
 #- file drivers/pinctrl/samsung/Kconfig goes here
 #- file drivers/pinctrl/sophgo/Kconfig goes here
+#- file drivers/pinctrl/spacemit/Kconfig goes here
 #- file drivers/pinctrl/spear/Kconfig goes here
 #- file drivers/pinctrl/sprd/Kconfig goes here
 #- file drivers/pinctrl/starfive/Kconfig goes here
@@ -9636,9 +9692,10 @@ CHROMEOS_ACPI all=m
 CHROMEOS_LAPTOP all=m
 CHROMEOS_PSTORE all=m
 CHROMEOS_TBMC all=m
+CHROMEOS_OF_HW_PROBER all=m
 CROS_EC all=m
 CROS_EC_I2C all=m
-CROS_EC_RPMSG arm=m arm64=m
+CROS_EC_RPMSG all=m
 CROS_EC_ISHTP all=m
 CROS_EC_SPI all=m
 CROS_EC_UART all=m
@@ -9646,7 +9703,7 @@ CROS_EC_LPC all=m
 CROS_KBD_LED_BACKLIGHT all=m
 CROS_EC_CHARDEV all=m
 CROS_EC_LIGHTBAR all=m
-CROS_EC_VBC arm=m arm64=m
+CROS_EC_VBC all=m
 CROS_EC_DEBUGFS all=m
 CROS_EC_SENSORHUB all=m
 CROS_EC_SYSFS all=m
@@ -9802,11 +9859,19 @@ SEL3350_PLATFORM all=m
 #-
 #- *** FILE: drivers/platform/x86/amd/Kconfig ***
 #-
+#- file drivers/platform/x86/amd/hsmp/Kconfig goes here
 #- file drivers/platform/x86/amd/pmf/Kconfig goes here
 #- file drivers/platform/x86/amd/pmc/Kconfig goes here
-AMD_HSMP all=m
+AMD_3D_VCACHE all=m
 AMD_WBRF all=y
 
+#-
+#- *** FILE: drivers/platform/x86/amd/hsmp/Kconfig ***
+#-
+AMD_HSMP all=m
+AMD_HSMP_ACPI all=m
+AMD_HSMP_PLAT all=m
+
 #-
 #- *** FILE: drivers/platform/x86/amd/pmc/Kconfig ***
 #-
@@ -10011,22 +10076,22 @@ POWER_RESET all=y
 POWER_RESET_ATC260X all=m
 POWER_RESET_BRCMKONA arm=n
 POWER_RESET_BRCMSTB arm=n arm64=n
-POWER_RESET_GPIO arm=y arm64=y
-POWER_RESET_GPIO_RESTART arm=y arm64=y
+POWER_RESET_GPIO all=y
+POWER_RESET_GPIO_RESTART all=y
 POWER_RESET_LINKSTATION arm=m
-POWER_RESET_LTC2952 arm=n arm64=n
+POWER_RESET_LTC2952 all=y
 POWER_RESET_MT6323 all=y
 POWER_RESET_QNAP arm=y
-POWER_RESET_REGULATOR arm=n arm64=n
+POWER_RESET_REGULATOR all=y
 POWER_RESET_RESTART all=n
 POWER_RESET_TPS65086 all=y
 POWER_RESET_VERSATILE arm=n
 POWER_RESET_VEXPRESS arm64=y
 POWER_RESET_XGENE arm64=y
-POWER_RESET_SYSCON arm=y arm64=y
-POWER_RESET_SYSCON_POWEROFF arm=y arm64=y
-SYSCON_REBOOT_MODE arm=m arm64=m
-NVMEM_REBOOT_MODE arm=m arm64=m
+POWER_RESET_SYSCON all=y
+POWER_RESET_SYSCON_POWEROFF all=y
+SYSCON_REBOOT_MODE all=m
+NVMEM_REBOOT_MODE all=m
 POWER_MLXBF arm64=m
 
 #-
@@ -10049,8 +10114,8 @@ WM831X_POWER all=m
 WM8350_POWER all=m
 TEST_POWER all=m
 CHARGER_ADP5061 all=m
-BATTERY_ACT8945A arm=m arm64=m
-BATTERY_CPCAP arm=m arm64=m
+BATTERY_ACT8945A all=m
+BATTERY_CPCAP all=m
 BATTERY_CW2015 all=m
 BATTERY_DS2760 all=m
 BATTERY_DS2780 all=m
@@ -10058,7 +10123,7 @@ BATTERY_DS2781 all=m
 BATTERY_DS2782 all=m
 BATTERY_LEGO_EV3 arm=m arm64=m
 BATTERY_PMU ppc=m
-BATTERY_QCOM_BATTMGR arm=m arm64=m
+BATTERY_QCOM_BATTMGR all=m
 BATTERY_SAMSUNG_SDI all=y
 BATTERY_SBS all=m
 CHARGER_SBS all=m
@@ -10089,8 +10154,8 @@ CHARGER_MANAGER all=y
 CHARGER_LT3651 all=m
 CHARGER_LTC4162L all=m
 CHARGER_MAX14577 all=m
-CHARGER_DETECTOR_MAX14656 arm=m arm64=m
-CHARGER_MAX77650 arm=m arm64=m
+CHARGER_DETECTOR_MAX14656 all=m
+CHARGER_MAX77650 all=m
 CHARGER_MAX77693 all=m
 CHARGER_MAX77976 all=m
 CHARGER_MP2629 all=m
@@ -10104,7 +10169,7 @@ CHARGER_BQ2515X all=m
 CHARGER_BQ25890 all=m
<Skipped 1009 lines>
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/5ed629965fea7dc96c7bf77fc4c7eae2de989fd0



More information about the pld-cvs-commit mailing list