aufs6.x-rcN base patch
diff --git a/MAINTAINERS b/MAINTAINERS
-index 379945f82a64..b3b8fbca497b 100644
+index f61eb221415b..b192cff97244 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -3455,6 +3455,19 @@ F: include/uapi/linux/audit.h
+@@ -3522,6 +3522,19 @@ F: include/uapi/linux/audit.h
F: kernel/audit*
F: lib/*audit.c
M: Miguel Ojeda <ojeda@kernel.org>
S: Maintained
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index ad92192c7d61..8ca56da3ca69 100644
+index 1518a6423279..7a9928c6db9d 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -645,6 +645,24 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
return error;
diff --git a/fs/namespace.c b/fs/namespace.c
-index df137ba19d37..faae7f8644ac 100644
+index ab467ee58341..8cd34f760f63 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
-@@ -852,6 +852,12 @@ static inline int check_mnt(struct mount *mnt)
+@@ -963,6 +963,12 @@ static inline int check_mnt(struct mount *mnt)
return mnt->mnt_ns == current->nsproxy->mnt_ns;
}
* vfsmount lock must be held for write
*/
diff --git a/fs/splice.c b/fs/splice.c
-index 0878b852b355..d83f9e5cddbc 100644
+index 5969b7a1d353..21db9b057d60 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -756,8 +756,8 @@ static int warn_unsupported(struct file *file, const char *op)
unsigned int p_space;
int ret;
diff --git a/include/linux/fs.h b/include/linux/fs.h
-index e654435f1651..433a4f08dab4 100644
+index 066555ad1bf8..2d30def9a580 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
-@@ -1364,6 +1364,7 @@ extern void fasync_free(struct fasync_struct *);
+@@ -1383,6 +1383,7 @@ extern void fasync_free(struct fasync_struct *);
/* can be called from interrupts */
extern void kill_fasync(struct fasync_struct **, int, int);
extern void __f_setown(struct file *filp, struct pid *, enum pid_type, int force);
extern int f_setown(struct file *filp, unsigned long arg, int force);
extern void f_delown(struct file *filp);
-@@ -2117,6 +2118,7 @@ struct file_operations {
+@@ -2110,6 +2111,7 @@ struct file_operations {
ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);
unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
int (*check_flags)(int);
ino = inode->i_ino;
}
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index 8a74cdcc9af0..c05071b53f5b 100644
+index e35a0398db63..d9080329fd7a 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
-@@ -284,7 +284,10 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
+@@ -285,7 +285,10 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
const char *name = NULL;
if (file) {
dev = inode->i_sb->s_dev;
ino = inode->i_ino;
pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
-@@ -1934,7 +1937,7 @@ static int show_numa_map(struct seq_file *m, void *v)
+@@ -1942,7 +1945,7 @@ static int show_numa_map(struct seq_file *m, void *v)
struct proc_maps_private *proc_priv = &numa_priv->proc_maps;
struct vm_area_struct *vma = v;
struct numa_maps *md = &numa_priv->md;
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 8bbcccbc5565..d5006a1f4271 100644
+index f3f196e4d66d..831812fd4d07 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
-@@ -1933,6 +1933,43 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,
+@@ -2059,6 +2059,43 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,
unmap_mapping_range(mapping, holebegin, holelen, 0);
}
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 500e536796ca..ad766e2110ca 100644
+index 3b8475007734..7a2de3f818bc 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
-@@ -413,6 +413,9 @@ struct vm_region {
+@@ -504,6 +504,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 */
int vm_usage; /* region usage count (access under nommu_region_sem) */
bool vm_icache_flushed : 1; /* true if the icache has been flushed for
-@@ -494,6 +497,9 @@ struct vm_area_struct {
+@@ -575,6 +578,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). */
+#endif
void * vm_private_data; /* was vm_pte (shared mem) */
- #ifdef CONFIG_SWAP
+ #ifdef CONFIG_ANON_VMA_NAME
diff --git a/kernel/fork.c b/kernel/fork.c
-index 08969f5aa38d..61871700033a 100644
+index 9f7fe3541897..f9e44ca88a7d 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -661,7 +661,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
+@@ -664,7 +664,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
if (file) {
struct address_space *mapping = file->f_mapping;
obj-$(CONFIG_SHRINKER_DEBUG) += shrinker_debug.o
+obj-$(CONFIG_AUFS_FS:m=y) += prfile.o
diff --git a/mm/filemap.c b/mm/filemap.c
-index 08341616ae7a..410ca60fbf39 100644
+index c4d4ace9cc70..257da81286d1 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
-@@ -3418,7 +3418,7 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
+@@ -3437,7 +3437,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);
if (folio->mapping != mapping) {
folio_unlock(folio);
diff --git a/mm/mmap.c b/mm/mmap.c
-index 2def55555e05..fefc5c67e96e 100644
+index 87d929316d57..fac904cd41cd 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -139,7 +139,7 @@ static void remove_vma(struct vm_area_struct *vma)
mpol_put(vma_policy(vma));
vm_area_free(vma);
}
-@@ -590,7 +590,7 @@ inline int vma_expand(struct ma_state *mas, struct vm_area_struct *vma,
+@@ -589,7 +589,7 @@ inline int vma_expand(struct ma_state *mas, struct vm_area_struct *vma,
if (remove_next) {
if (file) {
uprobe_munmap(next, next->vm_start, next->vm_end);
}
if (next->anon_vma)
anon_vma_merge(vma, next);
-@@ -831,7 +831,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
+@@ -830,7 +830,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
again:
if (file) {
uprobe_munmap(next, next->vm_start, next->vm_end);
}
if (next->anon_vma)
anon_vma_merge(vma, next);
-@@ -2228,7 +2228,7 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2224,7 +2224,7 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
goto out_free_mpol;
if (new->vm_file)
if (new->vm_ops && new->vm_ops->open)
new->vm_ops->open(new);
-@@ -2250,7 +2250,7 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2246,7 +2246,7 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
if (new->vm_ops && new->vm_ops->close)
new->vm_ops->close(new);
if (new->vm_file)
out:
mmap_write_unlock(mm);
if (populate)
-@@ -3227,7 +3254,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -3222,7 +3249,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)
kmem_cache_free(vm_region_jar, region);
region = pregion;
result = start;
-@@ -1241,10 +1241,10 @@ unsigned long do_mmap(struct file *file,
+@@ -1242,10 +1242,11 @@ error_just_free:
error:
mas_destroy(&mas);
if (region->vm_file)
- fput(region->vm_file);
-+ vmr_fput(region);
++ vmr_fput(region);
kmem_cache_free(vm_region_jar, region);
if (vma->vm_file)
-- fput(vma->vm_file);
-+ vma_fput(vma);
+ fput(vma->vm_file);
++ vmr_fput(vma);
vm_area_free(vma);
return ret;
/**
* d_ancestor - search for an ancestor
diff --git a/fs/exec.c b/fs/exec.c
-index a0b1f0337a62..2038fdb508c9 100644
+index ab913243a367..d84461fddf7d 100644
--- a/fs/exec.c
+++ b/fs/exec.c
-@@ -110,6 +110,7 @@ bool path_noexec(const struct path *path)
+@@ -111,6 +111,7 @@ bool path_noexec(const struct path *path)
return (path->mnt->mnt_flags & MNT_NOEXEC) ||
(path->mnt->mnt_sb->s_iflags & SB_I_NOEXEC);
}
/*
* Variant of alloc_empty_file() that doesn't check and modify nr_files.
diff --git a/fs/namespace.c b/fs/namespace.c
-index faae7f8644ac..0310c99a83dd 100644
+index 8cd34f760f63..799a94205906 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
-@@ -456,6 +456,7 @@ void __mnt_drop_write(struct vfsmount *mnt)
+@@ -571,6 +571,7 @@ void __mnt_drop_write(struct vfsmount *mnt)
mnt_dec_writers(real_mount(mnt));
preempt_enable();
}
/**
* mnt_drop_write - give up write access to a mount
-@@ -857,6 +858,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
+@@ -968,6 +969,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
{
return check_mnt(real_mount(mnt));
}
/*
* vfsmount lock must be held for write
-@@ -2060,6 +2062,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+@@ -2165,6 +2167,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
}
return 0;
}
/*
* Drop a reference to a group. Free it if it's through.
diff --git a/fs/open.c b/fs/open.c
-index a81319b6177f..50bb15ea3fb5 100644
+index 82c1a28b3308..e7bd6f1c9474 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -66,6 +66,7 @@ int do_truncate(struct user_namespace *mnt_userns, struct dentry *dentry,
long vfs_truncate(const struct path *path, loff_t length)
{
diff --git a/fs/read_write.c b/fs/read_write.c
-index 328ce8cf9a85..59931848f794 100644
+index 7a2ff6157eda..76f5d4d08687 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -477,6 +477,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
/* 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 d83f9e5cddbc..ac355ebeb9f0 100644
+index 21db9b057d60..abcd14f52c1e 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -763,6 +763,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
/**
* splice_direct_to_actor - splices data directly between two non-pipes
diff --git a/fs/xattr.c b/fs/xattr.c
-index 61107b6bbed2..243855024966 100644
+index adab9a70b536..b2dc4fc0b25b 100644
--- a/fs/xattr.c
+++ b/fs/xattr.c
-@@ -392,6 +392,7 @@ vfs_getxattr_alloc(struct user_namespace *mnt_userns, struct dentry *dentry,
+@@ -407,6 +407,7 @@ vfs_getxattr_alloc(struct user_namespace *mnt_userns, struct dentry *dentry,
*xattr_value = value;
return error;
}
}
+EXPORT_SYMBOL_GPL(task_work_run);
diff --git a/security/security.c b/security/security.c
-index 79d82cb6e469..1c50e6faadcd 100644
+index d1571900a8c7..c8333d54e590 100644
--- a/security/security.c
+++ b/security/security.c
-@@ -1167,6 +1167,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry)
+@@ -1195,6 +1195,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry)
return 0;
return call_int_hook(path_rmdir, 0, dir, dentry);
}
int security_path_unlink(const struct path *dir, struct dentry *dentry)
{
-@@ -1183,6 +1184,7 @@ int security_path_symlink(const struct path *dir, struct dentry *dentry,
+@@ -1211,6 +1212,7 @@ int security_path_symlink(const struct path *dir, struct dentry *dentry,
return 0;
return call_int_hook(path_symlink, 0, dir, dentry, old_name);
}
int security_path_link(struct dentry *old_dentry, const struct path *new_dir,
struct dentry *new_dentry)
-@@ -1191,6 +1193,7 @@ int security_path_link(struct dentry *old_dentry, const struct path *new_dir,
+@@ -1219,6 +1221,7 @@ int security_path_link(struct dentry *old_dentry, const struct path *new_dir,
return 0;
return call_int_hook(path_link, 0, old_dentry, new_dir, new_dentry);
}
int security_path_rename(const struct path *old_dir, struct dentry *old_dentry,
const struct path *new_dir, struct dentry *new_dentry,
-@@ -1211,6 +1214,7 @@ int security_path_truncate(const struct path *path)
+@@ -1239,6 +1242,7 @@ int security_path_truncate(const struct path *path)
return 0;
return call_int_hook(path_truncate, 0, path);
}
int security_path_chmod(const struct path *path, umode_t mode)
{
-@@ -1218,6 +1222,7 @@ int security_path_chmod(const struct path *path, umode_t mode)
+@@ -1246,6 +1250,7 @@ int security_path_chmod(const struct path *path, umode_t mode)
return 0;
return call_int_hook(path_chmod, 0, path, mode);
}
int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
{
-@@ -1225,6 +1230,7 @@ int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
+@@ -1253,6 +1258,7 @@ int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
return 0;
return call_int_hook(path_chown, 0, path, uid, gid);
}
int security_path_chroot(const struct path *path)
{
-@@ -1325,6 +1331,7 @@ int security_inode_permission(struct inode *inode, int mask)
+@@ -1353,6 +1359,7 @@ int security_inode_permission(struct inode *inode, int mask)
return 0;
return call_int_hook(inode_permission, 0, inode, mask);
}
int security_inode_setattr(struct user_namespace *mnt_userns,
struct dentry *dentry, struct iattr *attr)
-@@ -1523,6 +1530,7 @@ int security_file_permission(struct file *file, int mask)
+@@ -1593,6 +1600,7 @@ int security_file_permission(struct file *file, int mask)
return fsnotify_perm(file, mask);
}
int security_file_alloc(struct file *file)
{
+@@ -1726,6 +1734,7 @@ int security_file_truncate(struct file *file)
+ {
+ return call_int_hook(file_truncate, 0, file);
+ }
++EXPORT_SYMBOL_GPL(security_file_truncate);
+
+ int security_task_alloc(struct task_struct *task, unsigned long clone_flags)
+ {
diff -urN /usr/share/empty/Documentation/ABI/testing/debugfs-aufs linux/Documentation/ABI/testing/debugfs-aufs
--- /usr/share/empty/Documentation/ABI/testing/debugfs-aufs 1970-01-01 01:00:00.000000000 +0100
+++ linux/Documentation/ABI/testing/debugfs-aufs 2022-11-05 23:02:18.955889283 +0100
+regular files only.
diff -urN /usr/share/empty/Documentation/filesystems/aufs/README linux/Documentation/filesystems/aufs/README
--- /usr/share/empty/Documentation/filesystems/aufs/README 1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/README 2022-11-05 23:02:18.955889283 +0100
-@@ -0,0 +1,403 @@
++++ linux/Documentation/filesystems/aufs/README 2023-02-20 21:05:51.959693785 +0100
+@@ -0,0 +1,408 @@
+
+Aufs6 -- advanced multi layered unification filesystem version 6.x
+http://aufs.sf.net
+
+2. Download
+----------------------------------------
-+There are three GIT trees for aufs6, aufs6-linux.git,
-+aufs6-standalone.git, and aufs-util.git. Note that there is no "6" in
-+"aufs-util.git."
-+While the aufs-util is always necessary, you need either of aufs6-linux
-+or aufs6-standalone.
++There are three GIT trees for aufs6, aufs-linux.git,
++aufs-standalone.git, and aufs-util.git.
++While the aufs-util is always necessary, you need either of aufs-linux
++or aufs-standalone.
+
-+The aufs6-linux tree includes the whole linux mainline GIT tree,
++The aufs-linux tree includes the whole linux mainline GIT tree,
+git://git.kernel.org/.../torvalds/linux.git.
+And you cannot select CONFIG_AUFS_FS=m for this version, eg. you cannot
+build aufs6 as an external kernel module.
+Several extra patches are not included in this tree. Only
-+aufs6-standalone tree contains them. They are described in the later
++aufs-standalone tree contains them. They are described in the later
+section "Configuration and Compilation."
+
-+On the other hand, the aufs6-standalone tree has only aufs source files
++On the other hand, the aufs-standalone tree has only aufs source files
+and necessary patches, and you can select CONFIG_AUFS_FS=m.
+But you need to apply all aufs patches manually.
+
+"aufs6.0" is for linux-6.0. For latest "linux-6.x-rcN", use
+"aufs6.x-rcN" branch.
+
-+o aufs6-linux tree
++o aufs-linux tree
+$ git clone --reference /your/linux/git/tree \
-+ git://github.com/sfjro/aufs6-linux.git aufs6-linux.git
++ git://github.com/sfjro/aufs-linux.git aufs-linux.git
+- if you don't have linux GIT tree, then remove "--reference ..."
-+$ cd aufs6-linux.git
++$ cd aufs-linux.git
+$ git checkout origin/aufs6.0
+
+Or You may want to directly git-pull aufs into your linux GIT tree, and
+leave the patch-work to GIT.
+$ cd /your/linux/git/tree
-+$ git remote add aufs6 git://github.com/sfjro/aufs6-linux.git
-+$ git fetch aufs6
++$ git remote add aufs git://github.com/sfjro/aufs-linux.git
++$ git fetch aufs
+$ git checkout -b my6.0 v6.0
+$ (add your local change...)
-+$ git pull aufs6 aufs6.0
++$ git pull aufs aufs6.0
+- now you have v6.0 + your_changes + aufs6.0 in you my6.0 branch.
+- you may need to solve some conflicts between your_changes and
+ aufs6.0. in this case, git-rerere is recommended so that you can
+ solve the similar conflicts automatically when you upgrade to 6.1 or
+ later in the future.
+
-+o aufs6-standalone tree
-+$ git clone git://github.com/sfjro/aufs6-standalone.git aufs6-standalone.git
-+$ cd aufs6-standalone.git
++o aufs-standalone tree
++$ git clone git://github.com/sfjro/aufs-standalone.git aufs-standalone.git
++$ cd aufs-standalone.git
+$ git checkout origin/aufs6.0
+
+o aufs-util tree
+----------------------------------------
+Make sure you have git-checkout'ed the correct branch.
+
-+For aufs6-linux tree,
++For aufs-linux tree,
+- enable CONFIG_AUFS_FS.
+- set other aufs configurations if necessary.
+- for aufs5.13 and later
+ CONFIG_LOCKDEP_BITS=21
+ CONFIG_LOCKDEP_CHAINS_BITS=21
+ CONFIG_LOCKDEP_STACK_TRACE_BITS=24
++ Also you will need to expand some constant values in LOCKDEP. Refer
++ to lockdep-debug.patch in aufs-standalone.git.
+
-+For aufs6-standalone tree,
++For aufs-standalone tree,
+There are several ways to build.
+
+1.
+- apply ./aufs6-base.patch too.
+- apply ./aufs6-mmap.patch too.
+- apply ./aufs6-standalone.patch too, if you have a plan to set
-+ CONFIG_AUFS_FS=m. otherwise you don't need ./aufs6-standalone.patch.
++ CONFIG_AUFS_FS=m. otherwise you don't need ./aufs-standalone.patch.
+- copy ./{Documentation,fs,include/uapi/linux/aufs_type.h} files to your
+ kernel source tree. Never copy $PWD/include/uapi/linux/Kbuild.
+- enable CONFIG_AUFS_FS, you can select either
+ then run "make install_ulib" too. And refer to the aufs manual in
+ detail.
+
-+There several other patches in aufs6-standalone.git. They are all
++There several other patches in aufs-standalone.git. They are all
+optional. When you meet some problems, they will help you.
+- aufs6-loopback.patch
+ Supports a nested loopback mount in a branch-fs. This patch is
+ duplication of inode number, which is important for backup tools and
+ other utilities. When you find aufs XINO files for tmpfs branch
+ growing too much, try this patch.
++- lockdep-debug.patch
++ Similar to some kernel configurations for LOCKDEP (see the top of
++ this section), you will need expand some constants in LOCKDEP for
++ aufs if you enable CONFIG_LOCKDEP.
+
+
+4. Usage
+----------------------------------------
+At first, make sure aufs-util are installed, and please read the aufs
-+manual, aufs.6 in aufs-util.git tree.
-+$ man -l aufs.6
++manual, aufs.5 in aufs-util.git tree.
++$ man -l aufs.5
+
+And then,
+$ mkdir /tmp/rw /tmp/aufs
+/tmp/rw. And all of your modification to a file will be applied to
+the one under /tmp/rw. This is called the file based Copy on Write
+(COW) method.
-+Aufs mount options are described in aufs.6.
++Aufs mount options are described in aufs.5.
+If you run chroot or something and make your aufs as a root directory,
+then you need to customize the shutdown script. See the aufs manual in
+detail.
+-include ${srctree}/${src}/conf_priv.mk
diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
--- /usr/share/empty/fs/aufs/cpup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/cpup.c 2022-11-05 23:02:18.962555950 +0100
++++ linux/fs/aufs/cpup.c 2023-02-20 21:05:51.959693785 +0100
@@ -0,0 +1,1459 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * regardless 'acl' option, reset all ACL.
+ * All ACL will be copied up later from the original entry on the lower branch.
+ */
-+static int au_reset_acl(struct inode *h_dir, struct path *h_path, umode_t mode)
++static int au_reset_acl(struct path *h_path, umode_t mode)
+{
+ int err;
+ struct dentry *h_dentry;
-+ struct inode *h_inode;
++ /* struct inode *h_inode; */
+ struct user_namespace *h_userns;
+
+ h_userns = mnt_user_ns(h_path->mnt);
+ h_dentry = h_path->dentry;
-+ h_inode = d_inode(h_dentry);
++ /* h_inode = d_inode(h_dentry); */
+ /* forget_all_cached_acls(h_inode)); */
-+ err = vfsub_removexattr(h_userns, h_dentry, XATTR_NAME_POSIX_ACL_ACCESS);
++ err = vfsub_remove_acl(h_userns, h_dentry, XATTR_NAME_POSIX_ACL_ACCESS);
+ AuTraceErr(err);
+ if (err == -EOPNOTSUPP)
+ err = 0;
+ if (!err)
-+ err = vfsub_acl_chmod(h_userns, h_inode, mode);
++ err = vfsub_acl_chmod(h_userns, h_dentry, mode);
+
+ AuTraceErr(err);
+ return err;
+ struct user_namespace *h_userns;
+
+ h_userns = mnt_user_ns(h_path->mnt);
-+ err = vfsub_removexattr(h_userns, h_path->dentry,
-+ XATTR_NAME_POSIX_ACL_DEFAULT);
++ err = vfsub_remove_acl(h_userns, h_path->dentry,
++ XATTR_NAME_POSIX_ACL_DEFAULT);
+ AuTraceErr(err);
+ if (err == -EOPNOTSUPP)
+ err = 0;
+ err = -EIO;
+ }
+ if (!err)
-+ err = au_reset_acl(h_dir, &h_path, mode);
++ err = au_reset_acl(&h_path, mode);
+
+ mnt_flags = au_mntflags(sb);
+ if (!au_opt_test(mnt_flags, UDBA_NONE)
+#endif /* __AUFS_DCSUB_H__ */
diff -urN /usr/share/empty/fs/aufs/debug.c linux/fs/aufs/debug.c
--- /usr/share/empty/fs/aufs/debug.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/debug.c 2022-11-05 23:02:18.962555950 +0100
-@@ -0,0 +1,444 @@
++++ linux/fs/aufs/debug.c 2023-02-20 21:05:51.959693785 +0100
+@@ -0,0 +1,446 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2022 Junjiro R. Okajima
+ }
+
+ dpri("i%d: %p, i%lu, %s, cnt %d, nl %u, 0%o, sz %llu, blk %llu,"
++ " acl %p, def_acl %p,"
+ " hn %d, ct %lld, np %lu, st 0x%lx, f 0x%x, v %llu, g %x%s%.*s\n",
+ bindex, inode,
+ inode->i_ino, inode->i_sb ? au_sbtype(inode->i_sb) : "??",
+ atomic_read(&inode->i_count), inode->i_nlink, inode->i_mode,
+ i_size_read(inode), (unsigned long long)inode->i_blocks,
++ inode->i_acl, inode->i_default_acl,
+ hn, (long long)timespec64_to_ns(&inode->i_ctime) & 0x0ffff,
+ inode->i_mapping ? inode->i_mapping->nrpages : 0,
+ inode->i_state, inode->i_flags, inode_peek_iversion(inode),
+}
diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.c
--- /usr/share/empty/fs/aufs/f_op.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/f_op.c 2022-12-17 09:21:34.799855195 +0100
-@@ -0,0 +1,776 @@
++++ linux/fs/aufs/f_op.c 2023-02-20 21:05:51.959693785 +0100
+@@ -0,0 +1,780 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2022 Junjiro R. Okajima
+ lockdep_off();
+ err = vfs_fallocate(h_file, mode, offset, len);
+ lockdep_on();
++ /*
++ * we don't need to call file_modifed() here since au_write_post()
++ * is equivalent and copies-up all timestamps and permission bits.
++ */
+ au_write_post(inode, h_file, &wpre, /*written*/1);
+
+out:
+}
diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
--- /usr/share/empty/fs/aufs/inode.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/inode.c 2022-11-05 23:02:18.965889284 +0100
++++ linux/fs/aufs/inode.c 2023-02-20 21:05:51.959693785 +0100
@@ -0,0 +1,531 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ }
+ au_cpup_attr_all(inode, /*force*/1);
+ /*
-+ * to force calling aufs_get_acl() every time,
++ * to force calling aufs_get_inode_acl() every time,
+ * do not call cache_no_acl() for aufs inode.
+ */
+
+}
diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
--- /usr/share/empty/fs/aufs/inode.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/inode.h 2022-12-17 09:21:34.799855195 +0100
-@@ -0,0 +1,705 @@
++++ linux/fs/aufs/inode.h 2023-02-20 21:05:51.959693785 +0100
+@@ -0,0 +1,707 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2022 Junjiro R. Okajima
+#endif
+
+#ifdef CONFIG_FS_POSIX_ACL
-+struct posix_acl *aufs_get_acl(struct inode *inode, int type, bool rcu);
-+int aufs_set_acl(struct user_namespace *userns, struct inode *inode,
++struct posix_acl *aufs_get_inode_acl(struct inode *inode, int type, bool rcu);
++struct posix_acl *aufs_get_acl(struct user_namespace *userns,
++ struct dentry *dentry, int type);
++int aufs_set_acl(struct user_namespace *userns, struct dentry *dentry,
+ struct posix_acl *acl, int type);
+#endif
+
+#endif
diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
--- /usr/share/empty/fs/aufs/i_op_add.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op_add.c 2022-12-17 09:21:34.799855195 +0100
++++ linux/fs/aufs/i_op_add.c 2023-02-20 21:05:51.959693785 +0100
@@ -0,0 +1,972 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ h_ppath.mnt = h_mnt;
+ h_ppath.dentry = h_parent;
+ h_file = vfs_tmpfile_open(h_userns, &h_ppath, mode, /*open_flag*/0,
-+ /*cred*/NULL);
++ current_cred());
+ if (IS_ERR(h_file)) {
+ err = PTR_ERR(h_file);
+ h_file = NULL;
+}
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 2022-11-05 23:02:18.965889284 +0100
-@@ -0,0 +1,1512 @@
++++ linux/fs/aufs/i_op.c 2023-02-20 21:05:51.959693785 +0100
+@@ -0,0 +1,1516 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2022 Junjiro R. Okajima
+ && write_mask && !(mask & MAY_READ))
+ || !h_inode->i_op->permission) {
+ /* AuLabel(generic_permission); */
-+ /* AuDbg("get_acl %ps\n", h_inode->i_op->get_acl); */
++ /* AuDbg("get_inode_acl %ps\n",
++ h_inode->i_op->get_inode_acl); */
+ err = generic_permission(h_userns, h_inode, mask);
+ if (err == -EOPNOTSUPP && au_test_nfs_noacl(h_inode))
+ err = h_inode->i_op->permission(h_userns, h_inode,
+ */
+ if (!err && (ia->ia_valid & ATTR_MODE)) {
+ h_userns = mnt_user_ns(a->h_path.mnt);
-+ err = vfsub_acl_chmod(h_userns, a->h_inode, ia->ia_mode);
++ err = vfsub_acl_chmod(h_userns, a->h_path.dentry, ia->ia_mode);
+ }
+ if (!err)
+ au_cpup_attr_changeable(inode);
+ h_inode = d_inode(h_path.dentry);
+ if (h_inode->i_op->set_acl) {
+ /* this will call posix_acl_update_mode */
-+ err = h_inode->i_op->set_acl(h_userns, h_inode,
++ err = h_inode->i_op->set_acl(h_userns, h_path.dentry,
+ arg->u.acl_set.acl,
+ arg->u.acl_set.type);
+ }
+ [AuIop_SYMLINK] = {
+ .permission = aufs_permission,
+#ifdef CONFIG_FS_POSIX_ACL
++ .get_inode_acl = aufs_get_inode_acl,
+ .get_acl = aufs_get_acl,
+ .set_acl = aufs_set_acl, /* unsupport for symlink? */
+#endif
+
+ .permission = aufs_permission,
+#ifdef CONFIG_FS_POSIX_ACL
++ .get_inode_acl = aufs_get_inode_acl,
+ .get_acl = aufs_get_acl,
+ .set_acl = aufs_set_acl,
+#endif
+ [AuIop_OTHER] = {
+ .permission = aufs_permission,
+#ifdef CONFIG_FS_POSIX_ACL
++ .get_inode_acl = aufs_get_inode_acl,
+ .get_acl = aufs_get_acl,
+ .set_acl = aufs_set_acl,
+#endif
+}
diff -urN /usr/share/empty/fs/aufs/posix_acl.c linux/fs/aufs/posix_acl.c
--- /usr/share/empty/fs/aufs/posix_acl.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/posix_acl.c 2022-11-05 23:02:18.969222617 +0100
-@@ -0,0 +1,111 @@
++++ linux/fs/aufs/posix_acl.c 2023-02-20 21:05:51.959693785 +0100
+@@ -0,0 +1,108 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2014-2022 Junjiro R. Okajima
+#include <linux/fs.h>
+#include "aufs.h"
+
-+struct posix_acl *aufs_get_acl(struct inode *inode, int type, bool rcu)
++struct posix_acl *aufs_get_inode_acl(struct inode *inode, int type, bool rcu)
+{
+ struct posix_acl *acl;
+ int err;
+ }
+
+ /* always topmost only */
-+ acl = get_acl(h_inode, type);
++ acl = get_inode_acl(h_inode, type);
+ if (IS_ERR(acl))
+ forget_cached_acl(inode, type);
+ else
+ return acl;
+}
+
-+int aufs_set_acl(struct user_namespace *userns, struct inode *inode,
++struct posix_acl *aufs_get_acl(struct user_namespace *userns,
++ struct dentry *dentry, int type)
++{
++ struct posix_acl *acl;
++ struct inode *inode;
++
++ inode = d_inode(dentry);
++ acl = aufs_get_inode_acl(inode, type, /*rcu*/false);
++
++ return acl;
++}
++
++int aufs_set_acl(struct user_namespace *userns, struct dentry *dentry,
+ struct posix_acl *acl, int type)
+{
+ int err;
+ ssize_t ssz;
-+ struct dentry *dentry;
++ struct inode *inode;
+ struct au_sxattr arg = {
+ .type = AU_ACL_SET,
+ .u.acl_set = {
+ },
+ };
+
++ inode = d_inode(dentry);
+ IMustLock(inode);
+
-+ if (inode->i_ino == AUFS_ROOT_INO)
-+ dentry = dget(inode->i_sb->s_root);
-+ else {
-+ dentry = d_find_alias(inode);
-+ if (!dentry)
-+ dentry = d_find_any_alias(inode);
-+ if (!dentry) {
-+ pr_warn("cannot handle this inode, "
-+ "please report to aufs-users ML\n");
-+ err = -ENOENT;
-+ goto out;
-+ }
-+ }
-+
+ ssz = au_sxattr(dentry, inode, &arg);
+ /* forget even it if succeeds since the branch might set differently */
+ forget_cached_acl(inode, type);
-+ dput(dentry);
+ err = ssz;
+ if (ssz >= 0)
+ err = 0;
+
-+out:
+ return err;
+}
diff -urN /usr/share/empty/fs/aufs/procfs.c linux/fs/aufs/procfs.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 2022-11-05 23:02:18.969222617 +0100
++++ linux/fs/aufs/vfsub.c 2023-02-20 21:05:51.959693785 +0100
@@ -0,0 +1,918 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ lockdep_off();
+ sb_start_write(h_sb);
+ lockdep_on();
-+ err = security_path_truncate(h_path);
++ err = security_file_truncate(h_file);
+ if (!err) {
+ h_userns = mnt_user_ns(h_path->mnt);
+ lockdep_off();
+}
diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
--- /usr/share/empty/fs/aufs/vfsub.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/vfsub.h 2022-12-17 09:21:34.799855195 +0100
-@@ -0,0 +1,358 @@
++++ linux/fs/aufs/vfsub.h 2023-02-20 21:05:51.959693785 +0100
+@@ -0,0 +1,390 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2022 Junjiro R. Okajima
+
+#ifdef CONFIG_FS_POSIX_ACL
+static inline int vfsub_acl_chmod(struct user_namespace *h_userns,
-+ struct inode *h_inode, umode_t h_mode)
++ struct dentry *h_dentry, umode_t h_mode)
+{
+ int err;
+
-+ err = posix_acl_chmod(h_userns, h_inode, h_mode);
++ err = posix_acl_chmod(h_userns, h_dentry, h_mode);
+ if (err == -EOPNOTSUPP)
+ err = 0;
+ return err;
+}
+#else
+AuStubInt0(vfsub_acl_chmod, struct user_namespace *h_userns,
-+ struct inode *h_inode, umode_t h_mode);
++ struct dentry *h_dentry, umode_t h_mode);
+#endif
+
+long vfsub_splice_to(struct file *in, loff_t *ppos,
+ return err;
+}
+
++#ifdef CONFIG_FS_POSIX_ACL
++static inline int vfsub_set_acl(struct user_namespace *userns,
++ struct dentry *dentry, const char *name,
++ struct posix_acl *acl)
++{
++ int err;
++
++ lockdep_off();
++ err = vfs_set_acl(userns, dentry, name, acl);
++ lockdep_on();
++
++ return err;
++}
++
++static inline int vfsub_remove_acl(struct user_namespace *userns,
++ struct dentry *dentry, const char *name)
++{
++ int err;
++
++ lockdep_off();
++ err = vfs_remove_acl(userns, dentry, name);
++ lockdep_on();
++
++ return err;
++}
++#else
++AuStubInt0(vfsub_set_acl, struct user_namespace *userns, struct dentry *dentry,
++ const char *name, struct posix_acl *acl);
++AuStubInt0(vfsub_remove_acl, struct user_namespace *userns,
++ struct dentry *dentry, const char *name);
++#endif
++
+#endif /* __KERNEL__ */
+#endif /* __AUFS_VFSUB_H__ */
diff -urN /usr/share/empty/fs/aufs/wbr_policy.c linux/fs/aufs/wbr_policy.c
+#endif /* __AUFS_WKQ_H__ */
diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c
--- /usr/share/empty/fs/aufs/xattr.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/xattr.c 2022-12-17 09:21:34.799855195 +0100
-@@ -0,0 +1,368 @@
++++ linux/fs/aufs/xattr.c 2023-02-20 21:05:51.959693785 +0100
+@@ -0,0 +1,365 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2014-2022 Junjiro R. Okajima
+ char *name, char **buf, unsigned int ignore_flags,
+ unsigned int verbose)
+{
-+ int err;
++ int err, is_acl;
+ ssize_t ssz;
+ struct inode *h_idst;
+ struct dentry *h_dst_dentry, *h_src_dentry;
+ struct user_namespace *h_dst_userns, *h_src_userns;
++ struct posix_acl *acl;
+
++ is_acl = !!is_posix_acl_xattr(name);
+ h_src_userns = mnt_user_ns(h_src->mnt);
+ h_src_dentry = h_src->dentry;
-+ ssz = vfs_getxattr_alloc(h_src_userns, h_src_dentry, name, buf, 0,
-+ GFP_NOFS);
-+ err = ssz;
-+ if (unlikely(err <= 0)) {
-+ if (err == -ENODATA
-+ || (err == -EOPNOTSUPP
-+ && ((ignore_flags & au_xattr_out_of_list)
-+ || (au_test_nfs_noacl(d_inode(h_src_dentry))
-+ && (!strcmp(name, XATTR_NAME_POSIX_ACL_ACCESS)
-+ || !strcmp(name,
-+ XATTR_NAME_POSIX_ACL_DEFAULT))))
-+ ))
-+ err = 0;
-+ if (err && (verbose || au_debug_test()))
-+ pr_err("%s, err %d\n", name, err);
-+ goto out;
++ if (is_acl) {
++ acl = vfs_get_acl(h_src_userns, h_src_dentry, name);
++ AuDebugOn(!acl);
++ if (unlikely(IS_ERR(acl))) {
++ err = PTR_ERR(acl);
++ if (err == -ENODATA)
++ err = 0;
++ else if (err == -EOPNOTSUPP
++ && au_test_nfs_noacl(d_inode(h_src_dentry)))
++ err = 0;
++ else if (verbose || au_debug_test())
++ pr_err("%s, err %d\n", name, err);
++ goto out;
++ }
++ } else {
++ ssz = vfs_getxattr_alloc(h_src_userns, h_src_dentry, name, buf,
++ 0, GFP_NOFS);
++ if (unlikely(ssz <= 0)) {
++ err = ssz;
++ if (err == -ENODATA)
++ err = 0;
++ else if (err == -EOPNOTSUPP
++ && (ignore_flags & au_xattr_out_of_list))
++ err = 0;
++ else if (err && (verbose || au_debug_test()))
++ pr_err("%s, err %d\n", name, err);
++ goto out;
++ }
+ }
+
+ /* unlock it temporary */
+ h_dst_dentry = h_dst->dentry;
+ h_idst = d_inode(h_dst_dentry);
+ inode_unlock(h_idst);
-+ err = vfsub_setxattr(h_dst_userns, h_dst_dentry, name, *buf, ssz,
-+ /*flags*/0);
++ if (is_acl) {
++ err = vfsub_set_acl(h_dst_userns, h_dst_dentry, name, acl);
++ posix_acl_release(acl);
++ } else
++ err = vfsub_setxattr(h_dst_userns, h_dst_dentry, name, *buf,
++ ssz, /*flags*/0);
+ inode_lock_nested(h_idst, AuLsc_I_CHILD2);
+ if (unlikely(err)) {
+ if (verbose || au_debug_test())
+int au_cpup_xattr(struct path *h_dst, struct path *h_src, int ignore_flags,
+ unsigned int verbose)
+{
-+ int err, unlocked, acl_access, acl_default;
++ int err, unlocked;
+ ssize_t ssz;
+ struct dentry *h_dst_dentry, *h_src_dentry;
+ struct inode *h_isrc, *h_idst;
+ err = 0;
+ e = p + ssz;
+ value = NULL;
-+ acl_access = 0;
-+ acl_default = 0;
++ ignore_flags |= au_xattr_out_of_list;
+ while (!err && p < e) {
-+ acl_access |= !strncmp(p, XATTR_NAME_POSIX_ACL_ACCESS,
-+ sizeof(XATTR_NAME_POSIX_ACL_ACCESS) - 1);
-+ acl_default |= !strncmp(p, XATTR_NAME_POSIX_ACL_DEFAULT,
-+ sizeof(XATTR_NAME_POSIX_ACL_DEFAULT)
-+ - 1);
+ err = au_do_cpup_xattr(h_dst, h_src, p, &value, ignore_flags,
+ verbose);
+ p += strlen(p) + 1;
+ }
-+ AuTraceErr(err);
-+ ignore_flags |= au_xattr_out_of_list;
-+ if (!err && !acl_access) {
-+ err = au_do_cpup_xattr(h_dst, h_src,
-+ XATTR_NAME_POSIX_ACL_ACCESS, &value,
-+ ignore_flags, verbose);
-+ AuTraceErr(err);
-+ }
-+ if (!err && !acl_default) {
-+ err = au_do_cpup_xattr(h_dst, h_src,
-+ XATTR_NAME_POSIX_ACL_DEFAULT, &value,
-+ ignore_flags, verbose);
-+ AuTraceErr(err);
-+ }
-+
+ au_kfree_try_rcu(value);
+
+out_free:
+}
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 2022-12-17 09:21:34.803188528 +0100
++++ linux/include/uapi/linux/aufs_type.h 2023-02-20 21:05:51.959693785 +0100
@@ -0,0 +1,452 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
+#include <limits.h>
+#endif /* __KERNEL__ */
+
-+#define AUFS_VERSION "6.x-rcN-20221107"
++#define AUFS_VERSION "6.x-rcN-20230109"
+
+/* todo? move this to linux-2.6.19/include/magic.h */
+#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
aufs6.x-rcN loopback patch
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 8ca56da3ca69..9ac6f67edf09 100644
+index 7a9928c6db9d..0bac486deea2 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -54,7 +54,7 @@ struct loop_device {
static int loop_clr_fd(struct loop_device *lo)
diff --git a/fs/aufs/f_op.c b/fs/aufs/f_op.c
-index 66ddf86a3331..6cbef597d5b9 100644
+index 1ed300047a41..ea63191d6473 100644
--- a/fs/aufs/f_op.c
+++ b/fs/aufs/f_op.c
@@ -309,7 +309,7 @@ static ssize_t aufs_read_iter(struct kiocb *kio, struct iov_iter *iov_iter)
/* ---------------------------------------------------------------------- */
diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 433a4f08dab4..0b17b7e5ee11 100644
+index 2d30def9a580..84a83c480302 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
-@@ -2257,6 +2257,10 @@ struct super_operations {
+@@ -2252,6 +2252,10 @@ struct super_operations {
struct shrink_control *);
long (*free_cached_objects)(struct super_block *,
struct shrink_control *);
ARM64_RELOC_TEST arm64=m
ARM_KPROBES_TEST arm=m
ARM_PTDUMP_DEBUGFS arm=n
+CALL_DEPTH_TRACKING all=y
+CALL_THUNKS_DEBUG all=n
COMPAT_32BIT_TIME all=y
CPA_DEBUG all=n
CRYPTO_AEGIS128_AESNI_SSE2 all=m
DEBUG_USER arm=n
EARLY_PRINTK_DBGP all=n
EARLY_PRINTK_USB_XDBC all=n
+EFI_FAKE_MEMMAP all=n
+EFI_HANDOVER_PROTOCOL all=y
EFI_PGT_DUMP all=n
+EFI_RUNTIME_MAP all=y
HAVE_STACK_VALIDATION all=y
IOMMU_DEBUG all=n
IO_DELAY_0X80 all=y
KEXEC_FILE all=y
KEXEC_SIG all=n
KPROBES arm=y arm64=y
+KVM_SMM all=y
LOCK_EVENT_COUNTS all=n
LTO_NONE all=y
PID_IN_CONTEXTIDR arm=n arm64=n
CRYPTO_MANAGER all=y
CRYPTO_USER all=m
CRYPTO_MANAGER_DISABLE_TESTS all=y
-CRYPTO_GF128MUL all=m
CRYPTO_NULL all=m
CRYPTO_PCRYPT all=m
CRYPTO_CRYPTD all=m
SIGNED_PE_FILE_VERIFICATION all=y
FIPS_SIGNATURE_SELFTEST all=y
+#-
+#- *** FILE: drivers/accel/Kconfig ***
+#-
+DRM_ACCEL all=y
+
#-
#- *** FILE: drivers/accessibility/Kconfig ***
#-
ACPI_PFRUT all=m
#- file drivers/acpi/arm64/Kconfig goes here
ACPI_PCC all=y
+ACPI_FFH all=y
#- file drivers/acpi/pmic/Kconfig goes here
ACPI_PRMT=y
X86_PM_TIMER x86=y
ZRAM_DEF_COMP_842 all=n
ZRAM_WRITEBACK all=y
ZRAM_MEMORY_TRACKING all=y
+ZRAM_MULTI_COMP all=y
#-
#- *** FILE: drivers/bluetooth/Kconfig ***
#-
BT_HCIBTUSB all=m
BT_HCIBTUSB_AUTOSUSPEND all=y
+BT_HCIBTUSB_POLL_SYNC all=y
BT_HCIBTUSB_BCM all=y
BT_HCIBTUSB_MTK all=y
BT_HCIBTUSB_RTL all=y
BT_HCIUART_AG6XX all=y
BT_HCIUART_MRVL all=y
BT_HCIBCM203X all=m
+BT_HCIBCM4377 all=m
BT_HCIBPA10X all=m
BT_HCIBFUSB all=m
BT_HCIDTL1 all=m
TELCLOCK i386=m x86_64=m
#- file drivers/s390/char/Kconfig goes here
#- file drivers/char/xillybus/Kconfig goes here
-RANDOM_TRUST_CPU all=y
-RANDOM_TRUST_BOOTLOADER all=y
#-
#- *** FILE: drivers/char/agp/Kconfig ***
IPMI_IPMB all=m
IPMI_WATCHDOG all=m
IPMI_POWEROFF all=m
+SSIF_IPMI_BMC all=m
IPMB_DEVICE_INTERFACE all=m
#-
CXL_ACPI=m
CXL_PMEM=m
CXL_MEM all=m
+CXL_REGION_INVALIDATION_TEST all=n
#-
#- *** FILE: drivers/dax/Kconfig ***
#-
EFI_VARS_PSTORE all=m
EFI_VARS_PSTORE_DEFAULT_DISABLE all=n
-EFI_RUNTIME_MAP all=y
-EFI_FAKE_MEMMAP all=n
EFI_SOFT_RESERVE all=y
EFI_DXE_MEM_ATTRIBUTES all=y
EFI_ZBOOT arm64=n
EFI_ARMSTUB_DTB_LOADER arm64=y
-EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER arm64=y
EFI_BOOTLOADER_CONTROL all=m
EFI_CAPSULE_LOADER all=m i386=y
EFI_CAPSULE_QUIRK_QUARK_CSH i386=y
#-
GOOGLE_FIRMWARE all=y
GOOGLE_SMI all=m
+GOOGLE_CBMEM all=m
GOOGLE_COREBOOT_TABLE all=m
GOOGLE_COREBOOT_TABLE_ACPI all=m
GOOGLE_MEMCONSOLE all=m
FPGA_DFL_PCI all=m
FPGA_M10_BMC_SEC_UPDATE all=m
FPGA_MGR_MICROCHIP_SPI all=m
+FPGA_MGR_LATTICE_SYSCONFIG_SPI all=m
#-
#- *** FILE: drivers/fsi/Kconfig ***
GPIO_SAMA5D2_PIOBU arm=m arm64=m
GPIO_SIFIVE arm=n arm64=n
GPIO_SIOX all=m
-GPIO_STA2X11 all=y
GPIO_SYSCON arm=m arm64=m
GPIO_VX855 all=m
GPIO_WCD934X arm=m arm64=m
GPIO_MOXTET arm=m arm64=m
GPIO_VIPERBOARD all=m
GPIO_AGGREGATOR all=m
+GPIO_LATCH all=m
GPIO_MOCKUP all=m
GPIO_VIRTIO all=m
GPIO_SIM all=m
#- file drivers/gpu/drm/display/Kconfig goes here
#- file drivers/gpu/drm/i2c/Kconfig goes here
#- file drivers/gpu/drm/arm/Kconfig goes here
-DRM_RADEON all=m
#- file drivers/gpu/drm/radeon/Kconfig goes here
-DRM_AMDGPU all=m
#- file drivers/gpu/drm/amd/amdgpu/Kconfig goes here
#- file drivers/gpu/drm/nouveau/Kconfig goes here
#- file drivers/gpu/drm/i915/Kconfig goes here
#-
#- *** FILE: drivers/gpu/drm/amd/amdgpu/Kconfig ***
#-
+DRM_AMDGPU all=m
DRM_AMDGPU_SI all=y
DRM_AMDGPU_CIK all=y
DRM_AMDGPU_USERPTR all=y
#-
#- *** FILE: drivers/gpu/drm/radeon/Kconfig ***
#-
+DRM_RADEON all=m
DRM_RADEON_USERPTR all=y
#-
#- *** FILE: drivers/gpu/drm/vmwgfx/Kconfig ***
#-
DRM_VMWGFX all=m
-DRM_VMWGFX_FBCON all=y
DRM_VMWGFX_MKSSTATS all=y
#-
#- Native drivers
SENSORS_ABITUGURU all=m
SENSORS_ABITUGURU3 all=m
+SENSORS_SMPRO all=m
SENSORS_AD7314 all=m
SENSORS_AD7414 all=m
SENSORS_AD7418 all=m
SENSORS_NZXT_KRAKEN2 all=m
SENSORS_NZXT_SMART2 all=m
#- file drivers/hwmon/occ/Kconfig goes here
+SENSORS_OXP all=m
SENSORS_PCF8591 all=m
#- file drivers/hwmon/peci/Kconfig goes here
#- file drivers/hwmon/pmbus/Kconfig goes here
HID_SENSOR_ACCEL_3D all=m
IIO_CROS_EC_ACCEL_LEGACY all=m
IIO_ST_ACCEL_3AXIS all=m
+IIO_KX022A_SPI all=m
+IIO_KX022A_I2C all=m
KXSD9 all=m
KXSD9_SPI all=m
KXSD9_I2C all=m
#- *** FILE: drivers/iio/adc/Kconfig ***
#-
AB8500_GPADC all=y
+AD4130 all=m
AD7091R5 all=m
AD7124 all=m
AD7192 all=m
MAX11100 all=m
MAX1118 all=m
MAX11205 all=m
+MAX11410 all=m
MAX1241 all=m
MAX1363 all=m
MAX9611 all=m
MCP3422 all=m
MCP3911 all=m
MEDIATEK_MT6360_ADC all=m
+MEDIATEK_MT6370_ADC all=m
MEN_Z188_ADC all=m
MESON_SARADC arm64=m
MP2629_ADC all=m
#-
#- *** FILE: drivers/iio/addac/Kconfig ***
#-
+AD74115 all=m
AD74413R all=m
STX104 all=m
AD9523 all=m
ADF4350 all=m
ADF4371 all=m
+ADF4377 all=m
ADMV1013 all=m
ADMV1014 all=m
ADMV4420 all=m
TMP117=m
TSYS01 all=m
TSYS02D all=m
+MAX30208 all=m
MAX31856 all=m
MAX31865 all=m
#- file drivers/infiniband/hw/hfi1/Kconfig goes here
#- file drivers/infiniband/hw/hns/Kconfig goes here
#- file drivers/infiniband/hw/irdma/Kconfig goes here
+#- file drivers/infiniband/hw/mana/Kconfig goes here
#- file drivers/infiniband/hw/mlx4/Kconfig goes here
#- file drivers/infiniband/hw/mlx5/Kconfig goes here
#- file drivers/infiniband/hw/mthca/Kconfig goes here
#-
INFINIBAND_IRDMA=m
+#-
+#- *** FILE: drivers/infiniband/hw/mana/Kconfig ***
+#-
+MANA_INFINIBAND all=m
+
#-
#- *** FILE: drivers/infiniband/hw/mlx4/Kconfig ***
#-
TOUCHSCREEN_CYTTSP4_CORE all=m
TOUCHSCREEN_CYTTSP4_I2C all=m
TOUCHSCREEN_CYTTSP4_SPI all=m
+TOUCHSCREEN_CYTTSP5 all=m
TOUCHSCREEN_DA9034 all=m
TOUCHSCREEN_DA9052 all=m
TOUCHSCREEN_DYNAPRO all=m
TOUCHSCREEN_GOODIX all=m
TOUCHSCREEN_HIDEEP all=m
TOUCHSCREEN_HYCON_HY46XX all=m
+TOUCHSCREEN_HYNITRON_CSTXXX all=m
TOUCHSCREEN_ILI210X all=m
TOUCHSCREEN_ILITEK all=m
TOUCHSCREEN_S6SY761 all=m
TOUCHSCREEN_ROHM_BU21023 all=m
TOUCHSCREEN_IQS5XX all=m
TOUCHSCREEN_ZINITIX all=m
+TOUCHSCREEN_HIMAX_HX83112B all=m
#-
#- *** FILE: drivers/interconnect/Kconfig ***
IOMMU_DEFAULT_PASSTHROUGH all=y
#- file drivers/iommu/amd/Kconfig goes here
#- file drivers/iommu/intel/Kconfig goes here
+#- file drivers/iommu/iommufd/Kconfig goes here
IRQ_REMAP all=y
ROCKCHIP_IOMMU arm64=y
ARM_SMMU arm=m arm64=m
INTEL_IOMMU_DEFAULT_ON all=y
INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON all=y
+#-
+#- *** FILE: drivers/iommu/iommufd/Kconfig ***
+#-
+IOMMUFD all=m
+
#-
#- *** FILE: drivers/ipack/Kconfig ***
#-
VIDEO_OG01A1B all=m
VIDEO_OV02A10 all=m
VIDEO_OV08D10 all=m
+VIDEO_OV08X40 all=m
VIDEO_OV13858 all=m
VIDEO_OV13B10 all=m
VIDEO_OV2640 all=m
VIDEO_OV2680 all=m
VIDEO_OV2685 all=m
VIDEO_OV2740 all=m
+VIDEO_OV4689 all=m
VIDEO_OV5640 arm=m arm64=m
VIDEO_OV5645 arm=m arm64=m
VIDEO_OV5647 all=m
VIDEO_RDACM21 all=m
VIDEO_RJ54N1 all=m
VIDEO_S5C73M3 all=m
-VIDEO_S5K4ECGX all=m
VIDEO_S5K5BAF all=m
VIDEO_S5K6A3 all=m
VIDEO_S5K6AA all=m
#- file drivers/media/platform/intel/Kconfig goes here
#- file drivers/media/platform/marvell/Kconfig goes here
#- file drivers/media/platform/mediatek/Kconfig goes here
+#- file drivers/media/platform/microchip/Kconfig goes here
#- file drivers/media/platform/nvidia/Kconfig goes here
#- file drivers/media/platform/nxp/Kconfig goes here
#- file drivers/media/platform/qcom/Kconfig goes here
#-
#- Renesas media platform drivers
#- file drivers/media/platform/renesas/rcar-vin/Kconfig goes here
+#- file drivers/media/platform/renesas/rzg2l-cru/Kconfig goes here
VIDEO_RENESAS_VSP1 all=m
#-
#- file drivers/media/test-drivers/vicodec/Kconfig goes here
#- file drivers/media/test-drivers/vimc/Kconfig goes here
#- file drivers/media/test-drivers/vivid/Kconfig goes here
+#- file drivers/media/test-drivers/visl/Kconfig goes here
#- file drivers/media/test-drivers/vidtv/Kconfig goes here
#-
#-
MFD_CS5535 all=m
MFD_ACT8945A arm=m arm64=m
+MFD_SMPRO all=m
MFD_AT91_USART all=m
MFD_ATMEL_FLEXCOM arm=m arm64=m
MFD_ATMEL_HLCDC arm=m arm64=m
ATMEL_SSC all=m
ENCLOSURE_SERVICES all=m
SGI_XP ia64=m x86_64=m
+SMPRO_ERRMON all=m
+SMPRO_MISC all=m
CS5535_MFGPT all=m
CS5535_CLOCK_EVENT_SRC all=m
HI6421V600_IRQ arm=m arm64=m
CAN_SLCAN all=m
CAN_TI_HECC arm=m
CAN_XILINXCAN arm64=m
-PCH_CAN all=m
#- file drivers/net/can/c_can/Kconfig goes here
#- file drivers/net/can/cc770/Kconfig goes here
#- file drivers/net/can/ctucanfd/Kconfig goes here
#- file drivers/net/ethernet/microsoft/Kconfig goes here
#- file drivers/net/ethernet/moxa/Kconfig goes here
#- file drivers/net/ethernet/myricom/Kconfig goes here
-FEALNX all=m
#- file drivers/net/ethernet/ni/Kconfig goes here
#- file drivers/net/ethernet/natsemi/Kconfig goes here
#- file drivers/net/ethernet/neterion/Kconfig goes here
LAN743X all=m
#- file drivers/net/ethernet/microchip/lan966x/Kconfig goes here
#- file drivers/net/ethernet/microchip/sparx5/Kconfig goes here
+#- file drivers/net/ethernet/microchip/vcap/Kconfig goes here
#-
#- *** FILE: drivers/net/ethernet/microchip/lan966x/Kconfig ***
#-
LAN966X_SWITCH arm=m arm64=m
+#-
+#- *** FILE: drivers/net/ethernet/microchip/vcap/Kconfig ***
+#-
+VCAP all=y
+
#-
#- *** FILE: drivers/net/ethernet/microsoft/Kconfig ***
#-
NFP all=m
NFP_APP_FLOWER all=y
NFP_APP_ABM_NIC all=y
+NFP_NET_IPSEC all=y
NFP_DEBUG all=n
#-
SMC91X arm=m arm64=m
PCMCIA_SMC91C92 all=m
EPIC100 all=m
-SMC911X arm=m
SMSC911X all=m
SMSC9420 all=m
MT7921S all=m
MT7921U all=m
+#-
+#- *** FILE: drivers/net/wireless/mediatek/mt76/mt7996/Kconfig ***
+#-
+MT7996E all=m
+
#-
#- *** FILE: drivers/net/wireless/mediatek/mt7601u/Kconfig ***
#-
#-
RTW88 all=m
RTW88_8822BE all=n
+RTW88_8822BU all=m
RTW88_8822CE all=n
+RTW88_8822CU all=m
RTW88_8723DE all=m
+RTW88_8723DU all=m
RTW88_8821CE all=m
+RTW88_8821CU all=m
RTW88_DEBUG all=n
RTW88_DEBUGFS all=n
#-
RTW89 all=m
RTW89_8852AE all=m
+RTW89_8852BE all=m
RTW89_8852CE all=m
RTW89_DEBUGMSG all=y
RTW89_DEBUGFS all=y
#- file drivers/net/wireless/ti/wl12xx/Kconfig goes here
#- file drivers/net/wireless/ti/wl18xx/Kconfig goes here
#- file drivers/net/wireless/ti/wlcore/Kconfig goes here
-WILINK_PLATFORM_DATA all=y
#-
#- *** FILE: drivers/net/wireless/ti/wl1251/Kconfig ***
NVDIMM_PFN all=y
NVDIMM_DAX all=y
OF_PMEM arm64=m
+NVDIMM_SECURITY_TEST all=n
#-
#- *** FILE: drivers/nvme/host/Kconfig ***
MARVELL_CN10K_TAD_PMU arm64=m
ALIBABA_UNCORE_DRW_PMU arm64=m
#- file drivers/perf/hisilicon/Kconfig goes here
+#- file drivers/perf/arm_cspmu/Kconfig goes here
+#- file drivers/perf/amlogic/Kconfig goes here
#-
#- *** FILE: drivers/perf/hisilicon/Kconfig ***
CROS_EC_SENSORHUB all=m
CROS_EC_SYSFS all=m
CROS_EC_TYPEC all=m
+CROS_HPS_I2C all=m
CROS_USBPD_LOGGER all=m
CROS_USBPD_NOTIFY all=m
CHROMEOS_PRIVACY_SCREEN all=m
FUJITSU_LAPTOP all=m
FUJITSU_TABLET all=m
GPD_POCKET_FAN all=m
-HP_ACCEL all=m
+#- file drivers/platform/x86/hp/Kconfig goes here
WIRELESS_HOTKEY=m
-HP_WMI all=m
-TC1100_WMI all=m
IBM_RTL all=m
IDEAPAD_LAPTOP all=m
SENSORS_HDAPS all=m
DELL_WMI all=m
DELL_WMI_PRIVACY=y
DELL_WMI_AIO all=m
+DELL_WMI_DDV all=m
DELL_WMI_LED all=m
DELL_WMI_SYSMAN all=m
+#-
+#- *** FILE: drivers/platform/x86/hp/Kconfig ***
+#-
+X86_PLATFORM_DRIVERS_HP all=y
+HP_ACCEL all=m
+HP_WMI all=m
+TC1100_WMI all=m
+
#-
#- *** FILE: drivers/platform/x86/intel/Kconfig ***
#-
INTEL_ATOMISP2_LED all=m
INTEL_ATOMISP2_PM all=m
+#-
+#- *** FILE: drivers/platform/x86/intel/ifs/Kconfig ***
+#-
+INTEL_IFS all=m
+
#-
#- *** FILE: drivers/platform/x86/intel/int1092/Kconfig ***
#-
REGULATOR_MT6323 all=m
REGULATOR_MT6331 all=m
REGULATOR_MT6332 all=m
+REGULATOR_MT6357 all=m
REGULATOR_MT6358 all=m
REGULATOR_MT6359=m
REGULATOR_MT6360 all=m
REGULATOR_RT5190A all=m
REGULATOR_RT5759 all=m
REGULATOR_RT6160=m
+REGULATOR_RT6190 all=m
REGULATOR_RT6245=m
REGULATOR_RTQ2134 all=m
REGULATOR_RTMV20 all=m
SPI_LANTIQ_SSC all=m
SPI_OC_TINY all=m
SPI_ORION arm=m
+SPI_PCI1XXXX all=m
SPI_PL022 arm=m arm64=m
SPI_PXA2XX all=m
SPI_ROCKCHIP all=m
#- file drivers/staging/media/sunxi/Kconfig goes here
#- file drivers/staging/media/tegra-video/Kconfig goes here
STAGING_MEDIA_DEPRECATED all=n
+#- file drivers/staging/media/deprecated/atmel/Kconfig goes here
#- file drivers/staging/media/deprecated/cpia2/Kconfig goes here
#- file drivers/staging/media/deprecated/fsl-viu/Kconfig goes here
#- file drivers/staging/media/deprecated/meye/Kconfig goes here
UNIX98_PTYS all=y
LEGACY_PTYS all=y
LEGACY_PTY_COUNT all=256
+LEGACY_TIOCSTI all=n
LDISC_AUTOLOAD all=y
#- file drivers/tty/serial/Kconfig goes here
SERIAL_NONSTANDARD all=y
#- file drivers/usb/storage/Kconfig goes here
#- file drivers/usb/image/Kconfig goes here
#- file drivers/usb/usbip/Kconfig goes here
+#- USB dual-mode controller drivers
#- file drivers/usb/cdns3/Kconfig goes here
+#- file drivers/usb/fotg210/Kconfig goes here
#- file drivers/usb/mtu3/Kconfig goes here
#- file drivers/usb/musb/Kconfig goes here
#- file drivers/usb/dwc3/Kconfig goes here
USB_DWC3_MESON_G12A arm64=m
USB_DWC3_OF_SIMPLE arm=m arm64=m
+#-
+#- *** FILE: drivers/usb/fotg210/Kconfig ***
+#-
+USB_FOTG210_HCD all=m
+USB_FOTG210_UDC all=m
+
#-
#- *** FILE: drivers/usb/gadget/Kconfig ***
#-
#- *** FILE: drivers/usb/gadget/udc/Kconfig ***
#-
USB_FUSB300 arm=m x86=m
-USB_FOTG210_UDC all=m
USB_GR_UDC all=m
USB_R8A66597 all=m
USB_RENESAS_USBHS_UDC all=m
USB_OXU210HP_HCD all=m
USB_ISP116X_HCD all=m
USB_ISP1362_HCD all=m
-USB_FOTG210_HCD all=m
USB_MAX3421_HCD all=m
USB_OHCI_HCD all=m
USB_OHCI_HCD_PPC_OF_BE ppc=y ppc64=y
#- *** FILE: drivers/usb/misc/sisusbvga/Kconfig ***
#-
USB_SISUSBVGA all=m
-USB_SISUSBVGA_CON all=y
#-
#- *** FILE: drivers/usb/mon/Kconfig ***
#- *** FILE: drivers/vfio/Kconfig ***
#-
VFIO all=m
+VFIO_CONTAINER all=y
VFIO_NOIOMMU all=y
#- file drivers/vfio/pci/Kconfig goes here
#- file drivers/vfio/platform/Kconfig goes here
#- file drivers/virt/acrn/Kconfig goes here
#- file drivers/virt/coco/efi_secret/Kconfig goes here
#- file drivers/virt/coco/sev-guest/Kconfig goes here
+#- file drivers/virt/coco/tdx-guest/Kconfig goes here
#-
#- *** FILE: drivers/virt/acrn/Kconfig ***
#-
SEV_GUEST all=m
+#-
+#- *** FILE: drivers/virt/coco/tdx-guest/Kconfig ***
+#-
+TDX_GUEST_DRIVER all=m
+
#-
#- *** FILE: drivers/virt/nitro_enclaves/Kconfig ***
#-
ARM_SMC_WATCHDOG arm=m arm64=m
ACQUIRE_WDT i386=m x86_64=m
ADVANTECH_WDT i386=m x86_64=m
+ADVANTECH_EC_WDT all=m
ALIM1535_WDT i386=m x86_64=m
ALIM7101_WDT all=m
EBC_C384_WDT all=m
#- *** FILE: fs/nfsd/Kconfig ***
#-
NFSD all=m
+NFSD_V2 all=n
NFSD_V2_ACL all=y
NFSD_V3_ACL all=y
NFSD_V4 all=y
SQUASHFS_DECOMP_SINGLE all=n
SQUASHFS_DECOMP_MULTI all=n
SQUASHFS_DECOMP_MULTI_PERCPU all=y
+SQUASHFS_CHOICE_DECOMP_BY_MOUNT all=y
SQUASHFS_XATTR all=y
SQUASHFS_ZLIB all=y
SQUASHFS_LZ4 all=y
SHMEM all=y
AIO all=y
KALLSYMS all=y
+KALLSYMS_SELFTEST all=n
KALLSYMS_ALL all=y
KALLSYMS_ABSOLUTE_PERCPU all=y
KALLSYMS_BASE_RELATIVE all=y
DEBUG_INFO_DWARF4 all=n
DEBUG_INFO_DWARF5 all=n
DEBUG_INFO_REDUCED all=n
-DEBUG_INFO_COMPRESSED all=y
+DEBUG_INFO_COMPRESSED_NONE all=n
+DEBUG_INFO_COMPRESSED_ZLIB all=y
DEBUG_INFO_SPLIT all=y
DEBUG_INFO_BTF all=n
GDB_SCRIPTS all=y
DEBUG_WQ_FORCE_RR_CPU all=n
CPU_HOTPLUG_STATE_CONTROL all=n
LATENCYTOP all=n
+DEBUG_CGROUP_REF all=n
#- file kernel/trace/Kconfig goes here
PROVIDE_OHCI1394_DMA_INIT all=n
#- file samples/Kconfig goes here
TEST_HEXDUMP all=m
STRING_SELFTEST all=n
TEST_STRING_HELPERS all=m
-TEST_STRSCPY all=m
TEST_KSTRTOX all=m
TEST_PRINTF all=m
TEST_SCANF=m
TEST_XARRAY all=m
TEST_MAPLE_TREE all=n
TEST_RHASHTABLE all=n
-TEST_SIPHASH all=m
TEST_IDA all=m
TEST_PARMAN all=m
TEST_LKM all=m
#- file net/bluetooth/hidp/Kconfig goes here
BT_HS all=y
BT_LE all=y
+BT_LE_L2CAP_ECRED all=y
BT_6LOWPAN all=m
BT_LEDS all=y
BT_MSFTEXT all=y
NFT_REDIR all=m
NFT_NAT all=m
NFT_TUNNEL all=m
-NFT_OBJREF all=m
NFT_QUEUE all=m
NFT_QUOTA all=m
NFT_REJECT all=m
AF_RXRPC_INJECT_LOSS all=n
AF_RXRPC_DEBUG all=n
RXKAD all=y
+RXPERF all=m
#-
#- *** FILE: net/sched/Kconfig ***
#-
SND_BCM2835_SOC_I2S arm=m
SND_BCM63XX_I2S_WHISTLER all=m
-SND_BCM2708_SOC_HIFIBERRY_DAC arm=m arm64=m
-SND_RPI_SIMPLE_SOUNDCARD arm=m arm64=m
-SND_RPI_WM8804_SOUNDCARD arm=m arm64=m
#-
#- *** FILE: sound/soc/codecs/Kconfig ***
SND_SOC_WM8904 all=m
SND_SOC_WM8940 all=m
SND_SOC_WM8960 all=m
+SND_SOC_WM8961 all=m
SND_SOC_WM8962 all=m
SND_SOC_WM8974 all=m
SND_SOC_WM8978 all=m
SND_SOC_INTEL_AVS_MACH_DMIC all=m
SND_SOC_INTEL_AVS_MACH_HDAUDIO all=m
SND_SOC_INTEL_AVS_MACH_I2S_TEST all=m
+SND_SOC_INTEL_AVS_MACH_MAX98927 all=m
SND_SOC_INTEL_AVS_MACH_MAX98357A all=m
SND_SOC_INTEL_AVS_MACH_MAX98373 all=m
SND_SOC_INTEL_AVS_MACH_NAU8825 all=m
+SND_SOC_INTEL_AVS_MACH_PROBE all=m
SND_SOC_INTEL_AVS_MACH_RT274 all=m
SND_SOC_INTEL_AVS_MACH_RT286 all=m
SND_SOC_INTEL_AVS_MACH_RT298 all=m
RD_LZO all=y
RD_LZ4 all=y
RD_ZSTD all=y
+
+#-
+#- *** PROBABLY REMOVED OPTIONS ***
+#-
+CRYPTO_GF128MUL all=m
+DEBUG_INFO_COMPRESSED all=y
+DRM_VMWGFX_FBCON all=y
+EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER arm64=y
+FEALNX all=m
+GPIO_STA2X11 all=y
+NFT_OBJREF all=m
+PCH_CAN all=m
+RANDOM_TRUST_BOOTLOADER all=y
+RANDOM_TRUST_CPU all=y
+SMC911X arm=m
+SND_BCM2708_SOC_HIFIBERRY_DAC arm=m arm64=m
+SND_RPI_SIMPLE_SOUNDCARD arm=m arm64=m
+SND_RPI_WM8804_SOUNDCARD arm=m arm64=m
+TEST_SIPHASH all=m
+TEST_STRSCPY all=m
+USB_SISUSBVGA_CON all=y
+VIDEO_S5K4ECGX all=m
+WILINK_PLATFORM_DATA all=y