[packages/kernel] Up to 6.14.0 (builds ... almost - android binder patch needs fixes)

arekm arekm at pld-linux.org
Mon Mar 24 20:21:54 CET 2025


commit d45609b913612d9fdf802c54d8fa743624c608a7
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Mon Mar 24 20:07:22 2025 +0100

    Up to 6.14.0 (builds ... almost - android binder patch needs fixes)

 kernel-aufs.patch       | 419 +++++++++++++++++++++++++++---------------------
 kernel-multiarch.config | 138 +++++++++++-----
 kernel.spec             |   8 +-
 update-source.sh        |   4 +-
 4 files changed, 346 insertions(+), 223 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index d0cd489f..7dec03c2 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -51,9 +51,9 @@
 %define		have_drm	0
 %endif
 
-%define		rel		1
-%define		basever		6.13
-%define		postver		.8
+%define		rel		0.1
+%define		basever		6.14
+%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:	7a1ec5edbbdcaad287ca3c16f71abaa6
+# Source0-md5:	05238030095d2be98aac79bfbc58f5d3
 %if "%{postver}" != ".0"
 Patch0:		https://www.kernel.org/pub/linux/kernel/v6.x/patch-%{version}.xz
 # Patch0-md5:	6441730d9901abd30699d8b7be9507d0
diff --git a/kernel-aufs.patch b/kernel-aufs.patch
index 29d4dba3..0747433e 100644
--- a/kernel-aufs.patch
+++ b/kernel-aufs.patch
@@ -1,5 +1,5 @@
 SPDX-License-Identifier: GPL-2.0
-aufs6.13 kbuild patch
+aufs6.x-rcN kbuild patch
 
 diff --git a/fs/Kconfig b/fs/Kconfig
 index 64d420e3c475..0873506d6b97 100644
@@ -23,13 +23,13 @@ index 15df0a923d3a..7584856689fb 100644
  obj-$(CONFIG_BPF_LSM)		+= bpf_fs_kfuncs.o
 +obj-$(CONFIG_AUFS_FS)           += aufs/
 SPDX-License-Identifier: GPL-2.0
-aufs6.13 base patch
+aufs6.x-rcN base patch
 
 diff --git a/MAINTAINERS b/MAINTAINERS
-index 0fa7c5728f1e..bda931857680 100644
+index 896a307fa065..57e1f04cbedb 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -3722,6 +3722,19 @@ S:	Supported
+@@ -3773,6 +3773,19 @@ S:	Supported
  F:	Documentation/dev-tools/autofdo.rst
  F:	scripts/Makefile.autofdo
  
@@ -50,10 +50,10 @@ index 0fa7c5728f1e..bda931857680 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 8f6761c27c68..78dc1c0c6680 100644
+index c05fe27a96b6..360a30bda4ec 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,
+@@ -665,6 +665,26 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  	goto done;
  }
  
@@ -81,10 +81,10 @@ index 8f6761c27c68..78dc1c0c6680 100644
  
  static ssize_t loop_attr_show(struct device *dev, char *page,
 diff --git a/fs/dcache.c b/fs/dcache.c
-index b4d5e9e1e43d..0a6069e6d4ca 100644
+index 9cc0d47da321..1f7d0494e801 100644
 --- a/fs/dcache.c
 +++ b/fs/dcache.c
-@@ -1233,6 +1233,9 @@ enum d_walk_ret {
+@@ -1251,6 +1251,9 @@ enum d_walk_ret {
  	D_WALK_SKIP,
  };
  
@@ -94,7 +94,7 @@ index b4d5e9e1e43d..0a6069e6d4ca 100644
  /**
   * d_walk - walk the dentry tree
   * @parent:	start of walk
-@@ -1241,7 +1244,7 @@ enum d_walk_ret {
+@@ -1259,7 +1262,7 @@ enum d_walk_ret {
   *
   * The @enter() callbacks are called with d_lock held.
   */
@@ -104,7 +104,7 @@ index b4d5e9e1e43d..0a6069e6d4ca 100644
  {
  	struct dentry *this_parent, *dentry;
 diff --git a/fs/fcntl.c b/fs/fcntl.c
-index 49884fa3c81d..065c3aa7a5dd 100644
+index 5598e4d57422..90af6a47fbad 100644
 --- a/fs/fcntl.c
 +++ b/fs/fcntl.c
 @@ -36,7 +36,7 @@
@@ -126,10 +126,10 @@ index 49884fa3c81d..065c3aa7a5dd 100644
  		return error;
  
 diff --git a/fs/namespace.c b/fs/namespace.c
-index eac057e56948..dcbf4e86fe2f 100644
+index a3ed3f2980cb..4b1c2cb42d15 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
-@@ -967,6 +967,12 @@ static inline int check_mnt(struct mount *mnt)
+@@ -998,6 +998,12 @@ static inline int check_mnt(struct mount *mnt)
  	return mnt->mnt_ns == current->nsproxy->mnt_ns;
  }
  
@@ -143,7 +143,7 @@ index eac057e56948..dcbf4e86fe2f 100644
   * vfsmount lock must be held for write
   */
 diff --git a/fs/splice.c b/fs/splice.c
-index 2898fa1e9e63..73b9e968b28d 100644
+index 28cfa63aa236..89497db37e15 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 2898fa1e9e63..73b9e968b28d 100644
  {
  	if (unlikely(!out->f_op->splice_write))
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 7e29433c5ecc..b74af4ae6dd4 100644
+index be3ad155ec9f..74e6b695c291 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -1162,6 +1162,7 @@ extern void fasync_free(struct fasync_struct *);
+@@ -1209,6 +1209,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 7e29433c5ecc..b74af4ae6dd4 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);
-@@ -2091,6 +2092,7 @@ struct file_operations {
+@@ -2139,6 +2140,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);
@@ -222,10 +222,10 @@ 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 2d8ec0351ef9..25c1fb3172d9 100644
+index 4470680f0226..89e8e8b38357 100644
 --- a/kernel/locking/lockdep.c
 +++ b/kernel/locking/lockdep.c
-@@ -218,7 +218,7 @@ unsigned long max_lock_class_idx;
+@@ -220,7 +220,7 @@ unsigned long max_lock_class_idx;
  struct lock_class lock_classes[MAX_LOCKDEP_KEYS];
  DECLARE_BITMAP(lock_classes_in_use, MAX_LOCKDEP_KEYS);
  
@@ -234,7 +234,7 @@ index 2d8ec0351ef9..25c1fb3172d9 100644
  {
  	unsigned int class_idx = hlock->class_idx;
  
-@@ -239,6 +239,7 @@ static inline struct lock_class *hlock_class(struct held_lock *hlock)
+@@ -241,6 +241,7 @@ static inline struct lock_class *hlock_class(struct held_lock *hlock)
  	 */
  	return lock_classes + class_idx;
  }
@@ -243,13 +243,13 @@ index 2d8ec0351ef9..25c1fb3172d9 100644
  #ifdef CONFIG_LOCK_STAT
  static DEFINE_PER_CPU(struct lock_class_stats[MAX_LOCKDEP_KEYS], cpu_lock_stats);
 SPDX-License-Identifier: GPL-2.0
-aufs6.13 mmap patch
+aufs6.x-rcN mmap patch
 
 diff --git a/fs/proc/base.c b/fs/proc/base.c
-index 0edf14a9840e..6114bd9c9709 100644
+index cd89e956c322..4c145b7df442 100644
 --- a/fs/proc/base.c
 +++ b/fs/proc/base.c
-@@ -2271,7 +2271,7 @@ static int map_files_get_link(struct dentry *dentry, struct path *path)
+@@ -2273,7 +2273,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) {
@@ -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 b1c3db9cf355..28210040d008 100644
+index 7b1068ddcbb7..52739aa241f9 100644
 --- a/include/linux/mm.h
 +++ b/include/linux/mm.h
-@@ -2480,6 +2480,43 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,
+@@ -2481,6 +2481,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 b1c3db9cf355..28210040d008 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 332cee285662..75fc22389eb4 100644
+index 6b27db7f9496..ee35bcd6f2cc 100644
 --- a/include/linux/mm_types.h
 +++ b/include/linux/mm_types.h
-@@ -584,6 +584,9 @@ struct vm_region {
+@@ -586,6 +586,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 332cee285662..75fc22389eb4 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
-@@ -759,6 +762,9 @@ struct vm_area_struct {
+@@ -761,6 +764,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,7 +396,7 @@ index 332cee285662..75fc22389eb4 100644
  
  #ifdef CONFIG_ANON_VMA_NAME
 diff --git a/kernel/fork.c b/kernel/fork.c
-index 9b301180fd41..d843da822c9e 100644
+index 735405a9c5f3..8278eb9102e9 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
 @@ -732,7 +732,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
@@ -409,19 +409,19 @@ index 9b301180fd41..d843da822c9e 100644
  			if (vma_is_shared_maywrite(tmp))
  				mapping_allow_writable(mapping);
 diff --git a/mm/Makefile b/mm/Makefile
-index dba52bb0da8a..cb956783721a 100644
+index 850386a67b3e..b33569fb88d2 100644
 --- a/mm/Makefile
 +++ b/mm/Makefile
-@@ -146,3 +146,4 @@ obj-$(CONFIG_GENERIC_IOREMAP) += ioremap.o
- obj-$(CONFIG_SHRINKER_DEBUG) += shrinker_debug.o
+@@ -147,3 +147,4 @@ obj-$(CONFIG_SHRINKER_DEBUG) += shrinker_debug.o
  obj-$(CONFIG_EXECMEM) += execmem.o
  obj-$(CONFIG_TMPFS_QUOTA) += shmem_quota.o
+ obj-$(CONFIG_PT_RECLAIM) += pt_reclaim.o
 +obj-y += prfile.o
 diff --git a/mm/filemap.c b/mm/filemap.c
-index 4f476411a9a2..402f135f0214 100644
+index 804d7365680c..b3756dd050db 100644
 --- a/mm/filemap.c
 +++ b/mm/filemap.c
-@@ -3699,7 +3699,7 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
+@@ -3842,7 +3842,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,10 +431,10 @@ index 4f476411a9a2..402f135f0214 100644
  	if (folio->mapping != mapping) {
  		folio_unlock(folio);
 diff --git a/mm/mmap.c b/mm/mmap.c
-index aec208f90337..6a691aed8032 100644
+index cda01071c7b1..a143a770a44d 100644
 --- a/mm/mmap.c
 +++ b/mm/mmap.c
-@@ -1403,6 +1403,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -1098,6 +1098,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
  	unsigned long ret = -EINVAL;
  	struct file *file;
  	vm_flags_t vm_flags;
@@ -442,7 +442,7 @@ index aec208f90337..6a691aed8032 100644
  
  	pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/mm/remap_file_pages.rst.\n",
  		     current->comm, current->pid);
-@@ -1445,14 +1446,18 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -1140,14 +1141,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;
@@ -463,7 +463,7 @@ index aec208f90337..6a691aed8032 100644
  		return ret;
  	}
  
-@@ -1460,7 +1465,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -1155,7 +1160,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)) {
@@ -472,7 +472,7 @@ index aec208f90337..6a691aed8032 100644
  		return -EINTR;
  	}
  
-@@ -1502,9 +1507,27 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -1197,9 +1202,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);
@@ -501,7 +501,7 @@ index aec208f90337..6a691aed8032 100644
  		mm_populate(ret, populate);
  	if (!IS_ERR_VALUE(ret))
 diff --git a/mm/nommu.c b/mm/nommu.c
-index 9cb6e99215e2..5add36afa978 100644
+index baa79abdaf03..0b81c14171b0 100644
 --- a/mm/nommu.c
 +++ b/mm/nommu.c
 @@ -512,7 +512,7 @@ static void __put_nommu_region(struct vm_region *region)
@@ -637,10 +637,10 @@ index 000000000000..b034d160a18f
 +}
 +#endif /* !CONFIG_MMU */
 diff --git a/mm/vma.c b/mm/vma.c
-index bb2119e5a0d0..ab30ebc7f55d 100644
+index af1d549b179c..832c3b3b94b0 100644
 --- a/mm/vma.c
 +++ b/mm/vma.c
-@@ -299,7 +299,7 @@ static void vma_complete(struct vma_prepare *vp, struct vma_iterator *vmi,
+@@ -331,7 +331,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);
@@ -649,7 +649,7 @@ index bb2119e5a0d0..ab30ebc7f55d 100644
  		}
  		if (vp->remove->anon_vma)
  			anon_vma_merge(vp->vma, vp->remove);
-@@ -379,7 +379,7 @@ void remove_vma(struct vm_area_struct *vma, bool unreachable)
+@@ -411,7 +411,7 @@ void remove_vma(struct vm_area_struct *vma, bool unreachable)
  	might_sleep();
  	vma_close(vma);
  	if (vma->vm_file)
@@ -658,7 +658,7 @@ index bb2119e5a0d0..ab30ebc7f55d 100644
  	mpol_put(vma_policy(vma));
  	if (unreachable)
  		__vm_area_free(vma);
-@@ -456,7 +456,7 @@ static int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma,
+@@ -488,7 +488,7 @@ __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma,
  		goto out_free_mpol;
  
  	if (new->vm_file)
@@ -667,7 +667,7 @@ index bb2119e5a0d0..ab30ebc7f55d 100644
  
  	if (new->vm_ops && new->vm_ops->open)
  		new->vm_ops->open(new);
-@@ -1762,7 +1762,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -1763,7 +1763,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)
@@ -676,7 +676,7 @@ index bb2119e5a0d0..ab30ebc7f55d 100644
  		if (new_vma->vm_ops && new_vma->vm_ops->open)
  			new_vma->vm_ops->open(new_vma);
  		if (vma_link(mm, new_vma))
-@@ -1775,7 +1775,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -1776,7 +1776,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
  	vma_close(new_vma);
  
  	if (new_vma->vm_file)
@@ -686,13 +686,13 @@ index bb2119e5a0d0..ab30ebc7f55d 100644
  	unlink_anon_vmas(new_vma);
  out_free_mempol:
 SPDX-License-Identifier: GPL-2.0
-aufs6.13 standalone patch
+aufs6.x-rcN standalone patch
 
 diff --git a/fs/dcache.c b/fs/dcache.c
-index 0a6069e6d4ca..7d0493ea306d 100644
+index 1f7d0494e801..cda8b2f89cad 100644
 --- a/fs/dcache.c
 +++ b/fs/dcache.c
-@@ -1343,6 +1343,7 @@ void d_walk(struct dentry *parent, void *data,
+@@ -1361,6 +1361,7 @@ void d_walk(struct dentry *parent, void *data,
  	seq = 1;
  	goto again;
  }
@@ -700,7 +700,7 @@ index 0a6069e6d4ca..7d0493ea306d 100644
  
  struct check_mount {
  	struct vfsmount *mnt;
-@@ -2911,6 +2912,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2)
+@@ -2922,6 +2923,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2)
  
  	write_sequnlock(&rename_lock);
  }
@@ -709,7 +709,7 @@ index 0a6069e6d4ca..7d0493ea306d 100644
  /**
   * d_ancestor - search for an ancestor
 diff --git a/fs/exec.c b/fs/exec.c
-index 98cb7ba9983c..fe9c0e99ab60 100644
+index 506cd411f4ac..e0e6e301a448 100644
 --- a/fs/exec.c
 +++ b/fs/exec.c
 @@ -114,6 +114,7 @@ bool path_noexec(const struct path *path)
@@ -721,7 +721,7 @@ index 98cb7ba9983c..fe9c0e99ab60 100644
  #ifdef CONFIG_USELIB
  /*
 diff --git a/fs/fcntl.c b/fs/fcntl.c
-index 065c3aa7a5dd..efe86e98015e 100644
+index 90af6a47fbad..7d4eaaff13bc 100644
 --- a/fs/fcntl.c
 +++ b/fs/fcntl.c
 @@ -89,6 +89,7 @@ int setfl(int fd, struct file * filp, unsigned int arg)
@@ -733,7 +733,7 @@ index 065c3aa7a5dd..efe86e98015e 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 976736be47cb..4ba889801c2f 100644
+index f0291a66f9db..79f6d27bcf56 100644
 --- a/fs/file_table.c
 +++ b/fs/file_table.c
 @@ -247,6 +247,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred)
@@ -745,10 +745,10 @@ index 976736be47cb..4ba889801c2f 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 dcbf4e86fe2f..75f18b8dee11 100644
+index 4b1c2cb42d15..ed124520218c 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
-@@ -972,6 +972,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
+@@ -1003,6 +1003,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
  {
  	return check_mnt(real_mount(mnt));
  }
@@ -756,7 +756,7 @@ index dcbf4e86fe2f..75f18b8dee11 100644
  
  /*
   * vfsmount lock must be held for write
-@@ -2204,6 +2205,7 @@ struct vfsmount *collect_mounts(const struct path *path)
+@@ -2248,6 +2249,7 @@ struct vfsmount *collect_mounts(const struct path *path)
  		return ERR_CAST(tree);
  	return &tree->mnt;
  }
@@ -764,7 +764,7 @@ index dcbf4e86fe2f..75f18b8dee11 100644
  
  static void free_mnt_ns(struct mnt_namespace *);
  static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *, bool);
-@@ -2234,6 +2236,7 @@ void drop_collected_mounts(struct vfsmount *mnt)
+@@ -2278,6 +2280,7 @@ void drop_collected_mounts(struct vfsmount *mnt)
  	unlock_mount_hash();
  	namespace_unlock();
  }
@@ -772,7 +772,7 @@ index dcbf4e86fe2f..75f18b8dee11 100644
  
  bool has_locked_children(struct mount *mnt, struct dentry *dentry)
  {
-@@ -2305,6 +2308,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+@@ -2349,6 +2352,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
  	}
  	return 0;
  }
@@ -780,6 +780,18 @@ index dcbf4e86fe2f..75f18b8dee11 100644
  
  static void lock_mnt_tree(struct mount *mnt)
  {
+diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
+index 8ee495a58d0a..5a152cbdca76 100644
+--- a/fs/notify/fsnotify.c
++++ b/fs/notify/fsnotify.c
+@@ -220,6 +220,7 @@ int fsnotify_pre_content(const struct path *path, const loff_t *ppos,
+ 	return fsnotify_parent(path->dentry, FS_PRE_ACCESS, &range,
+ 			       FSNOTIFY_EVENT_FILE_RANGE);
+ }
++EXPORT_SYMBOL_GPL(fsnotify_pre_content);
+ 
+ /*
+  * Notify this dentry's parent about a child's events with child name info
 diff --git a/fs/notify/group.c b/fs/notify/group.c
 index 18446b7b0d49..09138e0b8a6a 100644
 --- a/fs/notify/group.c
@@ -793,7 +805,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 e6911101fe71..fa5a7a1e4a10 100644
+index 932e5a6de63b..a0b36d10fa48 100644
 --- a/fs/open.c
 +++ b/fs/open.c
 @@ -66,6 +66,7 @@ int do_truncate(struct mnt_idmap *idmap, struct dentry *dentry,
@@ -825,7 +837,7 @@ index a6133241dfb8..5e095d512e35 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 73b9e968b28d..7ace2e239f7a 100644
+index 89497db37e15..56111a7bd83d 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,
@@ -849,10 +861,10 @@ index 02bee149ad96..71fb7d49a9c2 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 25c1fb3172d9..312d8733e390 100644
+index 89e8e8b38357..392ab435e888 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)
+@@ -241,6 +241,7 @@ inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock)
  	 */
  	return lock_classes + class_idx;
  }
@@ -861,19 +873,19 @@ index 25c1fb3172d9..312d8733e390 100644
  
  #ifdef CONFIG_LOCK_STAT
 diff --git a/kernel/task_work.c b/kernel/task_work.c
-index c969f1f26be5..68eb672f425d 100644
+index d1efec571a4a..eed18cc26c37 100644
 --- a/kernel/task_work.c
 +++ b/kernel/task_work.c
-@@ -242,3 +242,4 @@ void task_work_run(void)
+@@ -230,3 +230,4 @@ void task_work_run(void)
  		} while (work);
  	}
  }
 +EXPORT_SYMBOL_GPL(task_work_run);
 diff --git a/security/security.c b/security/security.c
-index 09664e09fec9..f4eee251c890 100644
+index 143561ebc3e8..75c88da19648 100644
 --- a/security/security.c
 +++ b/security/security.c
-@@ -1943,6 +1943,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry)
+@@ -1948,6 +1948,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry)
  		return 0;
  	return call_int_hook(path_rmdir, dir, dentry);
  }
@@ -881,7 +893,7 @@ index 09664e09fec9..f4eee251c890 100644
  
  /**
   * security_path_unlink() - Check if removing a hard link is allowed
-@@ -1978,6 +1979,7 @@ int security_path_symlink(const struct path *dir, struct dentry *dentry,
+@@ -1983,6 +1984,7 @@ int security_path_symlink(const struct path *dir, struct dentry *dentry,
  		return 0;
  	return call_int_hook(path_symlink, dir, dentry, old_name);
  }
@@ -889,7 +901,7 @@ index 09664e09fec9..f4eee251c890 100644
  
  /**
   * security_path_link - Check if creating a hard link is allowed
-@@ -1996,6 +1998,7 @@ int security_path_link(struct dentry *old_dentry, const struct path *new_dir,
+@@ -2001,6 +2003,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);
  }
@@ -897,7 +909,7 @@ index 09664e09fec9..f4eee251c890 100644
  
  /**
   * security_path_rename() - Check if renaming a file is allowed
-@@ -2057,6 +2060,7 @@ int security_path_chmod(const struct path *path, umode_t mode)
+@@ -2062,6 +2065,7 @@ int security_path_chmod(const struct path *path, umode_t mode)
  		return 0;
  	return call_int_hook(path_chmod, path, mode);
  }
@@ -905,7 +917,7 @@ index 09664e09fec9..f4eee251c890 100644
  
  /**
   * security_path_chown() - Check if changing the file's owner/group is allowed
-@@ -2074,6 +2078,7 @@ int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
+@@ -2079,6 +2083,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);
  }
@@ -913,7 +925,7 @@ index 09664e09fec9..f4eee251c890 100644
  
  /**
   * security_path_chroot() - Check if changing the root directory is allowed
-@@ -2318,6 +2323,7 @@ int security_inode_permission(struct inode *inode, int mask)
+@@ -2323,6 +2328,7 @@ int security_inode_permission(struct inode *inode, int mask)
  		return 0;
  	return call_int_hook(inode_permission, inode, mask);
  }
@@ -921,7 +933,7 @@ index 09664e09fec9..f4eee251c890 100644
  
  /**
   * security_inode_setattr() - Check if setting file attributes is allowed
-@@ -2838,6 +2844,7 @@ int security_file_permission(struct file *file, int mask)
+@@ -2843,6 +2849,7 @@ int security_file_permission(struct file *file, int mask)
  {
  	return call_int_hook(file_permission, file, mask);
  }
@@ -929,7 +941,7 @@ index 09664e09fec9..f4eee251c890 100644
  
  /**
   * security_file_alloc() - Allocate and init a file's LSM blob
-@@ -3136,6 +3143,7 @@ int security_file_truncate(struct file *file)
+@@ -3145,6 +3152,7 @@ int security_file_truncate(struct file *file)
  {
  	return call_int_hook(file_truncate, file);
  }
@@ -6342,8 +6354,8 @@ diff -urN /usr/share/empty/fs/aufs/cpup.h linux/fs/aufs/cpup.h
 +#endif /* __AUFS_CPUP_H__ */
 diff -urN /usr/share/empty/fs/aufs/dbgaufs.c linux/fs/aufs/dbgaufs.c
 --- /usr/share/empty/fs/aufs/dbgaufs.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dbgaufs.c	2025-02-04 20:03:40.676605172 +0100
-@@ -0,0 +1,526 @@
++++ linux/fs/aufs/dbgaufs.c	2025-03-24 19:42:15.066507502 +0100
+@@ -0,0 +1,525 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -6670,9 +6682,9 @@ diff -urN /usr/share/empty/fs/aufs/dbgaufs.c linux/fs/aufs/dbgaufs.c
 +			      struct au_sbinfo *sbinfo)
 +{
 +	struct au_branch *br;
-+	struct dentry *d;
 +	/* "xi" bindex(5) "-" idx(2) NULL */
 +	char name[sizeof(DbgaufsXi_PREFIX) + 8];
++	int err;
 +
 +	if (!idx)
 +		snprintf(name, sizeof(name), DbgaufsXi_PREFIX "%d", bindex);
@@ -6686,12 +6698,11 @@ diff -urN /usr/share/empty/fs/aufs/dbgaufs.c linux/fs/aufs/dbgaufs.c
 +		if (!au_qstreq(&br->br_dbgaufs->d_name, &qstr)) {
 +			/* debugfs acquires the parent i_mutex */
 +			lockdep_off();
-+			d = debugfs_rename(parent, br->br_dbgaufs, parent,
-+					   name);
++			err = debugfs_change_name(br->br_dbgaufs, name);
 +			lockdep_on();
-+			if (unlikely(!d))
-+				pr_warn("failed renaming %pd/%s, ignored.\n",
-+					parent, name);
++			if (unlikely(err))
++				pr_warn("failed renaming %pd/%s, err %d, ignored.\n",
++					parent, name, err);
 +		}
 +	} else {
 +		lockdep_off();
@@ -7983,8 +7994,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	2025-02-04 20:03:40.676605172 +0100
-@@ -0,0 +1,1176 @@
++++ linux/fs/aufs/dentry.c	2025-03-24 19:42:15.066507502 +0100
+@@ -0,0 +1,1228 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -8817,46 +8828,55 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +	return err;
 +}
 +
-+static int au_do_h_d_reval(struct dentry *h_dentry, unsigned int flags,
-+			   struct dentry *dentry, aufs_bindex_t bindex)
++struct au_d_reval_args {
++	struct inode *dir;		/* NULL when ->d_weak_revalidate() */
++	const struct qstr *qname;	/* NULL when ->d_weak_revalidate() */
++	struct dentry *dentry;
++	unsigned int flags;
++};
++
++static int au_do_h_d_reval(struct au_d_reval_args *h_args)
 +{
 +	int err, valid;
++	struct dentry *h_dentry = h_args->dentry;
 +
 +	err = 0;
-+	if (!(h_dentry->d_flags & DCACHE_OP_REVALIDATE))
-+		goto out;
-+
-+	AuDbg("b%d\n", bindex);
-+	/*
-+	 * gave up supporting LOOKUP_CREATE/OPEN for lower fs,
-+	 * due to whiteout and branch permission.
-+	 */
-+	flags &= ~(/*LOOKUP_PARENT |*/ LOOKUP_OPEN | LOOKUP_CREATE
-+		   | LOOKUP_FOLLOW | LOOKUP_EXCL);
++	valid = 1;
 +	/* it may return tri-state */
-+	valid = h_dentry->d_op->d_revalidate(h_dentry, flags);
++	if (h_args->dir) {
++		if (h_dentry->d_flags & DCACHE_OP_REVALIDATE)
++			valid = h_dentry->d_op->d_revalidate(h_args->dir,
++							     h_args->qname,
++							     h_dentry,
++							     h_args->flags);
++	} else if (h_dentry->d_flags & DCACHE_OP_WEAK_REVALIDATE)
++		valid = h_dentry->d_op->d_weak_revalidate(h_dentry,
++							  h_args->flags);
 +
 +	if (unlikely(valid < 0))
 +		err = valid;
 +	else if (!valid)
 +		err = -EINVAL;
 +
-+out:
 +	AuTraceErr(err);
 +	return err;
 +}
 +
 +/* todo: remove this */
-+static int h_d_revalidate(struct dentry *dentry, struct inode *inode,
-+			  unsigned int flags, int do_udba, int dirren)
++static int h_d_revalidate(struct au_d_reval_args *args, struct inode *inode,
++			  int do_udba, int dirren)
 +{
 +	int err;
 +	umode_t mode, h_mode;
 +	aufs_bindex_t bindex, btail, btop, ibs, ibe, bwh;
 +	unsigned char plus, unhashed, is_root, h_plus, h_nfs, tmpfile;
 +	struct inode *h_inode, *h_cached_inode;
-+	struct dentry *h_dentry;
-+	struct qstr *name, *h_name;
++	struct dentry *h_parent, *dentry = args->dentry;
++	struct qstr *h_name, *qname = (struct qstr *)args->qname;
++	struct name_snapshot h_nameshot;
++	struct au_d_reval_args h_args = {
++		.qname	= &h_nameshot.name,
++	};
 +
 +	err = 0;
 +	plus = 0;
@@ -8865,7 +8885,6 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +	ibe = -1;
 +	unhashed = !!d_unhashed(dentry);
 +	is_root = !!IS_ROOT(dentry);
-+	name = &dentry->d_name;
 +	tmpfile = au_di(dentry)->di_tmpfile;
 +
 +	/*
@@ -8882,6 +8901,16 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +		ibe = au_ibbot(inode);
 +	}
 +
++	h_args.dir = NULL;
++	h_parent = NULL;
++	h_args.flags = args->flags;
++	/*
++	 * gave up supporting LOOKUP_CREATE/OPEN for lower fs,
++	 * due to whiteout and branch permission.
++	 */
++	h_args.flags &= ~(/*LOOKUP_PARENT |*/ LOOKUP_OPEN | LOOKUP_CREATE
++			  | LOOKUP_FOLLOW | LOOKUP_EXCL);
++
 +	btop = au_dbtop(dentry);
 +	bwh = au_dbwh(dentry);
 +	if (0 <= bwh && bwh < btop)
@@ -8890,41 +8919,52 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +	if (inode && S_ISDIR(inode->i_mode))
 +		btail = au_dbtaildir(dentry);
 +	for (bindex = btop; bindex <= btail; bindex++) {
-+		h_dentry = au_h_dptr(dentry, bindex);
-+		if (!h_dentry
++		h_args.dentry = au_h_dptr(dentry, bindex);
++		if (!h_args.dentry
 +		    && (bindex == bwh && inode))
-+			h_dentry = au_hi_wh(inode, bindex);
-+		if (!h_dentry)
++			h_args.dentry = au_hi_wh(inode, bindex);
++		if (!h_args.dentry)
 +			continue;
 +
-+		AuDbg("b%d, %pd\n", bindex, h_dentry);
-+		h_nfs = !!au_test_nfs(h_dentry->d_sb);
-+		spin_lock(&h_dentry->d_lock);
-+		h_name = &h_dentry->d_name;
-+		if (unlikely(do_udba
-+			     && bindex != bwh
-+			     && !is_root
-+			     && ((!h_nfs
-+				  && (unhashed != !!d_unhashed(h_dentry)
-+				      || (!tmpfile && !dirren
-+					  && !au_qstreq(name, h_name))
-+					  ))
-+				 || (h_nfs
-+				     && !(flags & LOOKUP_OPEN)
-+				     && (h_dentry->d_flags
-+					 & DCACHE_NFSFS_RENAMED)))
-+			    )) {
-+			int h_unhashed;
-+
-+			h_unhashed = d_unhashed(h_dentry);
-+			spin_unlock(&h_dentry->d_lock);
-+			AuDbg("unhash 0x%x 0x%x, %pd %pd\n",
-+			      unhashed, h_unhashed, dentry, h_dentry);
-+			goto err;
++		AuDbg("b%d, %pd\n", bindex, h_args.dentry);
++		h_nfs = !!au_test_nfs(h_args.dentry->d_sb);
++		if (qname) {
++			spin_lock(&h_args.dentry->d_lock);
++			h_name = &h_args.dentry->d_name;
++			if (unlikely(do_udba
++				     && bindex != bwh
++				     && !is_root
++				     && ((!h_nfs
++					  && (unhashed != !!d_unhashed(h_args.dentry)
++					      || (!tmpfile && !dirren
++						  && !au_qstreq(qname, h_name))
++						  ))
++					 || (h_nfs
++					     && !(h_args.flags & LOOKUP_OPEN)
++					     && (h_args.dentry->d_flags
++						 & DCACHE_NFSFS_RENAMED)))
++				    )) {
++				int h_unhashed;
++
++				h_unhashed = d_unhashed(h_args.dentry);
++				spin_unlock(&h_args.dentry->d_lock);
++				AuDbg("unhash 0x%x 0x%x, %pd %pd\n",
++				      unhashed, h_unhashed, dentry,
++				      h_args.dentry);
++				goto err;
++			}
++			spin_unlock(&h_args.dentry->d_lock);
++
++			/* is it possible h_args.dentry is NULL or negative? */
++			h_parent = dget_parent(h_args.dentry);
++			h_args.dir = d_inode(h_parent);
 +		}
-+		spin_unlock(&h_dentry->d_lock);
 +
-+		err = au_do_h_d_reval(h_dentry, flags, dentry, bindex);
++		AuDbg("b%d\n", bindex);
++		take_dentry_name_snapshot(&h_nameshot, h_args.dentry);
++		err = au_do_h_d_reval(&h_args);
++		release_dentry_name_snapshot(&h_nameshot);
++		dput(h_parent);
 +		if (unlikely(err))
 +			/* do not goto err, to keep the errno */
 +			break;
@@ -8934,12 +8974,12 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +			continue;
 +
 +		/* UDBA tests */
-+		if (unlikely(!!inode != d_is_positive(h_dentry)))
++		if (unlikely(!!inode != d_is_positive(h_args.dentry)))
 +			goto err;
 +
 +		h_inode = NULL;
-+		if (d_is_positive(h_dentry))
-+			h_inode = d_inode(h_dentry);
++		if (d_is_positive(h_args.dentry))
++			h_inode = d_inode(h_args.dentry);
 +		h_plus = plus;
 +		h_mode = mode;
 +		h_cached_inode = h_inode;
@@ -8954,10 +8994,10 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +			if (unlikely(plus != h_plus && !tmpfile))
 +				goto err;
 +		} else {
-+			if (unlikely(!(h_dentry->d_flags & DCACHE_NFSFS_RENAMED)
++			if (unlikely(!(h_args.dentry->d_flags & DCACHE_NFSFS_RENAMED)
 +				     && !is_root
-+				     && !IS_ROOT(h_dentry)
-+				     && unhashed != d_unhashed(h_dentry)))
++				     && !IS_ROOT(h_args.dentry)
++				     && unhashed != d_unhashed(h_args.dentry)))
 +				goto err;
 +		}
 +		if (unlikely(mode != h_mode
@@ -9043,16 +9083,17 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +/*
 + * if valid returns 1, otherwise 0.
 + */
-+static int aufs_d_revalidate(struct dentry *dentry, unsigned int flags)
++static int au_do_d_reval(struct au_d_reval_args *args)
 +{
 +	int valid, err;
 +	unsigned int sigen;
 +	unsigned char do_udba, dirren;
 +	struct super_block *sb;
 +	struct inode *inode;
++	struct dentry *dentry = args->dentry;
 +
 +	/* todo: support rcu-walk? */
-+	if (flags & LOOKUP_RCU)
++	if (args->flags & LOOKUP_RCU)
 +		return -ECHILD;
 +
 +	valid = 0;
@@ -9098,7 +9139,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +	di_downgrade_lock(dentry, AuLock_IR);
 +
 +	err = -EINVAL;
-+	if (!(flags & (LOOKUP_OPEN | LOOKUP_EMPTY))
++	if (!(args->flags & (LOOKUP_OPEN | LOOKUP_EMPTY))
 +	    && inode
 +	    && !(inode->i_state && I_LINKABLE)
 +	    && (IS_DEADDIR(inode) || !vfsub_inode_nlink(inode, AU_I_AUFS))) {
@@ -9121,7 +9162,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +	}
 +
 +	dirren = !!au_opt_test(au_mntflags(sb), DIRREN);
-+	err = h_d_revalidate(dentry, inode, flags, do_udba, dirren);
++	err = h_d_revalidate(args, inode, do_udba, dirren);
 +	if (unlikely(!err && do_udba && au_dbtop(dentry) < 0)) {
 +		err = -EIO;
 +		AuDbg("both of real entry and whiteout found, %p, err %d\n",
@@ -9143,6 +9184,28 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +	return valid;
 +}
 +
++static int aufs_d_revalidate(struct inode *dir, const struct qstr *qname,
++			     struct dentry *dentry, unsigned int flags)
++{
++	struct au_d_reval_args args = {
++		.dir	= dir,
++		.qname	= qname,
++		.dentry	= dentry,
++		.flags	= flags
++	};
++	return au_do_d_reval(&args);
++}
++
++static int aufs_d_weak_revalidate(struct dentry *dentry, unsigned int flags)
++{
++	struct au_d_reval_args args = {
++		/* dir and qname are NULL */
++		.dentry	= dentry,
++		.flags	= flags
++	};
++	return au_do_d_reval(&args);
++}
++
 +static void aufs_d_release(struct dentry *dentry)
 +{
 +	if (au_di(dentry)) {
@@ -9153,7 +9216,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +
 +const struct dentry_operations aufs_dop = {
 +	.d_revalidate		= aufs_d_revalidate,
-+	.d_weak_revalidate	= aufs_d_revalidate,
++	.d_weak_revalidate	= aufs_d_weak_revalidate,
 +	.d_release		= aufs_d_release
 +};
 +
@@ -21815,7 +21878,7 @@ 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	2025-02-23 15:17:52.396603162 +0100
++++ linux/fs/aufs/i_op.c	2025-03-24 19:42:15.066507502 +0100
 @@ -0,0 +1,1522 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -29557,7 +29620,7 @@ 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	2025-02-23 15:17:52.396603162 +0100
++++ linux/fs/aufs/rwsem.h	2025-03-24 19:42:15.066507502 +0100
 @@ -0,0 +1,89 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -33111,8 +33174,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	2025-02-23 15:17:52.396603162 +0100
-@@ -0,0 +1,966 @@
++++ linux/fs/aufs/vfsub.c	2025-03-24 19:42:15.066507502 +0100
+@@ -0,0 +1,964 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -33834,20 +33897,18 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
 +		goto out;
 +	}
 +
++	err = security_file_truncate(h_file);
++	if (err)
++		goto out;
++	err = fsnotify_truncate_perm(&h_file->f_path, length);
++	if (err)
++		goto out;
++	h_idmap = mnt_idmap(h_path->mnt);
 +	h_inode = d_inode(h_path->dentry);
 +	h_sb = h_inode->i_sb;
 +	lockdep_off();
 +	sb_start_write(h_sb);
-+	lockdep_on();
-+	err = security_file_truncate(h_file);
-+	if (!err) {
-+		h_idmap = mnt_idmap(h_path->mnt);
-+		lockdep_off();
-+		err = do_truncate(h_idmap, h_path->dentry, length, attr,
-+				  h_file);
-+		lockdep_on();
-+	}
-+	lockdep_off();
++	err = do_truncate(h_idmap, h_path->dentry, length, attr, h_file);
 +	sb_end_write(h_sb);
 +	lockdep_on();
 +
@@ -39288,7 +39349,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	2025-02-23 15:17:52.396603162 +0100
++++ linux/include/uapi/linux/aufs_type.h	2025-03-24 19:42:15.066507502 +0100
 @@ -0,0 +1,452 @@
 +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 +/*
@@ -39332,7 +39393,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.13-20250210"
++#define AUFS_VERSION	"6.x-rcN-20250210"
 +
 +/* todo? move this to linux-2.6.19/include/magic.h */
 +#define AUFS_SUPER_MAGIC	('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
@@ -39743,10 +39804,10 @@ diff -urN /usr/share/empty/include/uapi/linux/aufs_type.h linux/include/uapi/lin
 +
 +#endif /* __AUFS_TYPE_H__ */
 SPDX-License-Identifier: GPL-2.0
-aufs6.13 loopback patch
+aufs6.x-rcN loopback patch
 
 diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 78dc1c0c6680..022d8cf26eb6 100644
+index 360a30bda4ec..d46554da825c 100644
 --- a/drivers/block/loop.c
 +++ b/drivers/block/loop.c
 @@ -54,7 +54,7 @@ struct loop_device {
@@ -39758,8 +39819,8 @@ index 78dc1c0c6680..022d8cf26eb6 100644
  	struct block_device *lo_device;
  
  	gfp_t		old_gfp_mask;
-@@ -526,6 +526,15 @@ static inline void loop_update_dio(struct loop_device *lo)
- 				lo->use_dio);
+@@ -529,6 +529,15 @@ static int do_req_filebacked(struct loop_device *lo, struct request *rq)
+ 	}
  }
  
 +static struct file *loop_real_file(struct file *file)
@@ -39774,15 +39835,15 @@ index 78dc1c0c6680..022d8cf26eb6 100644
  static void loop_reread_partitions(struct loop_device *lo)
  {
  	int rc;
-@@ -583,6 +592,7 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -586,6 +595,7 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  {
  	struct file *file = fget(arg);
  	struct file *old_file;
 +	struct file *f, *virt_file = NULL, *old_virt_file;
+ 	unsigned int memflags;
  	int error;
  	bool partscan;
- 	bool is_loop;
-@@ -606,11 +616,19 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -610,11 +620,19 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  	if (!(lo->lo_flags & LO_FLAGS_READ_ONLY))
  		goto out_err;
  
@@ -39802,15 +39863,15 @@ index 78dc1c0c6680..022d8cf26eb6 100644
  
  	error = -EINVAL;
  
-@@ -623,6 +641,7 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
- 	blk_mq_freeze_queue(lo->lo_queue);
+@@ -627,6 +645,7 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+ 	memflags = blk_mq_freeze_queue(lo->lo_queue);
  	mapping_set_gfp_mask(old_file->f_mapping, lo->old_gfp_mask);
  	lo->lo_backing_file = file;
 +	lo->lo_backing_virt_file = virt_file;
  	lo->old_gfp_mask = mapping_gfp_mask(file->f_mapping);
  	mapping_set_gfp_mask(file->f_mapping,
  			     lo->old_gfp_mask & ~(__GFP_IO|__GFP_FS));
-@@ -645,6 +664,8 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -649,6 +668,8 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  	 * dependency.
  	 */
  	fput(old_file);
@@ -39819,7 +39880,7 @@ index 78dc1c0c6680..022d8cf26eb6 100644
  	if (partscan)
  		loop_reread_partitions(lo);
  
-@@ -658,6 +679,8 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -662,6 +683,8 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  	loop_global_unlock(lo, is_loop);
  out_putf:
  	fput(file);
@@ -39828,15 +39889,15 @@ index 78dc1c0c6680..022d8cf26eb6 100644
  	goto done;
  }
  
-@@ -1038,6 +1061,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -1039,6 +1062,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
  			  const struct loop_config *config)
  {
  	struct file *file = fget(config->fd);
 +	struct file *f, *virt_file = NULL;
  	struct address_space *mapping;
+ 	struct queue_limits lim;
  	int error;
- 	loff_t size;
-@@ -1051,6 +1075,13 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -1053,6 +1077,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);
  
@@ -39850,15 +39911,15 @@ index 78dc1c0c6680..022d8cf26eb6 100644
  	/*
  	 * If we don't hold exclusive handle for the device, upgrade to it
  	 * here to avoid changing device under exclusive owner.
-@@ -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;
+@@ -1109,6 +1140,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+ 
  	lo->lo_device = bdev;
  	lo->lo_backing_file = file;
 +	lo->lo_backing_virt_file = virt_file;
  	lo->old_gfp_mask = mapping_gfp_mask(mapping);
  	mapping_set_gfp_mask(mapping, lo->old_gfp_mask & ~(__GFP_IO|__GFP_FS));
  
-@@ -1149,6 +1181,8 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -1154,6 +1186,8 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
  		bd_abort_claiming(bdev, loop_configure);
  out_putf:
  	fput(file);
@@ -39867,7 +39928,7 @@ index 78dc1c0c6680..022d8cf26eb6 100644
  	/* This is safe: open() is still holding a reference. */
  	module_put(THIS_MODULE);
  	return error;
-@@ -1158,11 +1192,13 @@ static void __loop_clr_fd(struct loop_device *lo)
+@@ -1163,11 +1197,13 @@ static void __loop_clr_fd(struct loop_device *lo)
  {
  	struct queue_limits lim;
  	struct file *filp;
@@ -39881,7 +39942,7 @@ index 78dc1c0c6680..022d8cf26eb6 100644
  	spin_unlock_irq(&lo->lo_lock);
  
  	lo->lo_device = NULL;
-@@ -1224,6 +1260,8 @@ static void __loop_clr_fd(struct loop_device *lo)
+@@ -1234,6 +1270,8 @@ static void __loop_clr_fd(struct loop_device *lo)
  	 * fput can take open_mutex which is usually taken before lo_mutex.
  	 */
  	fput(filp);
@@ -39966,10 +40027,10 @@ index e867aa6e757a..4a4f96e29431 100644
  
  /* ---------------------------------------------------------------------- */
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index b74af4ae6dd4..5514fc9ea7bd 100644
+index 74e6b695c291..0ef042505679 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -2259,6 +2259,11 @@ struct super_operations {
+@@ -2309,6 +2309,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 6310b1df..fabedac7 100644
--- a/kernel-multiarch.config
+++ b/kernel-multiarch.config
@@ -35,12 +35,6 @@ CRYPTO_CAST5_AVX_X86_64 all=m
 CRYPTO_CAST6_AVX_X86_64 all=m
 CRYPTO_CHACHA20_NEON arm=m arm64=m
 CRYPTO_CHACHA20_X86_64 all=m
-CRYPTO_CRC32C_INTEL all=m
-CRYPTO_CRC32_ARM_CE arm=m
-CRYPTO_CRC32_PCLMUL all=m
-CRYPTO_CRCT10DIF_ARM64_CE arm64=m
-CRYPTO_CRCT10DIF_ARM_CE arm=m
-CRYPTO_CRCT10DIF_PCLMUL all=m
 CRYPTO_CURVE25519_NEON arm=m
 CRYPTO_CURVE25519_X86 all=m
 CRYPTO_DES3_EDE_X86_64 all=m
@@ -276,7 +270,6 @@ CRYPTO_CTR all=y
 CRYPTO_CTS all=m
 CRYPTO_ECB all=y
 CRYPTO_HCTR2 all=m
-CRYPTO_KEYWRAP all=m
 CRYPTO_LRW all=m
 CRYPTO_PCBC all=m
 CRYPTO_XTS all=m
@@ -304,7 +297,6 @@ CRYPTO_SHA3 all=y
 CRYPTO_SM3 all=m
 CRYPTO_SM3_GENERIC all=m
 CRYPTO_STREEBOG all=m
-CRYPTO_VMAC all=m
 CRYPTO_WP512 all=m
 CRYPTO_XCBC all=m
 CRYPTO_XXHASH all=m
@@ -360,10 +352,16 @@ FIPS_SIGNATURE_SELFTEST all=y
 #- *** FILE: drivers/accel/Kconfig ***
 #-
 DRM_ACCEL all=y
+#- file drivers/accel/amdxdna/Kconfig goes here
 #- file drivers/accel/habanalabs/Kconfig goes here
 #- file drivers/accel/ivpu/Kconfig goes here
 #- file drivers/accel/qaic/Kconfig goes here
 
+#-
+#- *** FILE: drivers/accel/amdxdna/Kconfig ***
+#-
+DRM_ACCEL_AMDXDNA all=m
+
 #-
 #- *** FILE: drivers/accel/habanalabs/Kconfig ***
 #-
@@ -817,6 +815,7 @@ ZRAM_MULTI_COMP all=y
 BT_HCIBTUSB all=m
 BT_HCIBTUSB_AUTOSUSPEND all=y
 BT_HCIBTUSB_POLL_SYNC all=y
+BT_HCIBTUSB_AUTO_ISOC_ALT all=y
 BT_HCIBTUSB_BCM all=y
 BT_HCIBTUSB_MTK all=y
 BT_HCIBTUSB_RTL all=y
@@ -1571,7 +1570,6 @@ XILINX_ZYNQMP_DPDMA all=m
 #- file drivers/dma/amd/Kconfig goes here
 #- file drivers/dma/bestcomm/Kconfig goes here
 #- file drivers/dma/mediatek/Kconfig goes here
-#- file drivers/dma/ptdma/Kconfig goes here
 #- file drivers/dma/qcom/Kconfig goes here
 #- file drivers/dma/dw/Kconfig goes here
 #- file drivers/dma/dw-edma/Kconfig goes here
@@ -1589,6 +1587,8 @@ DMATEST all=n
 #-
 #- *** FILE: drivers/dma/amd/Kconfig ***
 #-
+AMD_AE4DMA all=m
+AMD_PTDMA all=m
 AMD_QDMA all=m
 
 #-
@@ -1614,11 +1614,6 @@ HSU_DMA_PCI all=m
 #-
 INTEL_LDMA all=y
 
-#-
-#- *** FILE: drivers/dma/ptdma/Kconfig ***
-#-
-AMD_PTDMA all=m
-
 #-
 #- *** FILE: drivers/dma/qcom/Kconfig ***
 #-
@@ -1661,7 +1656,6 @@ EDAC_I10NM all=m
 EDAC_PND2 all=m
 EDAC_IGEN6 all=m
 EDAC_PASEMI ppc64=m
-EDAC_CELL ppc64=m
 EDAC_THUNDERX arm64=m
 EDAC_ARMADA_XP arm=y
 EDAC_XGENE arm64=m
@@ -2011,8 +2005,7 @@ DRM_PANIC_FOREGROUND_COLOR all=0xffffff
 DRM_PANIC_BACKGROUND_COLOR all=0x000000
 DRM_PANIC_DEBUG all=n
 DRM_PANIC_SCREEN all="kmsg"
-DRM_FBDEV_EMULATION all=y
-DRM_FBDEV_OVERALLOC all=100
+#- file drivers/gpu/drm/clients/Kconfig goes here
 DRM_LOAD_EDID_FIRMWARE all=y
 #- file drivers/gpu/drm/display/Kconfig goes here
 #- file drivers/gpu/drm/i2c/Kconfig goes here
@@ -2209,6 +2202,13 @@ DRM_DW_HDMI_I2S_AUDIO arm=m arm64=m
 DRM_DW_HDMI_GP_AUDIO arm=m arm64=m
 DRM_DW_HDMI_CEC arm=m arm64=m
 
+#-
+#- *** FILE: drivers/gpu/drm/clients/Kconfig ***
+#-
+DRM_FBDEV_EMULATION all=y
+DRM_FBDEV_OVERALLOC all=100
+DRM_CLIENT_LOG all=n
+
 #-
 #- *** FILE: drivers/gpu/drm/display/Kconfig ***
 #-
@@ -2794,11 +2794,12 @@ HID_ALPS all=m
 HID_MCP2200 all=m
 HID_MCP2221 all=m
 #- file drivers/hid/bpf/Kconfig goes here
-#- file drivers/hid/usbhid/Kconfig goes here
 #- file drivers/hid/i2c-hid/Kconfig goes here
 #- file drivers/hid/intel-ish-hid/Kconfig goes here
 #- file drivers/hid/amd-sfh-hid/Kconfig goes here
 #- file drivers/hid/surface-hid/Kconfig goes here
+#- file drivers/hid/intel-thc-hid/Kconfig goes here
+#- file drivers/hid/usbhid/Kconfig goes here
 
 #-
 #- *** FILE: drivers/hid/amd-sfh-hid/Kconfig ***
@@ -2825,6 +2826,13 @@ I2C_HID_OF_GOODIX all=m
 INTEL_ISH_HID all=m
 INTEL_ISH_FIRMWARE_DOWNLOADER all=m
 
+#-
+#- *** FILE: drivers/hid/intel-thc-hid/Kconfig ***
+#-
+INTEL_THC_HID all=m
+INTEL_QUICKSPI all=m
+INTEL_QUICKI2C all=m
+
 #-
 #- *** FILE: drivers/hid/surface-hid/Kconfig ***
 #-
@@ -3018,6 +3026,7 @@ SENSORS_PCF8591 all=m
 #- file drivers/hwmon/pmbus/Kconfig goes here
 SENSORS_PT5161L all=m
 SENSORS_PWM_FAN all=m
+SENSORS_QNAP_MCU_HWMON all=m
 SENSORS_RASPBERRYPI_HWMON arm=m arm64=m
 SENSORS_SL28CPLD all=m
 SENSORS_SBTSI all=m
@@ -3112,6 +3121,7 @@ SENSORS_ADM1275 all=m
 SENSORS_ADP1050 all=m
 SENSORS_BEL_PFE all=m
 SENSORS_BPA_RS600 all=m
+SENSORS_CRPS all=m
 SENSORS_DELTA_AHE50DC_FAN all=m
 SENSORS_FSP_3Y all=m
 SENSORS_IBM_CFFPS all=m
@@ -3160,6 +3170,8 @@ SENSORS_Q54SJ108A2 all=m
 SENSORS_STPDDC60 all=m
 SENSORS_TDA38640 all=m
 SENSORS_TDA38640_REGULATOR all=y
+SENSORS_TPS25990 all=m
+SENSORS_TPS25990_REGULATOR all=y
 SENSORS_TPS40422 all=m
 SENSORS_TPS53679 all=m
 SENSORS_TPS546D24 all=m
@@ -3660,6 +3672,7 @@ AD7293 all=m
 AD7303 all=m
 AD8460 all=m
 AD8801 all=m
+BD79703 all=m
 CIO_DAC all=m
 DPOT_DAC all=m
 DS4424 all=m
@@ -3809,6 +3822,7 @@ INV_MPU6050_SPI all=m
 IIO_ST_LSM6DSX all=m
 IIO_ST_LSM6DSX_I2C all=m
 IIO_ST_LSM6DSX_SPI all=m
+IIO_ST_LSM6DSX_I3C all=m
 
 #-
 #- *** FILE: drivers/iio/imu/st_lsm9ds0/Kconfig ***
@@ -3848,7 +3862,6 @@ ISL76682 all=m
 HID_SENSOR_ALS all=m
 HID_SENSOR_PROX all=m
 JSA1212 all=m
-ROHM_BU27008 all=m
 ROHM_BU27034 all=m
 RPR0521 all=m
 SENSORS_LM3533 all=m
@@ -3861,6 +3874,7 @@ MAX44009 all=m
 NOA1305 all=m
 OPT3001 all=m
 OPT4001 all=m
+OPT4060 all=m
 PA12203001 all=m
 SI1133 all=m
 SI1145 all=m
@@ -4222,7 +4236,6 @@ INPUT_MOUSEDEV_SCREEN_X all=1024
 INPUT_MOUSEDEV_SCREEN_Y all=768
 INPUT_JOYDEV all=m
 INPUT_EVDEV all=m
-INPUT_EVBUG all=n
 #- Input Device Drivers
 #- file drivers/input/keyboard/Kconfig goes here
 #- file drivers/input/mouse/Kconfig goes here
@@ -4405,6 +4418,7 @@ INPUT_SOC_BUTTON_ARRAY all=m
 INPUT_DRV260X_HAPTICS all=m
 INPUT_DRV2665_HAPTICS all=m
 INPUT_DRV2667_HAPTICS all=m
+INPUT_QNAP_MCU all=m
 INPUT_RAVE_SP_PWRBUTTON all=m
 INPUT_RT5120_PWRKEY all=m
 
@@ -4770,6 +4784,7 @@ LEDS_PCA955X all=m
 LEDS_PCA955X_GPIO all=y
 LEDS_PCA963X all=m
 LEDS_PCA995X all=m
+LEDS_QNAP_MCU all=m
 LEDS_WM831X_STATUS all=m
 LEDS_WM8350 all=m
 LEDS_DA903X all=m
@@ -4791,6 +4806,7 @@ LEDS_OT200 all=m
 LEDS_MENF21BMC all=m
 LEDS_IS31FL319X all=m
 LEDS_IS31FL32XX all=m
+LEDS_UPBOARD 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
@@ -5729,7 +5745,6 @@ USB_MR800 all=m
 USB_RAREMONO all=m
 #- file drivers/media/radio/si470x/Kconfig goes here
 #- file drivers/media/radio/si4713/Kconfig goes here
-#- file drivers/media/radio/wl128x/Kconfig goes here
 V4L_RADIO_ISA_DRIVERS all=y
 RADIO_AZTECH alpha=m i386=m
 RADIO_CADET alpha=m i386=m
@@ -5758,11 +5773,6 @@ USB_SI4713 all=m
 PLATFORM_SI4713 all=m
 I2C_SI4713 all=m
 
-#-
-#- *** FILE: drivers/media/radio/wl128x/Kconfig ***
-#-
-RADIO_WL128X all=m
-
 #-
 #- *** FILE: drivers/media/rc/Kconfig ***
 #-
@@ -6312,8 +6322,10 @@ 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_QNAP_MCU all=m
 MFD_RSMU_I2C all=m
 MFD_RSMU_SPI all=m
+MFD_UPBOARD_FPGA all=m
 
 #-
 #- *** FILE: drivers/misc/Kconfig ***
@@ -6357,6 +6369,7 @@ PCI_ENDPOINT_TEST all=m
 XILINX_SDFEC all=m
 HISI_HIKEY_USB all=m
 OPEN_DICE all=m
+NTSYNC all=m
 VCPU_STALL_DETECTOR all=m
 TPS6594_ESM all=m
 TPS6594_PFSM all=m
@@ -8260,7 +8273,7 @@ NXP_TJA11XX_PHY all=m
 NCN26000_PHY all=m
 #- file drivers/net/phy/qcom/Kconfig goes here
 QSEMI_PHY all=m
-REALTEK_PHY all=m
+#- file drivers/net/phy/realtek/Kconfig goes here
 RENESAS_PHY all=m
 ROCKCHIP_PHY all=m
 SMSC_PHY all=m
@@ -8295,6 +8308,11 @@ QCA83XX_PHY all=m
 QCA808X_PHY all=m
 QCA807X_PHY all=m
 
+#-
+#- *** FILE: drivers/net/phy/realtek/Kconfig ***
+#-
+REALTEK_PHY all=m
+
 #-
 #- *** FILE: drivers/net/plip/Kconfig ***
 #-
@@ -9175,6 +9193,7 @@ NVME_TARGET_FCLOOP all=m
 NVME_TARGET_TCP all=m
 NVME_TARGET_TCP_TLS all=y
 NVME_TARGET_AUTH all=y
+NVME_TARGET_PCI_EPF all=m
 
 #-
 #- *** FILE: drivers/nvmem/Kconfig ***
@@ -10192,6 +10211,7 @@ CHARGER_RT9471 all=m
 CHARGER_CROS_USBPD all=m
 CHARGER_CROS_PCHG all=m
 CHARGER_CROS_CONTROL all=m
+FUEL_GAUGE_STC3117 all=m
 CHARGER_UCS1002 all=m
 CHARGER_BD99954 all=m
 CHARGER_WILCO all=m
@@ -10230,6 +10250,12 @@ PPS_CLIENT_LDISC all=m
 PPS_CLIENT_PARPORT all=m
 PPS_CLIENT_GPIO all=m
 
+#-
+#- *** FILE: drivers/pps/generators/Kconfig ***
+#-
+PPS_GENERATOR all=m
+PPS_GENERATOR_DUMMY all=n
+
 #-
 #- *** FILE: drivers/ptp/Kconfig ***
 #-
@@ -11055,6 +11081,7 @@ SPI_NXP_FLEXSPI all=m
 SPI_GPIO all=m
 SPI_INTEL_PCI all=m
 SPI_INTEL_PLATFORM all=m
+SPI_KSPI2 all=m
 SPI_LM70_LLP all=m
 SPI_MPC52xx_PSC ppc=m
 SPI_FSL_SPI all=m
@@ -12132,8 +12159,7 @@ USB_SERIAL_DEBUG all=m
 #-
 #- *** FILE: drivers/usb/storage/Kconfig ***
 #-
-#- NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#- also be needed; see USB_STORAGE Help for more info
+#- NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; see USB_STORAGE Help for more info
 USB_STORAGE all=m
 USB_STORAGE_DEBUG all=n
 USB_STORAGE_REALTEK all=m
@@ -12172,6 +12198,7 @@ TYPEC_WUSB3801 all=m
 #-
 TYPEC_DP_ALTMODE all=m
 TYPEC_NVIDIA_ALTMODE all=m
+TYPEC_TBT_ALTMODE all=m
 
 #-
 #- *** FILE: drivers/usb/typec/mux/Kconfig ***
@@ -12211,6 +12238,7 @@ UCSI_CCG all=m
 UCSI_ACPI all=m
 UCSI_STM32G0 all=m
 UCSI_PMIC_GLINK all=m
+CROS_EC_UCSI all=m
 
 #-
 #- *** FILE: drivers/usb/usbip/Kconfig ***
@@ -13136,6 +13164,7 @@ CUSE all=m
 VIRTIO_FS all=m
 FUSE_DAX all=y
 FUSE_PASSTHROUGH all=y
+FUSE_IO_URING all=y
 
 #-
 #- *** FILE: fs/gfs2/Kconfig ***
@@ -13601,6 +13630,7 @@ RT_GROUP_SCHED all=n
 UCLAMP_TASK_GROUP all=y
 CGROUP_PIDS all=y
 CGROUP_RDMA all=y
+CGROUP_DMEM all=y
 CGROUP_FREEZER all=y
 CGROUP_HUGETLB all=y
 CPUSETS all=y
@@ -13750,6 +13780,8 @@ MODULE_UNLOAD all=y
 MODULE_FORCE_UNLOAD all=y
 MODULE_UNLOAD_TAINT_TRACKING all=y
 MODVERSIONS all=y
+EXTENDED_MODVERSIONS all=n
+BASIC_MODVERSIONS all=y
 MODULE_SRCVERSION_ALL all=n
 MODULE_SIG all=y
 MODULE_SIG_FORCE all=n
@@ -13813,6 +13845,8 @@ RCU_NOCB_CPU all=n
 #-
 RCU_SCALE_TEST all=m
 RCU_TORTURE_TEST all=m
+RCU_TORTURE_TEST_CHK_RDR_STATE all=n
+RCU_TORTURE_TEST_LOG_CPU all=n
 RCU_REF_SCALE_TEST all=m
 RCU_CPU_STALL_TIMEOUT all=60
 RCU_EXP_CPU_STALL_TIMEOUT all=0
@@ -13889,11 +13923,17 @@ KPROBE_EVENT_GEN_TEST all=m
 #- *** FILE: kernel/trace/rv/Kconfig ***
 #-
 RV all=y
-RV_MON_WWNR all=y
+#- file kernel/trace/rv/monitors/wip/Kconfig goes here
+#- file kernel/trace/rv/monitors/wwnr/Kconfig goes here
 RV_REACTORS all=y
 RV_REACT_PRINTK all=y
 RV_REACT_PANIC all=y
 
+#-
+#- *** FILE: kernel/trace/rv/monitors/wwnr/Kconfig ***
+#-
+RV_MON_WWNR all=y
+
 #-
 #- *** FILE: lib/Kconfig ***
 #-
@@ -13910,11 +13950,6 @@ CRC_T10DIF all=y
 CRC64_ROCKSOFT all=y
 CRC_ITU_T all=m
 CRC32 all=y
-CRC32_SELFTEST all=n
-CRC32_SLICEBY8 all=y
-CRC32_SLICEBY4 all=n
-CRC32_SARWATE all=n
-CRC32_BIT all=n
 CRC64 all=y
 CRC4 all=m
 CRC7 all=m
@@ -14254,7 +14289,10 @@ FLATMEM_MANUAL all=n alpha=y arm=y arm64=n ppc=y sparc=y sparc64=n
 SPARSEMEM_MANUAL all=y alpha=n arm=n arm64=y ppc=n sparc=n sparc64=y
 SPARSEMEM_VMEMMAP all=y
 MEMORY_HOTPLUG all=y
-MEMORY_HOTPLUG_DEFAULT_ONLINE all=y
+MHP_DEFAULT_ONLINE_TYPE_OFFLINE all=y
+MHP_DEFAULT_ONLINE_TYPE_ONLINE_AUTO all=n
+MHP_DEFAULT_ONLINE_TYPE_ONLINE_KERNEL all=n
+MHP_DEFAULT_ONLINE_TYPE_ONLINE_MOVABLE all=n
 MEMORY_HOTREMOVE all=y
 BALLOON_COMPACTION all=y
 COMPACTION all=y
@@ -14292,6 +14330,7 @@ PTE_MARKER_UFFD_WP all=y
 LRU_GEN all=y
 LRU_GEN_ENABLED all=y
 LRU_GEN_STATS all=n
+PT_RECLAIM all=y
 #- file mm/damon/Kconfig goes here
 
 #-
@@ -14317,8 +14356,6 @@ DAMON all=y
 DAMON_VADDR all=y arm=n
 DAMON_PADDR all=y arm=n
 DAMON_SYSFS all=y
-DAMON_DBGFS_DEPRECATED all=n
-DAMON_DBGFS all=y
 DAMON_RECLAIM all=y
 DAMON_LRU_SORT all=y
 
@@ -15372,6 +15409,7 @@ TLS_TOE all=n
 #- *** FILE: net/unix/Kconfig ***
 #-
 UNIX all=y
+AF_UNIX_OOB all=y
 UNIX_DIAG all=m
 
 #-
@@ -15418,12 +15456,14 @@ XFRM_MIGRATE all=y
 XFRM_STATISTICS all=y
 NET_KEY all=m
 NET_KEY_MIGRATE all=y
+XFRM_IPTFS all=m
 
 #-
 #- *** FILE: samples/Kconfig ***
 #-
 SAMPLES all=n
 #- file samples/rust/Kconfig goes here
+#- file samples/damon/Kconfig goes here
 
 #-
 #- *** FILE: scripts/gcc-plugins/Kconfig ***
@@ -15900,6 +15940,8 @@ SND_HDA_SCODEC_CS35L56_I2C all=m
 SND_HDA_SCODEC_CS35L56_SPI all=m
 SND_HDA_SCODEC_TAS2781_I2C all=m
 #- Set to Y if you want auto-loading the side codec driver
+SND_HDA_SCODEC_TAS2781_SPI all=m
+#- Set to Y if you want auto-loading the side codec driver
 SND_HDA_CODEC_REALTEK all=m
 #- Set to Y if you want auto-loading the codec driver
 SND_HDA_CODEC_ANALOG all=m
@@ -16641,9 +16683,25 @@ RD_ZSTD all=y
 #-
 ARCX_ANYBUS_CONTROLLER arm=m arm64=m
 CPU5_WDT i386=m x86_64=m
+CRC32_BIT all=n
+CRC32_SARWATE all=n
+CRC32_SELFTEST all=n
+CRC32_SLICEBY4 all=n
+CRC32_SLICEBY8 all=y
+CRYPTO_CRC32C_INTEL all=m
+CRYPTO_CRC32_ARM_CE arm=m
+CRYPTO_CRC32_PCLMUL all=m
+CRYPTO_CRCT10DIF_ARM64_CE arm64=m
+CRYPTO_CRCT10DIF_ARM_CE arm=m
+CRYPTO_CRCT10DIF_PCLMUL all=m
+CRYPTO_KEYWRAP all=m
+CRYPTO_VMAC all=m
+DAMON_DBGFS all=y
+DAMON_DBGFS_DEPRECATED all=n
 DEBUG_TIMEKEEPING all=n
 EDAC_AMD8111 powerpc=m
 EDAC_AMD8131 powerpc=m
+EDAC_CELL ppc64=m
 FIELDBUS_DEV all=m
 GPIO_LOGICV all=m
 HMS_ANYBUSS_BUS arm=m arm64=m
@@ -16652,20 +16710,24 @@ I2C_AMD756_S4882 all=m sparc=
 I2C_COMPAT all=y
 I2C_NFORCE2_S4985 all=m
 INFINIBAND_HNS arm64=m
+INPUT_EVBUG all=n
 KEYBOARD_MCS all=m
 KS7010 all=m
 LIB80211 all=m
 LIB80211_DEBUG all=n
 LTE_GDM724X all=m
+MEMORY_HOTPLUG_DEFAULT_ONLINE all=y
 MESON_GX_PM_DOMAINS arm64=m
 MODULE_COMPRESS_NONE all=n
 R8712U all=m
+RADIO_WL128X all=m
 REISERFS_CHECK all=n
 REISERFS_FS all=m
 REISERFS_FS_POSIX_ACL all=y
 REISERFS_FS_SECURITY all=y
 REISERFS_FS_XATTR all=y
 REISERFS_PROC_INFO all=y
+ROHM_BU27008 all=m
 RTL8192E all=m
 RTLLIB all=m
 RTLLIB_CRYPTO_CCMP all=m
diff --git a/update-source.sh b/update-source.sh
index 760f5554..9658f7ac 100755
--- a/update-source.sh
+++ b/update-source.sh
@@ -1,8 +1,8 @@
 #!/bin/sh
 set -xe
 
-BRANCH=aufs6.13
-#BRANCH=aufs6.x-rcN
+#BRANCH=aufs6.13
+BRANCH=aufs6.x-rcN
 
 # aufs6
 [ -d aufs-standalone ] || git clone https://github.com/sfjro/aufs-standalone.git
================================================================

---- gitweb:

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



More information about the pld-cvs-commit mailing list