commit aec24f17553418da1b959f3b061d858a9a85810f Author: Arkadiusz MiĆkiewicz <ar...@maven.pl> Date: Mon Feb 20 22:15:44 2023 +0100
Up to 6.2.0 kernel-aufs.patch | 417 +++++++++++++++++++++++++++--------------------- kernel-multiarch.config | 174 ++++++++++++++++---- kernel.spec | 10 +- make-4.4.patch | 73 --------- 4 files changed, 384 insertions(+), 290 deletions(-) --- diff --git a/kernel.spec b/kernel.spec index 5e7b65fa..be5bbd98 100644 --- a/kernel.spec +++ b/kernel.spec @@ -66,11 +66,11 @@ %endif %define rel 1 -%define basever 6.1 -%define postver .10 +%define basever 6.2 +%define postver .0 # define this to '-%{basever}' for longterm branch -%define versuffix -%{basever} +%define versuffix %{nil} # __alt_kernel is list of features, empty string if none set # _alt kernel is defined as: %{nil}%{?alt_kernel:-%{?alt_kernel}} (defined in rpm.macros) @@ -118,7 +118,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: 475320de08f16c9fa486fc4edfe98b30 +# Source0-md5: 787862593d7bf354cf1a5c37e21fc147 %if "%{postver}" != ".0" Patch0: https://www.kernel.org/pub/linux/kernel/v6.x/patch-%{version}.xz # Patch0-md5: 6b16a31f1d9ec696ed17acbaa7d0d868 @@ -151,7 +151,6 @@ Source55: kernel-imq.config Source58: kernel-inittmpfs.config -Patch1: make-4.4.patch Patch2: android-enable-building-binder-as-module.patch # http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.25-rc6.patch Patch3: kernel-fbcondecor.patch @@ -610,7 +609,6 @@ cd linux-%{basever} %endif %if %{without vanilla} -%patch1 -p1 %patch2 -p1 %if %{with fbcondecor} diff --git a/kernel-aufs.patch b/kernel-aufs.patch index c54bcb61..f8f5460d 100644 --- a/kernel-aufs.patch +++ b/kernel-aufs.patch @@ -26,10 +26,10 @@ SPDX-License-Identifier: GPL-2.0 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 @@ -50,7 +50,7 @@ index 379945f82a64..b3b8fbca497b 100644 M: Miguel Ojeda <oj...@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, @@ -114,10 +114,10 @@ index 146c9ab0cd4b..c980a0524118 100644 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; } @@ -131,7 +131,7 @@ index df137ba19d37..faae7f8644ac 100644 * 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) @@ -159,10 +159,10 @@ index 0878b852b355..d83f9e5cddbc 100644 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); @@ -170,7 +170,7 @@ index e654435f1651..433a4f08dab4 100644 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); @@ -280,10 +280,10 @@ index 4d3493579458..42edd9a42c78 100644 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) { @@ -295,7 +295,7 @@ index 8a74cdcc9af0..c05071b53f5b 100644 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; @@ -321,10 +321,10 @@ index 2fd06f52b6a4..b01030da424f 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 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); } @@ -369,10 +369,10 @@ index 8bbcccbc5565..d5006a1f4271 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 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 */ @@ -382,7 +382,7 @@ index 500e536796ca..ad766e2110ca 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 -@@ -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). */ @@ -391,12 +391,12 @@ index 500e536796ca..ad766e2110ca 100644 +#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; @@ -415,10 +415,10 @@ index 8e105e5b3e29..c218d042dbce 100644 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); @@ -428,7 +428,7 @@ index 08341616ae7a..410ca60fbf39 100644 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) @@ -440,7 +440,7 @@ index 2def55555e05..fefc5c67e96e 100644 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); @@ -449,7 +449,7 @@ index 2def55555e05..fefc5c67e96e 100644 } 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); @@ -458,7 +458,7 @@ index 2def55555e05..fefc5c67e96e 100644 } 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) @@ -467,7 +467,7 @@ index 2def55555e05..fefc5c67e96e 100644 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) @@ -530,7 +530,7 @@ index 2def55555e05..fefc5c67e96e 100644 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) @@ -570,16 +570,16 @@ index 214c70e1d059..dccbb939d2a9 100644 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; @@ -699,10 +699,10 @@ index 519321f32f95..267e0c65914a 100644 /** * 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); } @@ -735,10 +735,10 @@ index dd88701e54a9..ecdb7817b074 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 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(); } @@ -746,7 +746,7 @@ index faae7f8644ac..0310c99a83dd 100644 /** * 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)); } @@ -754,7 +754,7 @@ index faae7f8644ac..0310c99a83dd 100644 /* * 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; } @@ -775,7 +775,7 @@ index 1de6631a3925..3008eb37a18d 100644 /* * 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, @@ -787,7 +787,7 @@ index a81319b6177f..50bb15ea3fb5 100644 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) @@ -807,7 +807,7 @@ index 328ce8cf9a85..59931848f794 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 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, @@ -827,10 +827,10 @@ index d83f9e5cddbc..ac355ebeb9f0 100644 /** * 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; } @@ -860,10 +860,10 @@ index 065e1ef8fc8d..c623c6f0c645 100644 } +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); } @@ -871,7 +871,7 @@ index 79d82cb6e469..1c50e6faadcd 100644 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); } @@ -879,7 +879,7 @@ index 79d82cb6e469..1c50e6faadcd 100644 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); } @@ -887,7 +887,7 @@ index 79d82cb6e469..1c50e6faadcd 100644 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); } @@ -895,7 +895,7 @@ index 79d82cb6e469..1c50e6faadcd 100644 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); } @@ -903,7 +903,7 @@ index 79d82cb6e469..1c50e6faadcd 100644 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); } @@ -911,7 +911,7 @@ index 79d82cb6e469..1c50e6faadcd 100644 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); } @@ -919,7 +919,7 @@ index 79d82cb6e469..1c50e6faadcd 100644 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); } @@ -927,6 +927,14 @@ index 79d82cb6e469..1c50e6faadcd 100644 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 @@ -2431,8 +2439,8 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/10dynop.txt lin +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 @@ -2539,21 +2547,20 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/README linux/Documenta + +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. + @@ -2562,30 +2569,30 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/README linux/Documenta +"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 @@ -2620,7 +2627,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/README linux/Documenta +---------------------------------------- +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 @@ -2633,8 +2640,10 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/README linux/Documenta + 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. @@ -2642,7 +2651,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/README linux/Documenta +- 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 @@ -2694,7 +2703,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/README linux/Documenta + 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 @@ -2710,13 +2719,17 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/README linux/Documenta + 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 @@ -2734,7 +2747,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/README linux/Documenta +/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. @@ -4758,7 +4771,7 @@ diff -urN /usr/share/empty/fs/aufs/conf.mk linux/fs/aufs/conf.mk +-include ${srctree}/${src}/conf_priv.mk diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c --- /usr/share/empty/fs/aufs/cpup.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux/fs/aufs/cpup.c 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 +/* @@ -5351,23 +5364,23 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c + * 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; @@ -5381,8 +5394,8 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c + 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; @@ -5473,7 +5486,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c + 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) @@ -7282,8 +7295,8 @@ diff -urN /usr/share/empty/fs/aufs/dcsub.h linux/fs/aufs/dcsub.h +#endif /* __AUFS_DCSUB_H__ */ diff -urN /usr/share/empty/fs/aufs/debug.c linux/fs/aufs/debug.c --- /usr/share/empty/fs/aufs/debug.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux/fs/aufs/debug.c 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 @@ -7413,11 +7426,13 @@ diff -urN /usr/share/empty/fs/aufs/debug.c linux/fs/aufs/debug.c + } + + 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), @@ -15413,8 +15428,8 @@ diff -urN /usr/share/empty/fs/aufs/finfo.c linux/fs/aufs/finfo.c +} 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 @@ -15865,6 +15880,10 @@ diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.c + 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: @@ -19280,7 +19299,7 @@ diff -urN /usr/share/empty/fs/aufs/iinfo.c linux/fs/aufs/iinfo.c +} diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c --- /usr/share/empty/fs/aufs/inode.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux/fs/aufs/inode.c 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 +/* @@ -19558,7 +19577,7 @@ diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c + } + 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. + */ + @@ -19815,8 +19834,8 @@ diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c +} diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h --- /usr/share/empty/fs/aufs/inode.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux/fs/aufs/inode.h 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 @@ -20143,8 +20162,10 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h +#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 + @@ -20748,7 +20769,7 @@ diff -urN /usr/share/empty/fs/aufs/ioctl.c linux/fs/aufs/ioctl.c +#endif diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c --- /usr/share/empty/fs/aufs/i_op_add.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux/fs/aufs/i_op_add.c 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 +/* @@ -21236,7 +21257,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c + 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; @@ -21724,8 +21745,8 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c +} diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c --- /usr/share/empty/fs/aufs/i_op.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux/fs/aufs/i_op.c 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 @@ -21785,7 +21806,8 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c + && 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, @@ -22763,7 +22785,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c + */ + 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); @@ -22860,7 +22882,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c + 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); + } @@ -23178,6 +23200,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c + [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 @@ -23206,6 +23229,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c + + .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 @@ -23224,6 +23248,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c + [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 @@ -28765,8 +28790,8 @@ diff -urN /usr/share/empty/fs/aufs/poll.c linux/fs/aufs/poll.c +} 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 @@ -28792,7 +28817,7 @@ diff -urN /usr/share/empty/fs/aufs/posix_acl.c linux/fs/aufs/posix_acl.c +#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; @@ -28822,7 +28847,7 @@ diff -urN /usr/share/empty/fs/aufs/posix_acl.c linux/fs/aufs/posix_acl.c + } + + /* 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 @@ -28837,12 +28862,24 @@ diff -urN /usr/share/empty/fs/aufs/posix_acl.c linux/fs/aufs/posix_acl.c + 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 = { @@ -28851,31 +28888,16 @@ diff -urN /usr/share/empty/fs/aufs/posix_acl.c linux/fs/aufs/posix_acl.c + }, + }; + ++ 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 @@ -32957,7 +32979,7 @@ 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 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 +/* @@ -33637,7 +33659,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c + 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(); @@ -33879,8 +33901,8 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c +} diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h --- /usr/share/empty/fs/aufs/vfsub.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux/fs/aufs/vfsub.h 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 @@ -34118,18 +34140,18 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h + +#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, @@ -34237,6 +34259,38 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h + 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 @@ -36711,8 +36765,8 @@ diff -urN /usr/share/empty/fs/aufs/wkq.h linux/fs/aufs/wkq.h +#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 @@ -36783,30 +36837,44 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c + 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 */ @@ -36814,8 +36882,12 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c + 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()) @@ -36830,7 +36902,7 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c +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; @@ -36878,33 +36950,12 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c + 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: @@ -39013,7 +39064,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 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 */ +/* @@ -39057,7 +39108,7 @@ diff -urN /usr/share/empty/include/uapi/linux/aufs_type.h linux/include/uapi/lin +#include <limits.h> +#endif /* __KERNEL__ */ + -+#define AUFS_VERSION "6.x-rcN-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') @@ -39471,7 +39522,7 @@ SPDX-License-Identifier: GPL-2.0 aufs6.x-rcN loopback patch diff --git a/drivers/block/loop.c b/drivers/block/loop.c -index 8ca56da3ca69..9ac6f67edf09 100644 +index 7a9928c6db9d..0bac486deea2 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -54,7 +54,7 @@ struct loop_device { @@ -39618,7 +39669,7 @@ index 8ca56da3ca69..9ac6f67edf09 100644 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) @@ -39693,10 +39744,10 @@ index 81922d4faf54..c8a62c267d72 100644 /* ---------------------------------------------------------------------- */ 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 *); diff --git a/kernel-multiarch.config b/kernel-multiarch.config index 06993978..40011367 100644 --- a/kernel-multiarch.config +++ b/kernel-multiarch.config @@ -6,6 +6,8 @@ ARCH_MEMORY_PROBE all=n 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 @@ -92,7 +94,10 @@ DEBUG_TLBFLUSH all=n 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 @@ -103,6 +108,7 @@ JUMP_LABEL 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 @@ -222,7 +228,6 @@ CRYPTO_AKCIPHER all=y 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 @@ -342,6 +347,11 @@ PKCS7_TEST_KEY 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 *** #- @@ -410,6 +420,7 @@ ACPI_CONFIGFS all=m 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 @@ -762,12 +773,14 @@ ZRAM_DEF_COMP_LZ4HC all=n 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 @@ -786,6 +799,7 @@ BT_HCIUART_QCA 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 @@ -852,8 +866,6 @@ HANGCHECK_TIMER all=m ppc64=n 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 *** @@ -911,6 +923,7 @@ IPMI_SSIF all=m IPMI_IPMB all=m IPMI_WATCHDOG all=m IPMI_POWEROFF all=m +SSIF_IPMI_BMC all=m IPMB_DEVICE_INTERFACE all=m #- @@ -1396,6 +1409,7 @@ CXL_MEM_RAW_COMMANDS all=y CXL_ACPI=m CXL_PMEM=m CXL_MEM all=m +CXL_REGION_INVALIDATION_TEST all=n #- #- *** FILE: drivers/dax/Kconfig *** @@ -1659,13 +1673,10 @@ ARM_SCMI_PROTOCOL arm=n arm64=n #- 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 @@ -1683,6 +1694,7 @@ EFI_COCO_SECRET all=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 @@ -1733,6 +1745,7 @@ FPGA_DFL_NIOS_INTEL_PAC_N3000 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 *** @@ -1785,7 +1798,6 @@ GPIO_ROCKCHIP arm64=m 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 @@ -1858,6 +1870,7 @@ GPIO_XRA1403 all=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 @@ -1872,9 +1885,7 @@ DRM_LOAD_EDID_FIRMWARE all=y #- 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 @@ -1946,6 +1957,7 @@ DRM_AMD_ACP all=y #- #- *** 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 @@ -2309,6 +2321,7 @@ DRM_QXL all=m #- #- *** FILE: drivers/gpu/drm/radeon/Kconfig *** #- +DRM_RADEON all=m DRM_RADEON_USERPTR all=y #- @@ -2417,7 +2430,6 @@ DRM_VIRTIO_GPU all=m #- *** FILE: drivers/gpu/drm/vmwgfx/Kconfig *** #- DRM_VMWGFX all=m -DRM_VMWGFX_FBCON all=y DRM_VMWGFX_MKSSTATS all=y #- @@ -2650,6 +2662,7 @@ HWMON_DEBUG_CHIP all=n #- 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 @@ -2772,6 +2785,7 @@ SENSORS_NPCM7XX 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 @@ -3154,6 +3168,8 @@ FXLS8962AF_SPI=m 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 @@ -3177,6 +3193,7 @@ STK8BA50 all=m #- *** FILE: drivers/iio/adc/Kconfig *** #- AB8500_GPADC all=y +AD4130 all=m AD7091R5 all=m AD7124 all=m AD7192 all=m @@ -3219,6 +3236,7 @@ MAX1027 all=m MAX11100 all=m MAX1118 all=m MAX11205 all=m +MAX11410 all=m MAX1241 all=m MAX1363 all=m MAX9611 all=m @@ -3226,6 +3244,7 @@ MCP320X 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 @@ -3262,6 +3281,7 @@ XILINX_XADC all=m #- #- *** FILE: drivers/iio/addac/Kconfig *** #- +AD74115 all=m AD74413R all=m STX104 all=m @@ -3388,6 +3408,7 @@ ADMV8818 all=m AD9523 all=m ADF4350 all=m ADF4371 all=m +ADF4377 all=m ADMV1013 all=m ADMV1014 all=m ADMV4420 all=m @@ -3667,6 +3688,7 @@ TMP007 all=m TMP117=m TSYS01 all=m TSYS02D all=m +MAX30208 all=m MAX31856 all=m MAX31865 all=m @@ -3694,6 +3716,7 @@ INFINIBAND_ADDR_TRANS all=y sparc= #- 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 @@ -3751,6 +3774,11 @@ INFINIBAND_HNS_HIP08 arm64=n #- INFINIBAND_IRDMA=m +#- +#- *** FILE: drivers/infiniband/hw/mana/Kconfig *** +#- +MANA_INFINIBAND all=m + #- #- *** FILE: drivers/infiniband/hw/mlx4/Kconfig *** #- @@ -4150,6 +4178,7 @@ TOUCHSCREEN_CYTTSP_SPI all=m 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 @@ -4162,6 +4191,7 @@ TOUCHSCREEN_FUJITSU 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 @@ -4237,6 +4267,7 @@ TOUCHSCREEN_COLIBRI_VF50 all=m TOUCHSCREEN_ROHM_BU21023 all=m TOUCHSCREEN_IQS5XX all=m TOUCHSCREEN_ZINITIX all=m +TOUCHSCREEN_HIMAX_HX83112B all=m #- #- *** FILE: drivers/interconnect/Kconfig *** @@ -4261,6 +4292,7 @@ IOMMU_DEFAULT_DMA_LAZY all=n 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 @@ -4284,6 +4316,11 @@ INTEL_IOMMU_SVM all=y 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 *** #- @@ -4803,6 +4840,7 @@ VIDEO_NOON010PC30 all=m 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 @@ -4810,6 +4848,7 @@ VIDEO_OV2659 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 @@ -4834,7 +4873,6 @@ VIDEO_RDACM20 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 @@ -5131,6 +5169,7 @@ VIDEO_MUX arm=m arm64=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 @@ -5173,6 +5212,7 @@ VIDEO_CAFE_CCIC all=m sparc=n #- #- 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 #- @@ -5350,6 +5390,7 @@ V4L_TEST_DRIVERS all=n #- 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 #- @@ -5689,6 +5730,7 @@ FUSION_LOGGING all=y sparc=n #- 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 @@ -5834,6 +5876,8 @@ ICS932S401 all=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 @@ -6431,7 +6475,6 @@ CAN_KVASER_PCIEFD all=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 @@ -6709,7 +6752,6 @@ JME all=m #- 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 @@ -7249,12 +7291,18 @@ ENCX24J600 all=m 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 *** #- @@ -7294,6 +7342,7 @@ NET_VENDOR_NETRONOME all=y NFP all=m NFP_APP_FLOWER all=y NFP_APP_ABM_NIC all=y +NFP_NET_IPSEC all=y NFP_DEBUG all=n #- @@ -7455,7 +7504,6 @@ SMC9194 alpha=m i386=m SMC91X arm=m arm64=m PCMCIA_SMC91C92 all=m EPIC100 all=m -SMC911X arm=m SMSC911X all=m SMSC9420 all=m @@ -8182,6 +8230,11 @@ MT7921E 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 *** #- @@ -8295,9 +8348,13 @@ RTL8192C_COMMON all=m #- 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 @@ -8306,6 +8363,7 @@ 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 @@ -8352,7 +8410,6 @@ WLAN_VENDOR_TI 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 *** @@ -8539,6 +8596,7 @@ BTT all=y NVDIMM_PFN all=y NVDIMM_DAX all=y OF_PMEM arm64=m +NVDIMM_SECURITY_TEST all=n #- #- *** FILE: drivers/nvme/host/Kconfig *** @@ -8777,6 +8835,8 @@ ARM_DMC620_PMU arm64=m 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 *** @@ -9027,6 +9087,7 @@ CROS_EC_DEBUGFS all=m 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 @@ -9116,10 +9177,8 @@ AMILO_RFKILL 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 @@ -9190,9 +9249,18 @@ DELL_SMO8800 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 *** #- @@ -9228,6 +9296,11 @@ INTEL_VSEC all=m 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 *** #- @@ -9572,6 +9645,7 @@ REGULATOR_MT6315 all=m 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 @@ -9598,6 +9672,7 @@ REGULATOR_RT5120 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 @@ -10216,6 +10291,7 @@ SPI_MICROCHIP_CORE_QSPI 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 @@ -10434,6 +10510,7 @@ STAGING_MEDIA all=y #- 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 @@ -10811,6 +10888,7 @@ VT_HW_CONSOLE_BINDING all=y 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 @@ -11004,7 +11082,9 @@ USB_PCI 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 @@ -11109,6 +11189,12 @@ USB_DWC3_KEYSTONE all=m 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 *** #- @@ -11185,7 +11271,6 @@ USB_RAW_GADGET all=m #- *** 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 @@ -11232,7 +11317,6 @@ USB_EHCI_HCD_PLATFORM arm=m arm64=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 @@ -11305,7 +11389,6 @@ USB_ONBOARD_HUB arm=m arm64=m #- *** FILE: drivers/usb/misc/sisusbvga/Kconfig *** #- USB_SISUSBVGA all=m -USB_SISUSBVGA_CON all=y #- #- *** FILE: drivers/usb/mon/Kconfig *** @@ -11507,6 +11590,7 @@ ALIBABA_ENI_VDPA all=m #- *** 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 @@ -11796,6 +11880,7 @@ VMGENID all=y #- 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 *** @@ -11812,6 +11897,11 @@ EFI_SECRET all=m #- SEV_GUEST all=m +#- +#- *** FILE: drivers/virt/coco/tdx-guest/Kconfig *** +#- +TDX_GUEST_DRIVER all=m + #- #- *** FILE: drivers/virt/nitro_enclaves/Kconfig *** #- @@ -11930,6 +12020,7 @@ MESON_WATCHDOG arm64=m 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 @@ -12449,6 +12540,7 @@ NFS_DISABLE_UDP_SUPPORT all=y #- *** 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 @@ -12661,6 +12753,7 @@ SQUASHFS_FILE_DIRECT 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 @@ -12858,6 +12951,7 @@ EVENTFD 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 @@ -13157,7 +13251,8 @@ DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT 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 @@ -13248,6 +13343,7 @@ DEBUG_CREDENTIALS all=n 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 @@ -13281,7 +13377,6 @@ ASYNC_RAID6_TEST all=m 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 @@ -13290,7 +13385,6 @@ TEST_UUID all=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 @@ -13685,6 +13779,7 @@ BT_BREDR all=y #- 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 @@ -14154,7 +14249,6 @@ NFT_MASQ all=m 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 @@ -14403,6 +14497,7 @@ AF_RXRPC_IPV6 all=y AF_RXRPC_INJECT_LOSS all=n AF_RXRPC_DEBUG all=n RXKAD all=y +RXPERF all=m #- #- *** FILE: net/sched/Kconfig *** @@ -15198,9 +15293,6 @@ SND_SOC_MIKROE_PROTO arm=m arm64=m #- 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 *** @@ -15389,6 +15481,7 @@ SND_SOC_WM8903 all=m 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 @@ -15495,9 +15588,11 @@ SND_SOC_INTEL_AVS_MACH_DA7219 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 @@ -15736,3 +15831,26 @@ RD_XZ all=y 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 diff --git a/make-4.4.patch b/make-4.4.patch deleted file mode 100644 index 46ae0e30..00000000 --- a/make-4.4.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 22c65447a7a4667b91ce82a027c91005df136768 Mon Sep 17 00:00:00 2001 -From: Dmitry Goncharov <dgoncha...@users.sf.net> -Date: Mon, 5 Dec 2022 16:48:19 -0500 -Subject: kbuild: Port silent mode detection to future gnu make. - -Port silent mode detection to the future (post make-4.4) versions of gnu make. - -Makefile contains the following piece of make code to detect if option -s is -specified on the command line. - -ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),) - -This code is executed by make at parse time and assumes that MAKEFLAGS -does not contain command line variable definitions. -Currently if the user defines a=s on the command line, then at build only -time MAKEFLAGS contains " -- a=s". -However, starting with commit dc2d963989b96161472b2cd38cef5d1f4851ea34 -MAKEFLAGS contains command line definitions at both parse time and -build time. - -This '-s' detection code then confuses a command line variable -definition which contains letter 's' with option -s. - -$ # old make -$ make net/wireless/ocb.o a=s - CALL scripts/checksyscalls.sh - DESCEND objtool -$ # this a new make which defines makeflags at parse time -$ ~/src/gmake/make/l64/make net/wireless/ocb.o a=s -$ - -We can see here that the letter 's' from 'a=s' was confused with -s. - -This patch checks for presence of -s using a method recommended by the -make manual here -https://www.gnu.org/software/make/manual/make.html#Testing-Flags. - -Link: https://lists.gnu.org/archive/html/bug-make/2022-11/msg00190.html -Reported-by: Jan Palus <jpalus+...@fastmail.com> -Signed-off-by: Dmitry Goncharov <dgoncha...@users.sf.net> -Signed-off-by: Masahiro Yamada <masahi...@kernel.org> ---- - Makefile | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - -diff --git a/Makefile b/Makefile -index 797fafbc1b45c..53fa1a9fba8aa 100644 ---- a/Makefile -+++ b/Makefile -@@ -93,10 +93,17 @@ endif - - # If the user is running make -s (silent mode), suppress echoing of - # commands -+# make-4.0 (and later) keep single letter options in the 1st word of MAKEFLAGS. - --ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),) -- quiet=silent_ -- KBUILD_VERBOSE = 0 -+ifeq ($(filter 3.%,$(MAKE_VERSION)),) -+silence:=$(findstring s,$(firstword -$(MAKEFLAGS))) -+else -+silence:=$(findstring s,$(filter-out --%,$(MAKEFLAGS))) -+endif -+ -+ifeq ($(silence),s) -+quiet=silent_ -+KBUILD_VERBOSE = 0 - endif - - export quiet Q KBUILD_VERBOSE --- -cgit - ================================================================ ---- gitweb: http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/aec24f17553418da1b959f3b061d858a9a85810f _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit