[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