aufs5.x-rcN kbuild patch
diff --git a/fs/Kconfig b/fs/Kconfig
-index f08fbbfafd9a0..1c597cddc351c 100644
+index aa4c122823018..b29bad13b2491 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
-@@ -267,6 +267,7 @@ source "fs/sysv/Kconfig"
+@@ -288,6 +288,7 @@ source "fs/sysv/Kconfig"
source "fs/ufs/Kconfig"
source "fs/erofs/Kconfig"
source "fs/vboxsf/Kconfig"
endif # MISC_FILESYSTEMS
diff --git a/fs/Makefile b/fs/Makefile
-index 2ce5112b02c86..d9b4a51985538 100644
+index 999d1a23f036c..0cd76857ca764 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -136,3 +136,4 @@ obj-$(CONFIG_EFIVAR_FS) += efivarfs/
aufs5.x-rcN base patch
diff --git a/MAINTAINERS b/MAINTAINERS
-index 50659d76976b7..80f67140e4f70 100644
+index 667d03852191f..752948aa5d7c8 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -2946,6 +2946,19 @@ F: include/linux/audit.h
+@@ -3017,6 +3017,19 @@ F: include/linux/audit.h
F: include/uapi/linux/audit.h
F: kernel/audit*
+M: "J. R. Okajima" <hooanon05g@gmail.com>
+L: aufs-users@lists.sourceforge.net (members only)
+L: linux-unionfs@vger.kernel.org
++S: Supported
+W: http://aufs.sourceforge.net
+T: git://github.com/sfjro/aufs4-linux.git
-+S: Supported
-+F: Documentation/filesystems/aufs/
+F: Documentation/ABI/testing/debugfs-aufs
+F: Documentation/ABI/testing/sysfs-aufs
++F: Documentation/filesystems/aufs/
+F: fs/aufs/
+F: include/uapi/linux/aufs_type.h
+
M: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
S: Maintained
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index da693e6a834e5..0479902a0cd50 100644
+index e5ff328f09175..39d539df0349d 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
-@@ -753,6 +753,24 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -761,6 +761,24 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
return error;
}
static ssize_t loop_attr_show(struct device *dev, char *page,
diff --git a/fs/dcache.c b/fs/dcache.c
-index b280e07e162b1..046000653e4d8 100644
+index 97e81a844a966..a7522ebbca659 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
-@@ -1266,7 +1266,7 @@ enum d_walk_ret {
+@@ -1292,7 +1292,7 @@ enum d_walk_ret {
*
* The @enter() callbacks are called with d_lock held.
*/
{
struct dentry *this_parent;
diff --git a/fs/fcntl.c b/fs/fcntl.c
-index 2e4c0fa2074b0..0b28a37f7e505 100644
+index 05b36b28f2e87..e747a47a97da4 100644
--- a/fs/fcntl.c
+++ b/fs/fcntl.c
@@ -32,7 +32,7 @@
return error;
diff --git a/fs/inode.c b/fs/inode.c
-index 93d9252a00ab4..7700c5e4783b9 100644
+index 6442d97d9a4ab..e4a25c3fa9e55 100644
--- a/fs/inode.c
+++ b/fs/inode.c
-@@ -1688,7 +1688,7 @@ EXPORT_SYMBOL(generic_update_time);
+@@ -1769,7 +1769,7 @@ EXPORT_SYMBOL(generic_update_time);
* This does the actual work of updating an inodes time or version. Must have
* had called mnt_want_write() before calling this.
*/
if (inode->i_op->update_time)
return inode->i_op->update_time(inode, time, flags);
diff --git a/fs/namespace.c b/fs/namespace.c
-index a28e4db075ede..12e725e34c6ca 100644
+index 9d33909d0f9e3..3e16fc64df8b8 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
-@@ -776,6 +776,12 @@ static inline int check_mnt(struct mount *mnt)
+@@ -792,6 +792,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 4e53efbd621db..9f230ee854e20 100644
+index 866d5c2367b23..55b5356262085 100644
--- a/fs/splice.c
+++ b/fs/splice.c
-@@ -849,8 +849,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+@@ -756,8 +756,8 @@ static int warn_unsupported(struct file *file, const char *op)
/*
* Attempt to initiate a splice from pipe to file.
*/
+long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ loff_t *ppos, size_t len, unsigned int flags)
{
- ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
- loff_t *, size_t, unsigned int);
-@@ -866,9 +866,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ if (unlikely(!out->f_op->splice_write))
+ return warn_unsupported(out, "write");
+@@ -767,9 +767,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
/*
* Attempt to initiate a splice from a file to a pipe.
*/
+ struct pipe_inode_info *pipe, size_t len,
+ unsigned int flags)
{
- ssize_t (*splice_read)(struct file *, loff_t *,
- struct pipe_inode_info *, size_t, unsigned int);
+ int ret;
+
diff --git a/fs/sync.c b/fs/sync.c
-index 4d1ff010bc5af..457f4e4a5cc1f 100644
+index 1373a610dc784..b7b5a0a0df6ff 100644
--- a/fs/sync.c
+++ b/fs/sync.c
@@ -28,7 +28,7 @@
if (wait)
sync_inodes_sb(sb);
diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 45cc10cdf6ddd..916efd7e612b3 100644
+index fd47deea7c176..91f3fbe5b57ff 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
-@@ -1370,6 +1370,7 @@
+@@ -1330,6 +1330,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);
-@@ -1858,6 +1859,7 @@
+@@ -1841,6 +1842,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);
int (*flock) (struct file *, int, struct file_lock *);
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
-@@ -2362,6 +2370,7 @@
+@@ -2326,6 +2328,7 @@ extern int current_umask(void);
extern void ihold(struct inode * inode);
extern void iput(struct inode *);
extern int generic_update_time(struct inode *, struct timespec64 *, int);
/* /sys/fs */
extern struct kobject *fs_kobj;
-@@ -2549,6 +2558,7 @@
+@@ -2562,6 +2565,7 @@ static inline bool sb_is_blkdev_sb(struct super_block *sb)
}
void emergency_thaw_all(void);
extern const struct file_operations def_blk_fops;
extern const struct file_operations def_chr_fops;
diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
-index 206774ac69460..e5eda5226fbc7 100644
+index b9e9adec73e8b..e152c49cc3163 100644
--- a/include/linux/lockdep.h
+++ b/include/linux/lockdep.h
-@@ -376,6 +376,8 @@ static inline int lockdep_match_key(struct lockdep_map *lock,
+@@ -241,6 +241,8 @@ static inline int lockdep_match_key(struct lockdep_map *lock,
return lock->key == key;
}
/*
* Acquire a lock.
*
-@@ -521,6 +523,7 @@ struct lockdep_map { };
-
- #define lockdep_depth(tsk) (0)
-
-+#define lockdep_is_held(lock) (1)
- #define lockdep_is_held_type(l, r) (1)
-
- #define lockdep_assert_held(l) do { (void)(l); } while (0)
diff --git a/include/linux/mnt_namespace.h b/include/linux/mnt_namespace.h
-index 35942084cd40d..24f5fd1a789de 100644
+index 8f882f5881e87..6b9808f098435 100644
--- a/include/linux/mnt_namespace.h
+++ b/include/linux/mnt_namespace.h
-@@ -7,12 +7,15 @@
+@@ -7,12 +7,15 @@ struct mnt_namespace;
struct fs_struct;
struct user_namespace;
struct ns_common;
extern const struct file_operations proc_mountinfo_operations;
extern const struct file_operations proc_mountstats_operations;
diff --git a/include/linux/splice.h b/include/linux/splice.h
-index ebbbfea48aa0b..d68d574250283 100644
+index a55179fd60fc3..8e21c53cf8831 100644
--- a/include/linux/splice.h
+++ b/include/linux/splice.h
-@@ -90,4 +90,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
+@@ -93,4 +93,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
extern const struct pipe_buf_operations default_pipe_buf_ops;
+ unsigned int flags);
#endif
diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
-index ac10db66cc63f..837a3358e77ca 100644
+index bdaf4829098c0..5c3bff75de111 100644
--- a/kernel/locking/lockdep.c
+++ b/kernel/locking/lockdep.c
-@@ -169,7 +169,7 @@ static
+@@ -188,7 +188,7 @@ static
struct lock_class lock_classes[MAX_LOCKDEP_KEYS];
static DECLARE_BITMAP(lock_classes_in_use, MAX_LOCKDEP_KEYS);
{
unsigned int class_idx = hlock->class_idx;
-@@ -190,6 +190,7 @@ static inline struct lock_class *hlock_class(struct held_lock *hlock)
+@@ -209,6 +209,7 @@ static inline struct lock_class *hlock_class(struct held_lock *hlock)
*/
return lock_classes + class_idx;
}
aufs5.x-rcN mmap patch
diff --git a/fs/proc/base.c b/fs/proc/base.c
-index eb2255e95f62b..92f6062423c0c 100644
+index b3422cda2a91e..bda8e8ece7208 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
-@@ -2162,7 +2162,7 @@ static int map_files_get_link(struct dentry *dentry, struct path *path)
+@@ -2184,7 +2184,7 @@ static int map_files_get_link(struct dentry *dentry, struct path *path)
rc = -ENOENT;
vma = find_exact_vma(mm, vm_start, vm_end);
if (vma && vma->vm_file) {
rc = 0;
}
diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
-index 14c2badb8fd93..65afe5287e43e 100644
+index 13452b32e2bd5..38acccfef9d49 100644
--- a/fs/proc/nommu.c
+++ b/fs/proc/nommu.c
-@@ -41,7 +41,10 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
+@@ -40,7 +40,10 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
file = region->vm_file;
if (file) {
ino = inode->i_ino;
}
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index 8d382d4ec0672..93a768f754c91 100644
+index 602e3a52884d8..a36614b84de16 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -280,7 +280,10 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
dev = inode->i_sb->s_dev;
ino = inode->i_ino;
pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
-@@ -1787,7 +1790,7 @@ static int show_numa_map(struct seq_file *m, void *v)
+@@ -1862,7 +1865,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;
struct mempolicy *pol;
char buffer[64];
diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
-index 7907e6419e572..d17209cf52bc3 100644
+index a6d21fc0033c6..02c2de31196e0 100644
--- a/fs/proc/task_nommu.c
+++ b/fs/proc/task_nommu.c
@@ -155,7 +155,10 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma)
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 f3fe7371855ce..a5b9751a5b331 100644
+index ecdf8a8cd6aeb..d9b3ec02ecbef 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
-@@ -1688,6 +1688,28 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,
+@@ -1715,6 +1715,28 @@ 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 4aba6c0c2ba80..974802987f69d 100644
+index 07d9acb5b19c4..2f395ab624f38 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
-@@ -272,6 +272,7 @@ struct vm_region {
+@@ -278,6 +278,7 @@ 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
-@@ -351,6 +352,7 @@ struct vm_area_struct {
+@@ -357,6 +358,7 @@ 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). */
#ifdef CONFIG_SWAP
diff --git a/kernel/fork.c b/kernel/fork.c
-index 48ed22774efaa..d7439388c1c52 100644
+index d66cd1014211b..a2addc21d63fc 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -568,7 +568,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
+@@ -555,7 +555,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
struct inode *inode = file_inode(file);
struct address_space *mapping = file->f_mapping;
- get_file(file);
+ vma_get_file(tmp);
if (tmp->vm_flags & VM_DENYWRITE)
- atomic_dec(&inode->i_writecount);
+ put_write_access(inode);
i_mmap_lock_write(mapping);
diff --git a/mm/Makefile b/mm/Makefile
-index fccd3756b25f0..51485ceec650a 100644
+index b6cd2fffa4922..784e2cebe1eac 100644
--- a/mm/Makefile
+++ b/mm/Makefile
-@@ -44,7 +44,7 @@ obj-y := filemap.o mempool.o oom_kill.o fadvise.o \
- mm_init.o mmu_context.o percpu.o slab_common.o \
+@@ -52,7 +52,7 @@ obj-y := filemap.o mempool.o oom_kill.o fadvise.o \
+ mm_init.o percpu.o slab_common.o \
compaction.o vmacache.o \
interval_tree.o list_lru.o workingset.o \
-- debug.o gup.o $(mmu-y)
-+ prfile.o debug.o gup.o $(mmu-y)
+- debug.o gup.o mmap_lock.o $(mmu-y)
++ prfile.o debug.o gup.o mmap_lock.o $(mmu-y)
# Give 'page_alloc' its own module-parameter namespace
page-alloc-y := page_alloc.o
diff --git a/mm/filemap.c b/mm/filemap.c
-index 23a051a7ef0fb..e2fe9132feb21 100644
+index aa0e0fb046700..d883a19f4237e 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
-@@ -2660,7 +2660,7 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
+@@ -2993,7 +2993,7 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
vm_fault_t ret = VM_FAULT_LOCKED;
- sb_start_pagefault(inode->i_sb);
+ sb_start_pagefault(mapping->host->i_sb);
- file_update_time(vmf->vma->vm_file);
+ vma_file_update_time(vmf->vma);
lock_page(page);
- if (page->mapping != inode->i_mapping) {
+ if (page->mapping != mapping) {
unlock_page(page);
diff --git a/mm/mmap.c b/mm/mmap.c
-index f609e9ec4a253..d554b349c653c 100644
+index dc7206032387c..09b10e20c097c 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -179,7 +179,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
mpol_put(vma_policy(vma));
vm_area_free(vma);
return next;
-@@ -910,7 +910,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
+@@ -951,7 +951,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
if (remove_next) {
if (file) {
uprobe_munmap(next, next->vm_start, next->vm_end);
}
if (next->anon_vma)
anon_vma_merge(vma, next);
-@@ -1831,8 +1831,8 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
+@@ -1897,7 +1897,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
return addr;
unmap_and_free_vma:
+- fput(vma->vm_file);
+ vma_fput(vma);
vma->vm_file = NULL;
-- fput(file);
/* Undo any partial mapping done by a device driver. */
- unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end);
-@@ -2683,7 +2683,7 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2757,7 +2757,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);
-@@ -2702,7 +2702,7 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2776,7 +2776,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)
unlink_anon_vmas(new);
out_free_mpol:
mpol_put(vma_policy(new));
-@@ -2894,7 +2894,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -2969,7 +2969,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
struct vm_area_struct *vma;
unsigned long populate = 0;
unsigned long ret = -EINVAL;
pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/vm/remap_file_pages.rst.\n",
current->comm, current->pid);
-@@ -2969,10 +2969,27 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -3044,10 +3044,27 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
}
}
+ if (prfile)
+ fput(prfile);
out:
- up_write(&mm->mmap_sem);
+ mmap_write_unlock(mm);
if (populate)
-@@ -3263,7 +3280,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -3334,7 +3351,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)
new_vma->vm_ops->open(new_vma);
vma_link(mm, new_vma, prev, rb_link, rb_parent);
diff --git a/mm/nommu.c b/mm/nommu.c
-index 318df4e236c99..7f051e86ea1dd 100644
+index 870fea12823e6..edbc99eee5b6b 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
-@@ -567,7 +567,7 @@ static void __put_nommu_region(struct vm_region *region)
+@@ -533,7 +533,7 @@ static void __put_nommu_region(struct vm_region *region)
up_write(&nommu_region_sem);
if (region->vm_file)
/* IO memory and memory shared directly out of the pagecache
* from ramfs/tmpfs mustn't be released here */
-@@ -699,7 +699,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma)
+@@ -665,7 +665,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma)
if (vma->vm_ops && vma->vm_ops->close)
vma->vm_ops->close(vma);
if (vma->vm_file)
put_nommu_region(vma->vm_region);
vm_area_free(vma);
}
-@@ -1222,7 +1222,7 @@ unsigned long do_mmap(struct file *file,
+@@ -1188,7 +1188,7 @@ unsigned long do_mmap(struct file *file,
goto error_just_free;
}
}
kmem_cache_free(vm_region_jar, region);
region = pregion;
result = start;
-@@ -1299,10 +1299,10 @@ unsigned long do_mmap(struct file *file,
+@@ -1265,10 +1265,10 @@ unsigned long do_mmap(struct file *file,
up_write(&nommu_region_sem);
error:
if (region->vm_file)
aufs5.x-rcN standalone patch
diff --git a/fs/dcache.c b/fs/dcache.c
-index 046000653e4d8..15aa871d1b450 100644
+index a7522ebbca659..d429c984133ca 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
-@@ -1371,6 +1371,7 @@ void d_walk(struct dentry *parent, void *data,
+@@ -1397,6 +1397,7 @@ void d_walk(struct dentry *parent, void *data,
seq = 1;
goto again;
}
struct check_mount {
struct vfsmount *mnt;
-@@ -2916,6 +2917,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2)
+@@ -2942,6 +2943,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2)
write_sequnlock(&rename_lock);
}
/**
* d_ancestor - search for an ancestor
diff --git a/fs/exec.c b/fs/exec.c
-index 2c465119affcc..239bcb8906e78 100644
+index 5d4d52039105c..adc75877cdee7 100644
--- a/fs/exec.c
+++ b/fs/exec.c
-@@ -109,6 +109,7 @@ bool path_noexec(const struct path *path)
+@@ -114,6 +114,7 @@ bool path_noexec(const struct path *path)
return (path->mnt->mnt_flags & MNT_NOEXEC) ||
(path->mnt->mnt_sb->s_iflags & SB_I_NOEXEC);
}
#ifdef CONFIG_USELIB
/*
diff --git a/fs/fcntl.c b/fs/fcntl.c
-index 0b28a37f7e505..f2c90a416b751 100644
+index e747a47a97da4..d6211ff25c9a4 100644
--- a/fs/fcntl.c
+++ b/fs/fcntl.c
@@ -85,6 +85,7 @@ int setfl(int fd, struct file *filp, unsigned long arg)
static void f_modown(struct file *filp, struct pid *pid, enum pid_type type,
int force)
diff --git a/fs/file_table.c b/fs/file_table.c
-index 30d55c9a1744a..34b9bbf4c5566 100644
+index 45437f8e1003e..786af52904fcf 100644
--- a/fs/file_table.c
+++ b/fs/file_table.c
-@@ -162,6 +162,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred)
+@@ -161,6 +161,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred)
}
return ERR_PTR(-ENFILE);
}
void __init files_init(void)
{
diff --git a/fs/inode.c b/fs/inode.c
-index 7700c5e4783b9..6284b41fcf3f0 100644
+index e4a25c3fa9e55..497326faa1247 100644
--- a/fs/inode.c
+++ b/fs/inode.c
-@@ -1694,6 +1694,7 @@ int update_time(struct inode *inode, struct timespec64 *time, int flags)
+@@ -1775,6 +1775,7 @@ int update_time(struct inode *inode, struct timespec64 *time, int flags)
return inode->i_op->update_time(inode, time, flags);
return generic_update_time(inode, time, flags);
}
/**
* touch_atime - update the access time
diff --git a/fs/namespace.c b/fs/namespace.c
-index 12e725e34c6ca..fa17b9d5926ba 100644
+index 3e16fc64df8b8..eed3453ec40a8 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -431,6 +431,7 @@ void __mnt_drop_write(struct vfsmount *mnt)
/**
* mnt_drop_write - give up write access to a mount
-@@ -781,6 +782,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
+@@ -797,6 +798,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
{
return check_mnt(real_mount(mnt));
}
/*
* vfsmount lock must be held for write
-@@ -1903,6 +1905,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+@@ -1967,6 +1969,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
}
return 0;
}
static void lock_mnt_tree(struct mount *mnt)
{
diff --git a/fs/notify/group.c b/fs/notify/group.c
-index 133f723aca070..0b9f7f6d8390f 100644
+index a4a4b1c64d32a..86dc2efb1850c 100644
--- a/fs/notify/group.c
+++ b/fs/notify/group.c
-@@ -99,6 +99,7 @@ void fsnotify_get_group(struct fsnotify_group *group)
+@@ -100,6 +100,7 @@ void fsnotify_get_group(struct fsnotify_group *group)
{
refcount_inc(&group->refcnt);
}
/*
* Drop a reference to a group. Free it if it's through.
diff --git a/fs/open.c b/fs/open.c
-index 719b320ede52b..f88ce55c1c998 100644
+index 1e06e443a5651..c3bbb8aafcd1a 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -65,6 +65,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
long vfs_truncate(const struct path *path, loff_t length)
{
diff --git a/fs/read_write.c b/fs/read_write.c
-index 5d684d7d29207..6f61c0b6aa664 100644
+index 75f764b434184..7582bb3fb634b 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
-@@ -469,6 +469,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
-
+@@ -503,6 +503,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
+ inc_syscr(current);
return ret;
}
+EXPORT_SYMBOL_GPL(vfs_read);
static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
{
-@@ -589,6 +592,7 @@ ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_
-
+@@ -613,6 +614,7 @@ ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_
+ file_end_write(file);
return ret;
}
+EXPORT_SYMBOL_GPL(vfs_write);
/* 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 9f230ee854e20..a6bd05004433c 100644
+index 55b5356262085..c13ac0fbac318 100644
--- a/fs/splice.c
+++ b/fs/splice.c
-@@ -862,6 +862,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
-
- return splice_write(pipe, out, ppos, len, flags);
+@@ -763,6 +763,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ return warn_unsupported(out, "write");
+ return out->f_op->splice_write(pipe, out, ppos, len, flags);
}
+EXPORT_SYMBOL_GPL(do_splice_from);
/*
* Attempt to initiate a splice from a file to a pipe.
-@@ -891,6 +892,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
-
- return splice_read(in, ppos, pipe, len, flags);
+@@ -787,6 +788,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+ return warn_unsupported(in, "read");
+ return in->f_op->splice_read(in, ppos, pipe, len, flags);
}
+EXPORT_SYMBOL_GPL(do_splice_to);
/**
* splice_direct_to_actor - splices data directly between two non-pipes
diff --git a/fs/sync.c b/fs/sync.c
-index 457f4e4a5cc1f..67c66358f3fe4 100644
+index b7b5a0a0df6ff..fa5c7fba7f1ba 100644
--- a/fs/sync.c
+++ b/fs/sync.c
@@ -39,6 +39,7 @@ int __sync_filesystem(struct super_block *sb, int wait)
/*
* Write out and wait upon all dirty data associated with this
diff --git a/fs/xattr.c b/fs/xattr.c
-index 91608d9bfc6aa..02d19ab3ba540 100644
+index fd57153b1f617..d8e9d0d6853ef 100644
--- a/fs/xattr.c
+++ b/fs/xattr.c
-@@ -296,6 +296,7 @@ vfs_getxattr_alloc(struct dentry *dentry, const char *name, char **xattr_value,
+@@ -371,6 +371,7 @@ vfs_getxattr_alloc(struct dentry *dentry, const char *name, char **xattr_value,
*xattr_value = value;
return error;
}
ssize_t
__vfs_getxattr(struct dentry *dentry, struct inode *inode, const char *name,
diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
-index 837a3358e77ca..715ba9c1b91ae 100644
+index 5c3bff75de111..ff00031462623 100644
--- a/kernel/locking/lockdep.c
+++ b/kernel/locking/lockdep.c
-@@ -190,6 +190,7 @@ inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock)
+@@ -209,6 +209,7 @@ inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock)
*/
return lock_classes + class_idx;
}
#ifdef CONFIG_LOCK_STAT
diff --git a/kernel/task_work.c b/kernel/task_work.c
-index 825f28259a19a..b77593b29c1a5 100644
+index 9cde961875c0a..ac8c79dc81813 100644
--- a/kernel/task_work.c
+++ b/kernel/task_work.c
-@@ -126,3 +126,4 @@ void task_work_run(void)
+@@ -143,3 +143,4 @@ void task_work_run(void)
} while (work);
}
}
+EXPORT_SYMBOL_GPL(task_work_run);
diff --git a/security/security.c b/security/security.c
-index 51de970fbb1ed..b21f1ffd90051 100644
+index 7b09cfbae94f7..3e060cc948262 100644
--- a/security/security.c
+++ b/security/security.c
-@@ -1087,6 +1087,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry)
+@@ -1094,6 +1094,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)
{
-@@ -1103,6 +1104,7 @@ int security_path_symlink(const struct path *dir, struct dentry *dentry,
+@@ -1110,6 +1111,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)
-@@ -1111,6 +1113,7 @@ int security_path_link(struct dentry *old_dentry, const struct path *new_dir,
+@@ -1118,6 +1120,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,
-@@ -1138,6 +1141,7 @@ int security_path_truncate(const struct path *path)
+@@ -1145,6 +1148,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)
{
-@@ -1145,6 +1149,7 @@ int security_path_chmod(const struct path *path, umode_t mode)
+@@ -1152,6 +1156,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)
{
-@@ -1152,6 +1157,7 @@ int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
+@@ -1159,6 +1164,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)
{
-@@ -1252,6 +1258,7 @@ int security_inode_permission(struct inode *inode, int mask)
+@@ -1259,6 +1265,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 dentry *dentry, struct iattr *attr)
{
-@@ -1429,6 +1436,7 @@ int security_file_permission(struct file *file, int mask)
+@@ -1451,6 +1458,7 @@ int security_file_permission(struct file *file, int mask)
return fsnotify_perm(file, mask);
}
+}
diff -urN /usr/share/empty/fs/aufs/branch.h linux/fs/aufs/branch.h
--- /usr/share/empty/fs/aufs/branch.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/branch.h 2020-12-15 14:10:58.911356294 +0100
++++ linux/fs/aufs/branch.h 2021-01-03 20:16:59.647267172 +0100
@@ -0,0 +1,364 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+-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 2020-12-15 14:10:58.911356294 +0100
++++ linux/fs/aufs/cpup.c 2021-01-03 20:16:59.647267172 +0100
@@ -0,0 +1,1445 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ case S_IFCHR:
+ case S_IFBLK:
+ AuDebugOn(!capable(CAP_MKNOD));
-+ /*FALLTHROUGH*/
++ fallthrough;
+ case S_IFIFO:
+ case S_IFSOCK:
+ err = vfsub_mknod(h_dir, &h_path, mode, h_inode->i_rdev);
+#endif /* __AUFS_DIRREN_H__ */
diff -urN /usr/share/empty/fs/aufs/dynop.c linux/fs/aufs/dynop.c
--- /usr/share/empty/fs/aufs/dynop.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dynop.c 2020-12-15 14:10:58.914689728 +0100
++++ linux/fs/aufs/dynop.c 2021-01-03 20:16:59.647267172 +0100
@@ -0,0 +1,368 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+#endif /* __AUFS_DYNOP_H__ */
diff -urN /usr/share/empty/fs/aufs/export.c linux/fs/aufs/export.c
--- /usr/share/empty/fs/aufs/export.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/export.c 2020-12-15 14:10:58.914689728 +0100
++++ linux/fs/aufs/export.c 2021-01-03 20:16:59.650600616 +0100
@@ -0,0 +1,837 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+}
diff -urN /usr/share/empty/fs/aufs/file.c linux/fs/aufs/file.c
--- /usr/share/empty/fs/aufs/file.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/file.c 2020-12-15 14:10:58.918023162 +0100
-@@ -0,0 +1,867 @@
++++ linux/fs/aufs/file.c 2021-01-03 20:16:57.407193191 +0100
+@@ -0,0 +1,863 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+
+/* they will never be called. */
+#ifdef CONFIG_AUFS_DEBUG
-+/*
-+void aufs_readahead(struct readahead_control *)
-+{ AuUnsupport(); }
-+*/
+static int aufs_write_begin(struct file *file, struct address_space *mapping,
+ loff_t pos, unsigned len, unsigned flags,
+ struct page **pagep, void **fsdata)
+}
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 2020-12-15 14:10:58.914689728 +0100
++++ linux/fs/aufs/f_op.c 2021-01-03 20:16:59.650600616 +0100
@@ -0,0 +1,762 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+#endif /* __AUFS_HBL_H__ */
diff -urN /usr/share/empty/fs/aufs/hfsnotify.c linux/fs/aufs/hfsnotify.c
--- /usr/share/empty/fs/aufs/hfsnotify.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/hfsnotify.c 2020-12-15 14:10:58.918023162 +0100
++++ linux/fs/aufs/hfsnotify.c 2021-01-03 20:16:59.650600616 +0100
@@ -0,0 +1,288 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+}
diff -urN /usr/share/empty/fs/aufs/hnotify.c linux/fs/aufs/hnotify.c
--- /usr/share/empty/fs/aufs/hnotify.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/hnotify.c 2020-01-27 10:57:18.172204883 +0100
++++ linux/fs/aufs/hnotify.c 2021-01-03 20:16:59.650600616 +0100
@@ -0,0 +1,715 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ case FS_MOVED_TO:
+ au_fset_hnjob(flags[AuHn_CHILD], XINO0);
+ au_fset_hnjob(flags[AuHn_CHILD], MNTPNT);
-+ /*FALLTHROUGH*/
++ fallthrough;
+ case FS_CREATE:
+ AuDebugOn(!h_child_name);
+ break;
+}
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 2020-08-03 09:14:46.095748745 +0200
++++ linux/fs/aufs/inode.h 2021-01-03 20:16:59.650600616 +0100
@@ -0,0 +1,698 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ int (*alloc)(struct au_hinode *hinode);
+
+ /*
-+ * if it returns true, the the caller should free hinode->hi_notify,
++ * if it returns true, the caller should free hinode->hi_notify,
+ * otherwise ->free() frees it.
+ */
+ int (*free)(struct au_hinode *hinode,
+}
diff -urN /usr/share/empty/fs/aufs/opts.c linux/fs/aufs/opts.c
--- /usr/share/empty/fs/aufs/opts.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/opts.c 2020-01-27 10:57:18.175538316 +0100
++++ linux/fs/aufs/opts.c 2021-01-03 20:16:59.650600616 +0100
@@ -0,0 +1,1880 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ err = e;
+ break;
+ }
-+ /*FALLTHROUGH*/
++ fallthrough;
+ case AuWbrCreate_MFS:
+ case AuWbrCreate_PMFS:
+ create->mfs_second = AUFS_MFS_DEF_SEC;
+
+ case Opt_ignore:
+ pr_warn("ignored %s\n", opt_str);
-+ /*FALLTHROUGH*/
++ fallthrough;
+ case Opt_ignore_silent:
+ skipped = 1;
+ err = 0;
+ case AuWbrCreate_PMFSRR:
+ case AuWbrCreate_PMFSRRV:
+ sbinfo->si_wbr_mfs.mfsrr_watermark = create->mfsrr_watermark;
-+ /*FALLTHROUGH*/
++ fallthrough;
+ case AuWbrCreate_MFS:
+ case AuWbrCreate_MFSV:
+ case AuWbrCreate_PMFS:
+ /* Always goto add, not fallthrough */
+ case Opt_prepend:
+ opt->add.bindex = 0;
-+ /* fallthrough */
++ fallthrough;
+ add: /* indented label */
+ case Opt_add:
+ err = au_br_add(sb, &opt->add,
+#endif
diff -urN /usr/share/empty/fs/aufs/rwsem.h linux/fs/aufs/rwsem.h
--- /usr/share/empty/fs/aufs/rwsem.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/rwsem.h 2020-01-27 10:57:18.178871751 +0100
-@@ -0,0 +1,73 @@
++++ linux/fs/aufs/rwsem.h 2021-02-15 10:56:01.751497252 +0100
+@@ -0,0 +1,85 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+
+/* to debug easier, do not make them inlined functions */
+#define AuRwMustNoWaiters(rw) AuDebugOn(rwsem_is_contended(rw))
++
++#ifdef CONFIG_LOCKDEP
+/* rwsem_is_locked() is unusable */
-+#define AuRwMustReadLock(rw) AuDebugOn(!lockdep_recursing(current) \
-+ && debug_locks \
++#define AuRwMustReadLock(rw) AuDebugOn(IS_ENABLED(CONFIG_LOCKDEP) \
++ && !lockdep_recursing(current) \
++ && debug_locks \
+ && !lockdep_is_held_type(rw, 1))
-+#define AuRwMustWriteLock(rw) AuDebugOn(!lockdep_recursing(current) \
-+ && debug_locks \
++#define AuRwMustWriteLock(rw) AuDebugOn(IS_ENABLED(CONFIG_LOCKDEP) \
++ && !lockdep_recursing(current) \
++ && debug_locks \
+ && !lockdep_is_held_type(rw, 0))
-+#define AuRwMustAnyLock(rw) AuDebugOn(!lockdep_recursing(current) \
-+ && debug_locks \
++#define AuRwMustAnyLock(rw) AuDebugOn(IS_ENABLED(CONFIG_LOCKDEP) \
++ && !lockdep_recursing(current) \
++ && debug_locks \
+ && !lockdep_is_held(rw))
-+#define AuRwDestroy(rw) AuDebugOn(!lockdep_recursing(current) \
-+ && debug_locks \
++#define AuRwDestroy(rw) AuDebugOn(IS_ENABLED(CONFIG_LOCKDEP) \
++ && !lockdep_recursing(current) \
++ && debug_locks \
+ && lockdep_is_held(rw))
++#else
++#define AuRwMustReadLock(rw) do {} while (0)
++#define AuRwMustWriteLock(rw) do {} while (0)
++#define AuRwMustAnyLock(rw) do {} while (0)
++#define AuRwDestroy(rw) do {} while (0)
++#endif
+
+#define au_rw_init(rw) init_rwsem(rw)
+
+};
diff -urN /usr/share/empty/fs/aufs/super.h linux/fs/aufs/super.h
--- /usr/share/empty/fs/aufs/super.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/super.h 2020-12-15 14:10:58.918023162 +0100
++++ linux/fs/aufs/super.h 2021-01-03 20:16:59.650600616 +0100
@@ -0,0 +1,587 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+}
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 2020-12-15 14:10:58.921356596 +0100
++++ linux/fs/aufs/vfsub.c 2021-01-03 20:16:59.650600616 +0100
@@ -0,0 +1,885 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+}
diff -urN /usr/share/empty/fs/aufs/xino.c linux/fs/aufs/xino.c
--- /usr/share/empty/fs/aufs/xino.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/xino.c 2020-12-15 14:10:58.924690030 +0100
++++ linux/fs/aufs/xino.c 2021-01-03 20:16:59.650600616 +0100
@@ -0,0 +1,1925 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+}
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 2020-10-14 08:51:27.819581640 +0200
++++ linux/include/uapi/linux/aufs_type.h 2021-02-15 10:56:01.751497252 +0100
@@ -0,0 +1,452 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
+#include <limits.h>
+#endif /* __KERNEL__ */
+
-+#define AUFS_VERSION "5.x-rcN-20200622"
++#define AUFS_VERSION "5.x-rcN-20210215"
+
+/* todo? move this to linux-2.6.19/include/magic.h */
+#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
aufs5.x-rcN loopback patch
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 0479902a0cd50..758c8ee4d4e6b 100644
+index 39d539df0349d..4109efe2f6a3a 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
-@@ -638,6 +638,15 @@ static inline void loop_update_dio(struct loop_device *lo)
- lo->use_dio);
+@@ -646,6 +646,15 @@ static inline void loop_update_dio(struct loop_device *lo)
+ lo->use_dio);
}
+static struct file *loop_real_file(struct file *file)
static void loop_reread_partitions(struct loop_device *lo,
struct block_device *bdev)
{
-@@ -693,6 +702,7 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -701,6 +710,7 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
unsigned int arg)
{
struct file *file = NULL, *old_file;
int error;
bool partscan;
-@@ -712,12 +722,19 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -720,12 +730,19 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
file = fget(arg);
if (!file)
goto out_err;
error = -EINVAL;
-@@ -729,6 +746,7 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -737,6 +754,7 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
blk_mq_freeze_queue(lo->lo_queue);
mapping_set_gfp_mask(old_file->f_mapping, lo->old_gfp_mask);
lo->lo_backing_file = file;
lo->old_gfp_mask = mapping_gfp_mask(file->f_mapping);
mapping_set_gfp_mask(file->f_mapping,
lo->old_gfp_mask & ~(__GFP_IO|__GFP_FS));
-@@ -742,6 +760,8 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -750,6 +768,8 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
* dependency.
*/
fput(old_file);
if (partscan)
loop_reread_partitions(lo, bdev);
return 0;
-@@ -750,6 +770,8 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -758,6 +778,8 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
mutex_unlock(&loop_ctl_mutex);
if (file)
fput(file);
return error;
}
-@@ -973,7 +995,7 @@ static void loop_update_rotational(struct loop_device *lo)
- static int loop_set_fd(struct loop_device *lo, fmode_t mode,
- struct block_device *bdev, unsigned int arg)
+@@ -1084,7 +1106,7 @@ static int loop_configure(struct loop_device *lo, fmode_t mode,
+ struct block_device *bdev,
+ const struct loop_config *config)
{
- struct file *file;
+ struct file *file, *f, *virt_file = NULL;
struct inode *inode;
struct address_space *mapping;
- struct block_device *claimed_bdev = NULL;
-@@ -989,6 +1011,12 @@ static int loop_set_fd(struct loop_device *lo, fmode_t mode,
- file = fget(arg);
+ int error;
+@@ -1099,6 +1121,12 @@ static int loop_configure(struct loop_device *lo, fmode_t mode,
+ file = fget(config->fd);
if (!file)
goto out;
+ f = loop_real_file(file);
/*
* If we don't hold exclusive handle for the device, upgrade to it
-@@ -1079,6 +1079,7 @@ static int loop_configure(struct loop_de
+@@ -1153,6 +1181,7 @@ static int loop_configure(struct loop_device *lo, fmode_t mode,
lo->use_dio = lo->lo_flags & LO_FLAGS_DIRECT_IO;
lo->lo_device = bdev;
lo->lo_backing_file = file;
lo->old_gfp_mask = mapping_gfp_mask(mapping);
mapping_set_gfp_mask(mapping, lo->old_gfp_mask & ~(__GFP_IO|__GFP_FS));
-@@ -1090,6 +1119,8 @@ static int loop_set_fd(struct loop_device *lo, fmode_t mode,
- bd_abort_claiming(bdev, claimed_bdev, loop_set_fd);
+@@ -1203,6 +1232,8 @@ static int loop_configure(struct loop_device *lo, fmode_t mode,
+ bd_abort_claiming(bdev, loop_configure);
out_putf:
fput(file);
+ if (virt_file)
out:
/* This is safe: open() is still holding a reference. */
module_put(THIS_MODULE);
-@@ -1136,6 +1167,7 @@ loop_init_xfer(struct loop_device *lo, struct loop_func_table *xfer,
+@@ -1212,6 +1243,7 @@ static int loop_configure(struct loop_device *lo, fmode_t mode,
static int __loop_clr_fd(struct loop_device *lo, bool release)
{
struct file *filp = NULL;
gfp_t gfp = lo->old_gfp_mask;
struct block_device *bdev = lo->lo_device;
int err = 0;
-@@ -1159,6 +1191,7 @@ static int __loop_clr_fd(struct loop_device *lo, bool release)
+@@ -1235,6 +1267,7 @@ static int __loop_clr_fd(struct loop_device *lo, bool release)
spin_lock_irq(&lo->lo_lock);
lo->lo_backing_file = NULL;
spin_unlock_irq(&lo->lo_lock);
loop_release_xfer(lo);
-@@ -1242,6 +1275,8 @@ static int __loop_clr_fd(struct loop_device *lo, bool release)
+@@ -1317,6 +1350,8 @@ static int __loop_clr_fd(struct loop_device *lo, bool release)
*/
if (filp)
fput(filp);
void *key_data;
diff --git a/fs/aufs/f_op.c b/fs/aufs/f_op.c
-index 6fb4a4ed8cc7f..ba9a959f2db27 100644
+index 5ef279a59bb14..6447c37f98756 100644
--- a/fs/aufs/f_op.c
+++ b/fs/aufs/f_op.c
-@@ -359,7 +359,7 @@ static ssize_t aufs_read_iter(struct kiocb *kio, struct iov_iter *iov_iter)
+@@ -304,7 +304,7 @@ static ssize_t aufs_read_iter(struct kiocb *kio, struct iov_iter *iov_iter)
if (IS_ERR(h_file))
goto out;
/* ---------------------------------------------------------------------- */
diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 916efd7e612b3..68f536f42b2a0 100644
+index 91f3fbe5b57ff..ad1b2e44d538b 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
-@@ -1985,6 +1985,10 @@ struct super_operations {
+@@ -1965,6 +1965,10 @@ struct super_operations {
struct shrink_control *);
long (*free_cached_objects)(struct super_block *,
struct shrink_control *);
RAS_CEC all=y
RAS_CEC_DEBUG all=n
SCHED_MC_PRIO all=y
+SECCOMP_CACHE_DEBUG all=n
STACKPROTECTOR all=y
STACKPROTECTOR_STRONG all=y
STATIC_CALL_SELFTEST all=n
X86_CPA_STATISTICS all=y
X86_DEBUG_FPU all=n
X86_MCELOG_LEGACY all=y
+X86_SGX all=y
X86_SYSFB all=y
XEN_512GB all=y
XEN_DOM0 all=y
XEN_PV all=y
XEN_PVH all=y
XEN_PVHVM all=y
+XEN_PVHVM_GUEST all=y
#-
#- *** FILE: block/Kconfig ***
CFAG12864B i386=m x86_64=m
CFAG12864B_RATE i386=20 x86_64=20
IMG_ASCII_LCD all=y
+LCD2S all=m
PANEL_PARPORT all=0
PANEL_PROFILE all=5
PANEL_CHANGE_MESSAGE all=n
#- *** FILE: drivers/block/Kconfig ***
#-
BLK_DEV all=y
-BLK_DEV_NULL_BLK all=m
+#- file drivers/block/null_blk/Kconfig goes here
BLK_DEV_FD all=m sparc=y
MAC_FLOPPY ppc=m
PARIDE all=m
#-
BLK_DEV_PCIESSD_MTIP32XX all=m
+#-
+#- *** FILE: drivers/block/null_blk/Kconfig ***
+#-
+BLK_DEV_NULL_BLK all=m
+
#-
#- *** FILE: drivers/block/paride/Kconfig ***
#-
#- *** FILE: drivers/block/zram/Kconfig ***
#-
ZRAM all=m
+ZRAM_DEF_COMP_LZORLE all=y
+ZRAM_DEF_COMP_ZSTD all=n
+ZRAM_DEF_COMP_LZ4 all=n
+ZRAM_DEF_COMP_LZO all=n
+ZRAM_DEF_COMP_LZ4HC all=n
+ZRAM_DEF_COMP_842 all=n
ZRAM_WRITEBACK all=y
ZRAM_MEMORY_TRACKING all=y
#-
MHI_BUS all=m
MHI_BUS_DEBUG all=n
+MHI_BUS_PCI_GENERIC all=m
#-
#- *** FILE: drivers/char/Kconfig ***
CRYPTO_DEV_SAFEXCEL all=m
#- file drivers/crypto/hisilicon/Kconfig goes here
#- file drivers/crypto/amlogic/Kconfig goes here
+#- file drivers/crypto/keembay/Kconfig goes here
#-
#- *** FILE: drivers/crypto/amlogic/Kconfig ***
CRYPTO_DEV_QAT_DH895xCC all=m
CRYPTO_DEV_QAT_C3XXX all=m
CRYPTO_DEV_QAT_C62X all=m
+CRYPTO_DEV_QAT_4XXX all=m
CRYPTO_DEV_QAT_DH895xCCVF all=m
CRYPTO_DEV_QAT_C3XXXVF all=m
CRYPTO_DEV_QAT_C62XVF all=m
FSL_DMA ppc=y ppc64=y
INTEL_IDMA64 all=m
INTEL_IDXD all=m
+INTEL_IDXD_SVM all=y
INTEL_IOATDMA i386=m x86_64=m
PCH_DMA all=m
PLX_DMA all=m
EDAC_SKX all=m
EDAC_I10NM all=m
EDAC_PND2 all=m
+EDAC_IGEN6 all=m
EDAC_PASEMI ppc64=m
EDAC_CELL ppc64=m
EDAC_AMD8131 powerpc=m
EXTCON_SM5502 all=m
EXTCON_USB_GPIO all=m
EXTCON_USBC_CROS_EC all=m
+EXTCON_USBC_TUSB320 all=m
#-
#- *** FILE: drivers/firewire/Kconfig ***
#- 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/kmb/Kconfig goes here
DRM_VGEM all=m
DRM_VKMS all=m
#- file drivers/gpu/drm/exynos/Kconfig goes here
#- *** FILE: drivers/gpu/drm/amd/display/Kconfig ***
#-
DRM_AMD_DC all=y
-DRM_AMD_DC_DCN3_0 all=y
DRM_AMD_DC_HDCP all=y
DRM_AMD_DC_SI all=y
DEBUG_KERNEL_DC all=n
#- file drivers/hid/usbhid/Kconfig goes here
#- file drivers/hid/i2c-hid/Kconfig goes here
#- file drivers/hid/intel-ish-hid/Kconfig goes here
+#- file drivers/hid/amd-sfh-hid/Kconfig goes here
+
+#-
+#- *** FILE: drivers/hid/amd-sfh-hid/Kconfig ***
+#-
+AMD_SFH_HID all=m
#-
#- *** FILE: drivers/hid/i2c-hid/Kconfig ***
SENSORS_ASPEED all=m
SENSORS_ATXP1 all=m
SENSORS_CORSAIR_CPRO all=m
+SENSORS_CORSAIR_PSU all=m
SENSORS_DRIVETEMP all=m
SENSORS_DS620 all=m
SENSORS_DS1621 all=m
SENSORS_LTC2947_I2C all=m
SENSORS_LTC2947_SPI all=m
SENSORS_LTC2990 all=m
+SENSORS_LTC2992 all=m
SENSORS_LTC4151 all=m
SENSORS_LTC4215 all=m
SENSORS_LTC4222 all=m
SENSORS_LTC4260 all=m
SENSORS_LTC4261 all=m
SENSORS_MAX1111 all=m
+SENSORS_MAX127 all=m
SENSORS_MAX16065 all=m
SENSORS_MAX1619 all=m
SENSORS_MAX1668 all=m
SENSORS_PCF8591 all=m
#- file drivers/hwmon/pmbus/Kconfig goes here
SENSORS_SL28CPLD all=m
+SENSORS_SBTSI all=m
SENSORS_SHT15 all=m
SENSORS_SHT21 all=m
SENSORS_SHT3x all=m
SENSORS_MAX34440 all=m
SENSORS_MAX8688 all=m
SENSORS_MP2975 all=m
+SENSORS_PM6764TR all=m
SENSORS_PXE1610 all=m
+SENSORS_Q54SJ108A2 all=m
SENSORS_TPS40422 all=m
SENSORS_TPS53679 all=m
SENSORS_UCD9000 all=m
#-
CDNS_I3C_MASTER all=m
DW_I3C_MASTER all=m
+MIPI_I3C_HCI all=m
#-
#- *** FILE: drivers/ide/Kconfig ***
MCP320X all=m
MCP3422 all=m
MCP3911 all=m
+MEDIATEK_MT6360_ADC all=m
MEN_Z188_ADC all=m
MP2629_ADC all=m
NAU7802 all=m
INPUT all=y
INPUT_LEDS all=m
INPUT_FF_MEMLESS all=m
-INPUT_POLLDEV all=m
INPUT_SPARSEKMAP all=m
INPUT_MATRIXKMAP all=m
#- Userland interfaces
INPUT_PWM_BEEPER all=m
INPUT_PWM_VIBRA all=m
INPUT_GPIO_ROTARY_ENCODER all=m
+INPUT_DA7280_HAPTICS all=m
INPUT_DA9052_ONKEY all=m
INPUT_DA9063_ONKEY all=m
INPUT_WM831X_ON all=m
INPUT_TABLET all=y sparc=n
TABLET_USB_ACECAD all=m
TABLET_USB_AIPTEK all=m
-TABLET_USB_GTCO all=m
TABLET_USB_HANWANG all=m
TABLET_USB_KBTAB all=m
TABLET_USB_PEGASUS all=m
INTERCONNECT all=y
#- file drivers/interconnect/imx/Kconfig goes here
#- file drivers/interconnect/qcom/Kconfig goes here
+#- file drivers/interconnect/samsung/Kconfig goes here
#-
#- *** FILE: drivers/iommu/Kconfig ***
LEDS_LM36274 all=m
LEDS_TPS6105X all=m
LEDS_SGM3140 all=m
+#- Flash and Torch LED drivers
+#- file drivers/leds/flash/Kconfig goes here
#- LED Triggers
#- file drivers/leds/trigger/Kconfig goes here
+#-
+#- *** FILE: drivers/leds/flash/Kconfig ***
+#-
+LEDS_RT8515 all=m
+
#-
#- *** FILE: drivers/leds/trigger/Kconfig ***
#-
DM_MULTIPATH_QL all=m
DM_MULTIPATH_ST all=m
DM_MULTIPATH_HST all=m
+DM_MULTIPATH_IOA all=m
DM_DELAY all=m
DM_DUST all=m
DM_UEVENT all=y
VIDEO_IMX290 all=m
VIDEO_IMX319 all=m
VIDEO_IMX355 all=m
+VIDEO_OV02A10 all=m
VIDEO_OV2640 all=m
VIDEO_OV2659 all=m
VIDEO_OV2680 all=m
VIDEO_OV8856 all=m
VIDEO_OV9640 all=m
VIDEO_OV9650 all=m
+VIDEO_OV9734 all=m
VIDEO_OV13858 all=m
VIDEO_VS6624 all=m
VIDEO_MT9M001 all=m
VIDEO_S5K6A3 all=m
VIDEO_S5K4ECGX all=m
VIDEO_S5K5BAF all=m
-#- file drivers/media/i2c/smiapp/Kconfig goes here
+#- file drivers/media/i2c/ccs/Kconfig goes here
#- file drivers/media/i2c/et8ek8/Kconfig goes here
VIDEO_S5C73M3 all=m
VIDEO_AD5820 all=m
VIDEO_LM3560 all=m
VIDEO_LM3646 all=m
+#-
+#- *** FILE: drivers/media/i2c/ccs/Kconfig ***
+#-
+VIDEO_CCS all=m
+
#-
#- *** FILE: drivers/media/i2c/cx25840/Kconfig ***
#-
#-
VIDEO_M5MOLS all=m
-#-
-#- *** FILE: drivers/media/i2c/smiapp/Kconfig ***
-#-
-VIDEO_SMIAPP all=m
-
#-
#- *** FILE: drivers/media/mc/Kconfig ***
#-
MFD_INTEL_LPSS_PCI all=m
MFD_INTEL_MSIC all=y
MFD_INTEL_PMC_BXT all=m
+MFD_INTEL_PMT all=m
MFD_IQS62X all=m
MFD_JANZ_CMODIO all=m
MFD_KEMPLD all=m
MTD_INTEL_VR_NOR all=m
MTD_PLATRAM all=m
+#-
+#- *** FILE: drivers/mtd/nand/Kconfig ***
+#-
+#- file drivers/mtd/nand/onenand/Kconfig goes here
+#- file drivers/mtd/nand/raw/Kconfig goes here
+#- file drivers/mtd/nand/spi/Kconfig goes here
+MTD_NAND_ECC_SW_HAMMING_SMC all=y
+MTD_NAND_ECC_SW_BCH all=y
+
#-
#- *** FILE: drivers/mtd/nand/onenand/Kconfig ***
#-
#-
#- *** FILE: drivers/mtd/nand/raw/Kconfig ***
#-
-MTD_NAND_ECC_SW_HAMMING_SMC all=y
MTD_RAW_NAND all=m
-MTD_NAND_ECC_SW_BCH all=y
#- Raw/parallel NAND flash controllers
MTD_NAND_DENALI all=m
MTD_NAND_DENALI_PCI all=m
#-
MTD_SPI_NOR all=m
MTD_SPI_NOR_USE_4K_SECTORS all=y
+MTD_SPI_NOR_SWP_DISABLE all=n
+MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE all=y
+MTD_SPI_NOR_SWP_KEEP all=n
#- file drivers/mtd/spi-nor/controllers/Kconfig goes here
#-
NLMON all=m
NET_VRF all=m
VSOCKMON all=m
+MHI_NET all=m
#- file drivers/net/arcnet/Kconfig goes here
#- file drivers/atm/Kconfig goes here
#- file drivers/net/caif/Kconfig goes here
#- file drivers/s390/net/Kconfig goes here
#- file drivers/net/usb/Kconfig goes here
#- file drivers/net/wireless/Kconfig goes here
-#- file drivers/net/wimax/Kconfig goes here
#- file drivers/net/wan/Kconfig goes here
#- file drivers/net/ieee802154/Kconfig goes here
XEN_NETDEV_FRONTEND all=m
#- *** FILE: drivers/net/can/m_can/Kconfig ***
#-
CAN_M_CAN all=m
+CAN_M_CAN_PCI all=m
CAN_M_CAN_PLATFORM all=m
CAN_M_CAN_TCAN4X5X all=m
#- file drivers/net/dsa/b53/Kconfig goes here
NET_DSA_BCM_SF2 all=m
NET_DSA_LOOP all=m
+#- file drivers/net/dsa/hirschmann/Kconfig goes here
NET_DSA_LANTIQ_GSWIP all=m
NET_DSA_MT7530 all=m
NET_DSA_MV88E6060 all=m
B53_SRAB_DRIVER all=m
B53_SERDES all=m
+#-
+#- *** FILE: drivers/net/dsa/hirschmann/Kconfig ***
+#-
+NET_DSA_HIRSCHMANN_HELLCREEK all=m
+
#-
#- *** FILE: drivers/net/dsa/microchip/Kconfig ***
#-
USB_VL600 all=m
USB_NET_CH9200 all=m
USB_NET_AQC111 all=m
+USB_RTL8153_ECM all=m
#-
#- *** FILE: drivers/net/wan/Kconfig ***
FARSYNC all=m
DSCC4_PCISYNC all=y
DSCC4_PCI_RST all=y
-DLCI all=m
-DLCI_MAX all=8
-SDLA alpha=m i386=m
LAPBETHER all=m
-X25_ASY all=m
SBNI i386=m x86_64=m
SBNI_MULTILINE i386=y x86_64=y
-#-
-#- *** FILE: drivers/net/wimax/i2400m/Kconfig ***
-#-
-#- Enable USB support to see WiMAX USB drivers
-WIMAX_I2400M_USB all=m
-WIMAX_I2400M_DEBUG_LEVEL all=8
-
#-
#- *** FILE: drivers/net/wireless/Kconfig ***
#-
#- *** FILE: drivers/nfc/s3fwrn5/Kconfig ***
#-
NFC_S3FWRN5_I2C all=m
+NFC_S3FWRN82_UART all=m
#-
#- *** FILE: drivers/nfc/st-nci/Kconfig ***
#- file drivers/phy/cadence/Kconfig goes here
#- file drivers/phy/freescale/Kconfig goes here
#- file drivers/phy/hisilicon/Kconfig goes here
+#- file drivers/phy/ingenic/Kconfig goes here
#- file drivers/phy/lantiq/Kconfig goes here
#- file drivers/phy/marvell/Kconfig goes here
#- file drivers/phy/mediatek/Kconfig goes here
#- file drivers/pinctrl/nuvoton/Kconfig goes here
#- file drivers/pinctrl/pxa/Kconfig goes here
#- file drivers/pinctrl/qcom/Kconfig goes here
+#- file drivers/pinctrl/ralink/Kconfig goes here
#- file drivers/pinctrl/renesas/Kconfig goes here
#- file drivers/pinctrl/samsung/Kconfig goes here
#- file drivers/pinctrl/spear/Kconfig goes here
PINCTRL_BAYTRAIL all=y
PINCTRL_CHERRYVIEW all=m
PINCTRL_LYNXPOINT all=m
+PINCTRL_ALDERLAKE all=m
PINCTRL_BROXTON all=m
PINCTRL_CANNONLAKE all=m
PINCTRL_CEDARFORK all=m
PINCTRL_DENVERTON all=m
+PINCTRL_ELKHARTLAKE all=m
PINCTRL_EMMITSBURG all=m
PINCTRL_GEMINILAKE all=m
PINCTRL_ICELAKE all=m
PINCTRL_JASPERLAKE all=m
+PINCTRL_LAKEFIELD all=m
PINCTRL_LEWISBURG all=m
PINCTRL_SUNRISEPOINT all=m
PINCTRL_TIGERLAKE all=m
MLXREG_HOTPLUG all=m
MLXREG_IO all=m
+#-
+#- *** FILE: drivers/platform/surface/Kconfig ***
+#-
+SURFACE_PLATFORMS all=y
+SURFACE3_WMI all=m
+SURFACE_3_BUTTON all=m
+SURFACE_3_POWER_OPREGION all=m
+SURFACE_GPE all=m
+SURFACE_PRO3_BUTTON all=m
+
#-
#- *** FILE: drivers/platform/x86/Kconfig ***
#-
ACERHDF all=m
ACER_WIRELESS all=m
ACER_WMI all=m
+AMD_PMC all=m
APPLE_GMUX all=m
ASUS_LAPTOP i386=m x86_64=m
ASUS_WIRELESS all=m
DELL_RBU i386=m x86_64=m
DELL_SMO8800 all=m
DELL_WMI all=m
+DELL_WMI_SYSMAN all=m
DELL_WMI_AIO all=m
DELL_WMI_LED all=m
AMILO_RFKILL all=m
INTEL_MENLOW all=m
INTEL_OAKTRAIL all=m
INTEL_VBTN all=m
-SURFACE3_WMI all=m
-SURFACE_3_BUTTON all=m
-SURFACE_3_POWER_OPREGION all=m
-SURFACE_PRO3_BUTTON all=m
MSI_LAPTOP i386=m x86_64=m
MSI_WMI all=m
XO15_EBOOK all=m
INTEL_MID_POWER_BUTTON all=m
INTEL_MRFLD_PWRBTN all=m
INTEL_PMC_CORE all=y
+INTEL_PMT_CLASS all=m
+INTEL_PMT_TELEMETRY all=m
+INTEL_PMT_CRASHLOG all=m
INTEL_PUNIT_IPC all=m
INTEL_SCU_IPC i386=y
INTEL_SCU_PCI all=y
PTP_1588_CLOCK_IDT82P33 all=m
PTP_1588_CLOCK_IDTCM all=m
PTP_1588_CLOCK_VMW all=m
+PTP_1588_CLOCK_OCP all=m
#-
#- *** FILE: drivers/pwm/Kconfig ***
PWM all=y
PWM_DEBUG all=n
PWM_CROS_EC all=m
+PWM_DWC all=m
PWM_IQS620A all=m
PWM_LP3943 all=m
PWM_LPSS all=m
RTC_DRV_MAX6916 all=m
RTC_DRV_R9701 all=m
RTC_DRV_RX4581 all=m
-RTC_DRV_RX6110 all=m
RTC_DRV_RS5C348 all=m
RTC_DRV_MAX6902 all=m
RTC_DRV_PCF2123 all=m
RTC_DRV_PCF2127 all=m
RTC_DRV_RV3029C2 all=m
RTC_DRV_RV3029_HWMON all=y
+RTC_DRV_RX6110 all=m
#- Platform RTC drivers
RTC_DRV_CMOS all=y
RTC_DRV_DS1286 all=m
#- file drivers/staging/board/Kconfig goes here
#- file drivers/staging/gdm724x/Kconfig goes here
#- file drivers/staging/fwserial/Kconfig goes here
-#- file drivers/staging/goldfish/Kconfig goes here
#- file drivers/staging/netlogic/Kconfig goes here
#- file drivers/staging/gs_fpgaboot/Kconfig goes here
#- file drivers/staging/unisys/Kconfig goes here
#- file drivers/staging/vc04_services/Kconfig goes here
#- file drivers/staging/pi433/Kconfig goes here
#- file drivers/staging/mt7621-pci/Kconfig goes here
-#- file drivers/staging/mt7621-pci-phy/Kconfig goes here
-#- file drivers/staging/mt7621-pinctrl/Kconfig goes here
#- file drivers/staging/mt7621-dma/Kconfig goes here
#- file drivers/staging/ralink-gdma/Kconfig goes here
#- file drivers/staging/mt7621-dts/Kconfig goes here
#- file drivers/staging/fieldbus/Kconfig goes here
#- file drivers/staging/kpc2000/Kconfig goes here
#- file drivers/staging/qlge/Kconfig goes here
+#- file drivers/staging/wimax/Kconfig goes here
#- file drivers/staging/wfx/Kconfig goes here
#- file drivers/staging/hikey9xx/Kconfig goes here
#-
LTE_GDM724X all=m
-#-
-#- *** FILE: drivers/staging/goldfish/Kconfig ***
-#-
-GOLDFISH_AUDIO all=m
-
#-
#- *** FILE: drivers/staging/greybus/Kconfig ***
#-
#- file drivers/staging/media/zoran/Kconfig goes here
#- file drivers/staging/media/tegra-video/Kconfig goes here
#- file drivers/staging/media/ipu3/Kconfig goes here
-#- file drivers/staging/media/rkisp1/Kconfig goes here
#-
#- *** FILE: drivers/staging/media/atomisp/Kconfig ***
#-
WFX all=m
+#-
+#- *** FILE: drivers/staging/wimax/Kconfig ***
+#-
+WIMAX all=m
+WIMAX_DEBUG_LEVEL all=8
+#- file drivers/staging/wimax/i2400m/Kconfig goes here
+
+#-
+#- *** FILE: drivers/staging/wimax/i2400m/Kconfig ***
+#-
+#- Enable USB support to see WiMAX USB drivers
+WIMAX_I2400M_USB all=m
+WIMAX_I2400M_DEBUG_LEVEL all=8
+
#-
#- *** FILE: drivers/staging/wlan-ng/Kconfig ***
#-
#-
USB4 all=m
USB4_DEBUGFS_WRITE all=n
+USB4_DMA_TEST all=m
#-
#- *** FILE: drivers/tty/Kconfig ***
CYZ_INTR all=n
MOXA_INTELLIO all=m
MOXA_SMARTIO all=m
-SYNCLINK all=m
-SYNCLINKMP all=m
SYNCLINK_GT all=m
ISI all=m
N_HDLC all=m
SERIAL_SC16IS7XX_I2C all=y
SERIAL_SC16IS7XX_SPI all=y
SERIAL_TIMBERDALE all=m
+SERIAL_BCM63XX all=m
SERIAL_ALTERA_JTAGUART all=m
SERIAL_ALTERA_UART all=m
SERIAL_ALTERA_UART_MAXPORTS all=4
USB_SERIAL_SYMBOL all=m
USB_SERIAL_TI all=m
USB_SERIAL_CYBERJACK all=m
-USB_SERIAL_XIRCOM all=m
USB_SERIAL_OPTION all=m
USB_SERIAL_OMNINET all=m
USB_SERIAL_OPTICON all=m
#-
VDPA all=m
VDPA_SIM all=m
+VDPA_SIM_NET all=m
IFCVF all=m
MLX5_VDPA_NET all=m
CIFS_DEBUG2 all=n
CIFS_DEBUG_DUMP_KEYS all=n
CIFS_DFS_UPCALL all=n
+CIFS_SWN_UPCALL all=y
CIFS_SMB_DIRECT all=y
CIFS_FSCACHE all=y
CMA_SIZE_SEL_MAX all=n
CMA_ALIGNMENT all=8
DMA_API_DEBUG all=n
+DMA_MAP_BENCHMARK all=n
#-
#- *** FILE: kernel/gcov/Kconfig ***
TRACEPOINT_BENCHMARK all=n
RING_BUFFER_BENCHMARK all=m
TRACE_EVAL_MAP_FILE all=n
+FTRACE_RECORD_RECURSION all=n
FTRACE_STARTUP_TEST all=n
RING_BUFFER_STARTUP_TEST all=n
+RING_BUFFER_VALIDATE_TIME_DELTAS all=n
PREEMPTIRQ_DELAY_TEST all=m
SYNTH_EVENT_GEN_TEST all=m
KPROBE_EVENT_GEN_TEST all=m
DEBUG_INFO_DWARF4 all=y
DEBUG_INFO_BTF all=n
GDB_SCRIPTS all=y
-ENABLE_MUST_CHECK all=y
FRAME_WARN all=2048
STRIP_ASM_SYMS all=y
READABLE_ASM all=n
DEBUG_VM_PGTABLE all=n
DEBUG_VIRTUAL all=n
MEMORY_NOTIFIER_ERROR_INJECT all=m
+DEBUG_KMAP_LOCAL_FORCE_MAP all=n
DEBUG_HIGHMEM arm=n i386=n sparc=n
#- file lib/Kconfig.kasan goes here
DEBUG_SHIRQ all=n
HMM_MIRROR all=n
DEVICE_PRIVATE all=y
PERCPU_STATS all=n
-GUP_BENCHMARK all=n
+GUP_TEST all=n
+#- GUP_TEST needs to have DEBUG_FS enabled
READ_ONLY_THP_FOR_FS all=n
#-
WIRELESS all=y
#- file net/wireless/Kconfig goes here
#- file net/mac80211/Kconfig goes here
-#- file net/wimax/Kconfig goes here
#- file net/rfkill/Kconfig goes here
#- file net/9p/Kconfig goes here
#- file net/caif/Kconfig goes here
BATMAN_ADV_DAT all=y
BATMAN_ADV_NC all=y
BATMAN_ADV_MCAST all= all=y
-BATMAN_ADV_DEBUGFS all=y
BATMAN_ADV_DEBUG all=n
-BATMAN_ADV_SYSFS all=y
BATMAN_ADV_TRACING all=n
#-
BRIDGE_IGMP_SNOOPING all=y
BRIDGE_VLAN_FILTERING all=y
BRIDGE_MRP all=y
+BRIDGE_CFM all=y
#-
#- *** FILE: net/bridge/netfilter/Kconfig ***
NET_DSA all=m
NET_DSA_TAG_8021Q all=m
NET_DSA_TAG_AR9331 all=m
+NET_DSA_TAG_HELLCREEK all=m
NET_DSA_TAG_KSZ all=m
NET_DSA_TAG_OCELOT all=m
NET_DSA_TAG_SJA1105 all=m
NFT_DUP_NETDEV all=m
NFT_FWD_NETDEV all=m
NFT_FIB_NETDEV all=m
+NFT_REJECT_NETDEV all=m
NF_FLOW_TABLE_INET all=m
NF_FLOW_TABLE all=m
NETFILTER_XTABLES all=m
VIRTIO_VSOCKETS all=m
HYPERV_VSOCKETS all=m
-#-
-#- *** FILE: net/wimax/Kconfig ***
-#-
-WIMAX all=m
-WIMAX_DEBUG_LEVEL all=8
-
#-
#- *** FILE: net/wireless/Kconfig ***
#-
#- file sound/soc/codecs/Kconfig goes here
#- file sound/soc/generic/Kconfig goes here
+#-
+#- *** FILE: sound/soc/adi/Kconfig ***
+#-
+SND_SOC_ADI all=m
+SND_SOC_ADI_AXI_I2S all=m
+SND_SOC_ADI_AXI_SPDIF all=m
+
#-
#- *** FILE: sound/soc/amd/Kconfig ***
#-
#-
SND_SOC_ALL_CODECS all=m
SND_SOC_AC97_CODEC all=m
+SND_SOC_ADAU1372_I2C all=m
+SND_SOC_ADAU1372_SPI all=m
SND_SOC_ADAU1701 all=m
SND_SOC_ADAU1761_I2C all=m
SND_SOC_ADAU1761_SPI all=m
SND_SOC_PCM3060_SPI all=m
SND_SOC_PCM3168A_I2C all=m
SND_SOC_PCM3168A_SPI all=m
+SND_SOC_PCM5102A all=m
SND_SOC_PCM512x_I2C all=m
SND_SOC_PCM512x_SPI all=m
SND_SOC_RK3328 all=m
SND_SOC_RT715_SDW all=m
SND_SOC_SGTL5000 all=m
SND_SOC_SIMPLE_AMPLIFIER all=m
+SND_SOC_SIMPLE_MUX all=m
SND_SOC_SIRF_AUDIO_CODEC all=m
SND_SOC_SPDIF all=m
SND_SOC_SSM2305 all=m
SND_SOC_MT6351 all=m
SND_SOC_MT6358 all=m
SND_SOC_MT6660 all=m
+SND_SOC_NAU8315 all=m
SND_SOC_NAU8540 all=m
SND_SOC_NAU8810 all=m
SND_SOC_NAU8822 all=m
SND_SOC_NAU8824 all=m
SND_SOC_TPA6130A2 all=m
+SND_SOC_LPASS_WSA_MACRO all=m
+SND_SOC_LPASS_VA_MACRO all=m
#-
#- *** FILE: sound/soc/dwc/Kconfig ***
SND_SOC_FSL_ESAI all=m
SND_SOC_FSL_MICFIL all=m
SND_SOC_FSL_EASRC all=m
+SND_SOC_FSL_XCVR all=m
SND_SOC_IMX_AUDMUX all=m
#- SoC Audio support for Freescale PPC boards:
SND_SOC_MPC5200_I2S all=m
SND_SOC_SOF_TIGERLAKE_SUPPORT all=y
SND_SOC_SOF_ELKHARTLAKE_SUPPORT all=y
SND_SOC_SOF_JASPERLAKE_SUPPORT all=y
+SND_SOC_SOF_ALDERLAKE_SUPPORT all=y
SND_SOC_SOF_HDA_LINK all=y
SND_SOC_SOF_HDA_AUDIO_CODEC all=y
SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 all=y
BACKLIGHT_LCD_SUPPORT all=y
BACKLIGHT_OT200 all=m
BACKLIGHT_PM8941_WLED all=m
+BATMAN_ADV_DEBUGFS all=y
+BATMAN_ADV_SYSFS all=y
BCACHE_ASYNC_REGISTRAION all=y
BLK_DEV_SGIIOC4 ia64=m
BLK_DEV_SR_VENDOR all=y
DEFAULT_NOOP all=n
DEFAULT_SECURITY all=""
DEVICE_PUBLIC all=y
+DLCI all=m
+DLCI_MAX all=8
DRM_AMD_DC_DCN1_0 all=y
DRM_AMD_DC_DCN2_0 all=y
DRM_AMD_DC_DCN2_1 all=y
+DRM_AMD_DC_DCN3_0 all=y
DRM_AMD_DC_DSC_SUPPORT all=y
DRM_I915_ALPHA_SUPPORT all=n
DRM_TINYDRM all=m
DSCC4 all=m sparc=n
EARLY_PRINTK_EFI all=n
EFI_RTC ia64=y
+ENABLE_MUST_CHECK all=y
EROFS_FAULT_INJECTION all=n
EROFS_FS_IO_MAX_RETRIES all=5
EROFS_FS_USE_VM_MAP_RAM all=y
GIGASET_DEBUG all=n
GIGASET_M101 all=m
GIGASET_M105 all=m
+GOLDFISH_AUDIO all=m
GPIO_LYNXPOINT all=y
+GUP_BENCHMARK all=n
HEADERS_CHECK all=y
HEADER_TEST all=n
HOTPLUG_PCI_SGI ia64=m
INPUT_GP2A all=m
INPUT_KXTJ9_POLLED_MODE all=y
INPUT_MSM_VIBRATOR all=m
+INPUT_POLLDEV all=m
INTEL_MIC_BUS all=m
INTEL_MIC_CARD all=m
INTEL_MIC_HOST all=m
SCSI_OSD_DPRINT_SENSE all=1
SCSI_OSD_INITIATOR all=m
SCSI_OSD_ULD all=m
+SDLA alpha=m i386=m
SECURITY_APPARMOR_BOOTPARAM_VALUE=1
SECURITY_SELINUX_BOOTPARAM_VALUE all=0
SENSORS_ADS1015 all=m
STAGING_EXFAT_DISCARD all=y
STAGING_EXFAT_FS all=m
STAGING_EXFAT_KERNEL_DEBUG all=n
+SYNCLINK all=m
+SYNCLINKMP all=m
+TABLET_USB_GTCO all=m
TEST_BITFIELD all=m
THUNDERBOLT all=m
THUNDERBOLT_NET all=m
USB_OTG_BLACKLIST_HUB all=n
USB_OTG_WHITELIST all=y
USB_RIO500 all=m
+USB_SERIAL_XIRCOM all=m
USB_SWITCH_FSA9480 all=m
USB_WHCI_HCD all=m
USB_WUSB all=m
VIDEO_SECO_RC all=y
VIDEO_SH_MOBILE_CEU all=m
VIDEO_SH_VEU all=m
+VIDEO_SMIAPP all=m
VIDEO_USBVISION all=m
VIRTIO_BLK_SCSI all=y
VOP all=m
VOP_BUS all=m
+X25_ASY all=m
XEN_SELFBALLOONING all=y
ZSMALLOC_PGTABLE_MAPPING all=n