Forum | Documentation | Website | Blog

Skip to content
Snippets Groups Projects
Commit 056ca295 authored by Robert Nelson's avatar Robert Nelson
Browse files
parent e672c7d7
Branches
Tags
No related merge requests found
Showing
with 338 additions and 12902 deletions
...@@ -113,7 +113,7 @@ aufs () { ...@@ -113,7 +113,7 @@ aufs () {
aufs_prefix="aufs5-" aufs_prefix="aufs5-"
#regenerate="enable" #regenerate="enable"
if [ "x${regenerate}" = "xenable" ] ; then if [ "x${regenerate}" = "xenable" ] ; then
KERNEL_REL=5.14 KERNEL_REL=5.16
wget https://raw.githubusercontent.com/sfjro/${aufs_prefix}standalone/aufs${KERNEL_REL}/${aufs_prefix}kbuild.patch wget https://raw.githubusercontent.com/sfjro/${aufs_prefix}standalone/aufs${KERNEL_REL}/${aufs_prefix}kbuild.patch
patch -p1 < ${aufs_prefix}kbuild.patch || aufs_fail patch -p1 < ${aufs_prefix}kbuild.patch || aufs_fail
rm -rf ${aufs_prefix}kbuild.patch rm -rf ${aufs_prefix}kbuild.patch
...@@ -154,7 +154,7 @@ aufs () { ...@@ -154,7 +154,7 @@ aufs () {
cd - cd -
fi fi
cd ./KERNEL/ cd ./KERNEL/
KERNEL_REL=5.14 KERNEL_REL=5.16
cp -v ../${aufs_prefix}standalone/Documentation/ABI/testing/*aufs ./Documentation/ABI/testing/ cp -v ../${aufs_prefix}standalone/Documentation/ABI/testing/*aufs ./Documentation/ABI/testing/
mkdir -p ./Documentation/filesystems/aufs/ mkdir -p ./Documentation/filesystems/aufs/
...@@ -165,12 +165,19 @@ aufs () { ...@@ -165,12 +165,19 @@ aufs () {
${git_bin} add . ${git_bin} add .
${git_bin} commit -a -m 'merge: aufs' -m "https://github.com/sfjro/${aufs_prefix}standalone/commit/${aufs_hash}" -s ${git_bin} commit -a -m 'merge: aufs' -m "https://github.com/sfjro/${aufs_prefix}standalone/commit/${aufs_hash}" -s
${git_bin} format-patch -5 -o ../patches/aufs/
wget https://raw.githubusercontent.com/sfjro/${aufs_prefix}standalone/aufs${KERNEL_REL}/rt.patch
patch -p1 < rt.patch || aufs_fail
rm -rf rt.patch
${git_bin} add .
${git_bin} commit -a -m 'merge: aufs-rt' -s
${git_bin} format-patch -6 -o ../patches/aufs/
echo "AUFS: https://github.com/sfjro/${aufs_prefix}standalone/commit/${aufs_hash}" > ../patches/git/AUFS echo "AUFS: https://github.com/sfjro/${aufs_prefix}standalone/commit/${aufs_hash}" > ../patches/git/AUFS
rm -rf ../${aufs_prefix}standalone/ || true rm -rf ../${aufs_prefix}standalone/ || true
${git_bin} reset --hard HEAD~5 ${git_bin} reset --hard HEAD~6
start_cleanup start_cleanup
...@@ -179,9 +186,10 @@ aufs () { ...@@ -179,9 +186,10 @@ aufs () {
${git} "${DIR}/patches/aufs/0003-merge-aufs-mmap.patch" ${git} "${DIR}/patches/aufs/0003-merge-aufs-mmap.patch"
${git} "${DIR}/patches/aufs/0004-merge-aufs-standalone.patch" ${git} "${DIR}/patches/aufs/0004-merge-aufs-standalone.patch"
${git} "${DIR}/patches/aufs/0005-merge-aufs.patch" ${git} "${DIR}/patches/aufs/0005-merge-aufs.patch"
${git} "${DIR}/patches/aufs/0006-merge-aufs-rt.patch"
wdir="aufs" wdir="aufs"
number=5 number=6
cleanup cleanup
fi fi
...@@ -442,6 +450,7 @@ beagleboard_dtbs () { ...@@ -442,6 +450,7 @@ beagleboard_dtbs () {
device="am335x-bone-uboot-univ.dtb" ; dtb_makefile_append device="am335x-bone-uboot-univ.dtb" ; dtb_makefile_append
device="am335x-boneblack-uboot-univ.dtb" ; dtb_makefile_append device="am335x-boneblack-uboot-univ.dtb" ; dtb_makefile_append
device="am335x-bonegreen-wireless-uboot-univ.dtb" ; dtb_makefile_append
${git_bin} add -f arch/arm/boot/dts/ ${git_bin} add -f arch/arm/boot/dts/
${git_bin} add -f include/dt-bindings/ ${git_bin} add -f include/dt-bindings/
......
From de11f62218c9ffb120925e633deedf832f61d546 Mon Sep 17 00:00:00 2001 From b054fb0bcb73960c9f800a4708803df83ffa5993 Mon Sep 17 00:00:00 2001
From: Robert Nelson <robertcnelson@gmail.com> From: Robert Nelson <robertcnelson@gmail.com>
Date: Tue, 7 Sep 2021 19:51:42 -0500 Date: Tue, 7 Dec 2021 18:55:51 -0600
Subject: [PATCH 1/5] merge: aufs-kbuild Subject: [PATCH 1/6] merge: aufs-kbuild
Signed-off-by: Robert Nelson <robertcnelson@gmail.com> Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
--- ---
...@@ -10,10 +10,10 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com> ...@@ -10,10 +10,10 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
2 files changed, 2 insertions(+) 2 files changed, 2 insertions(+)
diff --git a/fs/Kconfig b/fs/Kconfig diff --git a/fs/Kconfig b/fs/Kconfig
index a7749c126b8e..12fd57d4aa57 100644 index a6313a969bc5..aca4b89d41a1 100644
--- a/fs/Kconfig --- a/fs/Kconfig
+++ b/fs/Kconfig +++ b/fs/Kconfig
@@ -307,6 +307,7 @@ source "fs/sysv/Kconfig" @@ -312,6 +312,7 @@ source "fs/sysv/Kconfig"
source "fs/ufs/Kconfig" source "fs/ufs/Kconfig"
source "fs/erofs/Kconfig" source "fs/erofs/Kconfig"
source "fs/vboxsf/Kconfig" source "fs/vboxsf/Kconfig"
...@@ -22,10 +22,10 @@ index a7749c126b8e..12fd57d4aa57 100644 ...@@ -22,10 +22,10 @@ index a7749c126b8e..12fd57d4aa57 100644
endif # MISC_FILESYSTEMS endif # MISC_FILESYSTEMS
diff --git a/fs/Makefile b/fs/Makefile diff --git a/fs/Makefile b/fs/Makefile
index f98f3e691c37..5e9aaa284700 100644 index 84c5e4cdfee5..b4fcdad8412e 100644
--- a/fs/Makefile --- a/fs/Makefile
+++ b/fs/Makefile +++ b/fs/Makefile
@@ -135,3 +135,4 @@ obj-$(CONFIG_EFIVAR_FS) += efivarfs/ @@ -138,3 +138,4 @@ obj-$(CONFIG_EFIVAR_FS) += efivarfs/
obj-$(CONFIG_EROFS_FS) += erofs/ obj-$(CONFIG_EROFS_FS) += erofs/
obj-$(CONFIG_VBOXSF_FS) += vboxsf/ obj-$(CONFIG_VBOXSF_FS) += vboxsf/
obj-$(CONFIG_ZONEFS_FS) += zonefs/ obj-$(CONFIG_ZONEFS_FS) += zonefs/
......
From fd1e93e957c4edc0dd7acfde2fe4e59c935d198c Mon Sep 17 00:00:00 2001 From 939ca297ec73208d6c0d6ce6cb6291e5fa2b7afb Mon Sep 17 00:00:00 2001
From: Robert Nelson <robertcnelson@gmail.com> From: Robert Nelson <robertcnelson@gmail.com>
Date: Tue, 7 Sep 2021 19:51:43 -0500 Date: Tue, 7 Dec 2021 18:55:52 -0600
Subject: [PATCH 2/5] merge: aufs-base Subject: [PATCH 2/6] merge: aufs-base
Signed-off-by: Robert Nelson <robertcnelson@gmail.com> Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
--- ---
...@@ -9,7 +9,6 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com> ...@@ -9,7 +9,6 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
drivers/block/loop.c | 18 ++++++++++++++++++ drivers/block/loop.c | 18 ++++++++++++++++++
fs/dcache.c | 2 +- fs/dcache.c | 2 +-
fs/fcntl.c | 4 +++- fs/fcntl.c | 4 +++-
fs/inode.c | 2 +-
fs/namespace.c | 6 ++++++ fs/namespace.c | 6 ++++++
fs/splice.c | 10 +++++----- fs/splice.c | 10 +++++-----
fs/sync.c | 2 +- fs/sync.c | 2 +-
...@@ -18,13 +17,13 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com> ...@@ -18,13 +17,13 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
include/linux/mnt_namespace.h | 3 +++ include/linux/mnt_namespace.h | 3 +++
include/linux/splice.h | 6 ++++++ include/linux/splice.h | 6 ++++++
kernel/locking/lockdep.c | 3 ++- kernel/locking/lockdep.c | 3 ++-
13 files changed, 65 insertions(+), 10 deletions(-) 12 files changed, 64 insertions(+), 9 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS diff --git a/MAINTAINERS b/MAINTAINERS
index d7b4f32875a9..6c2369610803 100644 index 3b79fd441dde..3fb0a57f61b0 100644
--- a/MAINTAINERS --- a/MAINTAINERS
+++ b/MAINTAINERS +++ b/MAINTAINERS
@@ -3089,6 +3089,19 @@ F: include/uapi/linux/audit.h @@ -3122,6 +3122,19 @@ F: include/uapi/linux/audit.h
F: kernel/audit* F: kernel/audit*
F: lib/*audit.c F: lib/*audit.c
...@@ -45,10 +44,10 @@ index d7b4f32875a9..6c2369610803 100644 ...@@ -45,10 +44,10 @@ index d7b4f32875a9..6c2369610803 100644
M: Miguel Ojeda <ojeda@kernel.org> M: Miguel Ojeda <ojeda@kernel.org>
S: Maintained S: Maintained
diff --git a/drivers/block/loop.c b/drivers/block/loop.c diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index f0cdff0c5fbf..e65f941a4181 100644 index dfc72a1f6500..c9d1ef703673 100644
--- a/drivers/block/loop.c --- a/drivers/block/loop.c
+++ b/drivers/block/loop.c +++ b/drivers/block/loop.c
@@ -810,6 +810,24 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev, @@ -798,6 +798,24 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
return error; return error;
} }
...@@ -87,7 +86,7 @@ index cf871a81f4fd..bc5095b734f5 100644 ...@@ -87,7 +86,7 @@ index cf871a81f4fd..bc5095b734f5 100644
{ {
struct dentry *this_parent; struct dentry *this_parent;
diff --git a/fs/fcntl.c b/fs/fcntl.c diff --git a/fs/fcntl.c b/fs/fcntl.c
index f946bec8f1f1..a44da05bcb9a 100644 index 9c6c6a3e2de5..02382fa9bd34 100644
--- a/fs/fcntl.c --- a/fs/fcntl.c
+++ b/fs/fcntl.c +++ b/fs/fcntl.c
@@ -33,7 +33,7 @@ @@ -33,7 +33,7 @@
...@@ -108,24 +107,11 @@ index f946bec8f1f1..a44da05bcb9a 100644 ...@@ -108,24 +107,11 @@ index f946bec8f1f1..a44da05bcb9a 100644
if (error) if (error)
return error; return error;
diff --git a/fs/inode.c b/fs/inode.c
index c93500d84264..f24d21236ad0 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -1778,7 +1778,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.
*/
-static int update_time(struct inode *inode, struct timespec64 *time, int flags)
+int update_time(struct inode *inode, struct timespec64 *time, int flags)
{
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 diff --git a/fs/namespace.c b/fs/namespace.c
index 97adcb5ab5d5..4f543907c820 100644 index 659a8f39c61a..128367073782 100644
--- a/fs/namespace.c --- a/fs/namespace.c
+++ b/fs/namespace.c +++ b/fs/namespace.c
@@ -807,6 +807,12 @@ static inline int check_mnt(struct mount *mnt) @@ -808,6 +808,12 @@ static inline int check_mnt(struct mount *mnt)
return mnt->mnt_ns == current->nsproxy->mnt_ns; return mnt->mnt_ns == current->nsproxy->mnt_ns;
} }
...@@ -180,10 +166,10 @@ index 1373a610dc78..b7b5a0a0df6f 100644 ...@@ -180,10 +166,10 @@ index 1373a610dc78..b7b5a0a0df6f 100644
if (wait) if (wait)
sync_inodes_sb(sb); sync_inodes_sb(sb);
diff --git a/include/linux/fs.h b/include/linux/fs.h diff --git a/include/linux/fs.h b/include/linux/fs.h
index 640574294216..ffeed3ccd2d6 100644 index 56eba723477e..e60d8ad85400 100644
--- a/include/linux/fs.h --- a/include/linux/fs.h
+++ b/include/linux/fs.h +++ b/include/linux/fs.h
@@ -1335,6 +1335,7 @@ extern void fasync_free(struct fasync_struct *); @@ -1381,6 +1381,7 @@ extern void fasync_free(struct fasync_struct *);
/* can be called from interrupts */ /* can be called from interrupts */
extern void kill_fasync(struct fasync_struct **, int, int); extern void kill_fasync(struct fasync_struct **, int, int);
...@@ -191,7 +177,7 @@ index 640574294216..ffeed3ccd2d6 100644 ...@@ -191,7 +177,7 @@ index 640574294216..ffeed3ccd2d6 100644
extern void __f_setown(struct file *filp, struct pid *, enum pid_type, int force); 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 int f_setown(struct file *filp, unsigned long arg, int force);
extern void f_delown(struct file *filp); extern void f_delown(struct file *filp);
@@ -2043,6 +2044,7 @@ struct file_operations { @@ -2092,6 +2093,7 @@ struct file_operations {
ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int); 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); unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
int (*check_flags)(int); int (*check_flags)(int);
...@@ -199,7 +185,7 @@ index 640574294216..ffeed3ccd2d6 100644 ...@@ -199,7 +185,7 @@ index 640574294216..ffeed3ccd2d6 100644
int (*flock) (struct file *, int, struct file_lock *); 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_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); ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
@@ -2564,6 +2566,7 @@ extern int current_umask(void); @@ -2615,6 +2617,7 @@ extern int current_umask(void);
extern void ihold(struct inode * inode); extern void ihold(struct inode * inode);
extern void iput(struct inode *); extern void iput(struct inode *);
extern int generic_update_time(struct inode *, struct timespec64 *, int); extern int generic_update_time(struct inode *, struct timespec64 *, int);
...@@ -207,7 +193,7 @@ index 640574294216..ffeed3ccd2d6 100644 ...@@ -207,7 +193,7 @@ index 640574294216..ffeed3ccd2d6 100644
/* /sys/fs */ /* /sys/fs */
extern struct kobject *fs_kobj; extern struct kobject *fs_kobj;
@@ -2810,6 +2813,7 @@ static inline bool sb_is_blkdev_sb(struct super_block *sb) @@ -2778,6 +2781,7 @@ static inline bool sb_is_blkdev_sb(struct super_block *sb)
} }
void emergency_thaw_all(void); void emergency_thaw_all(void);
...@@ -216,7 +202,7 @@ index 640574294216..ffeed3ccd2d6 100644 ...@@ -216,7 +202,7 @@ index 640574294216..ffeed3ccd2d6 100644
extern const struct file_operations def_blk_fops; extern const struct file_operations def_blk_fops;
extern const struct file_operations def_chr_fops; extern const struct file_operations def_chr_fops;
diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
index 5cf387813754..59b65e1a9e85 100644 index 9fe165beb0f9..e47f7e15eeaf 100644
--- a/include/linux/lockdep.h --- a/include/linux/lockdep.h
+++ b/include/linux/lockdep.h +++ b/include/linux/lockdep.h
@@ -248,6 +248,8 @@ static inline int lockdep_match_key(struct lockdep_map *lock, @@ -248,6 +248,8 @@ static inline int lockdep_match_key(struct lockdep_map *lock,
...@@ -264,7 +250,7 @@ index a55179fd60fc..8e21c53cf883 100644 ...@@ -264,7 +250,7 @@ index a55179fd60fc..8e21c53cf883 100644
+ unsigned int flags); + unsigned int flags);
#endif #endif
diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
index bf1c00c881e4..e0aaf34974df 100644 index d624231eab2b..eff2ca26e6c5 100644
--- a/kernel/locking/lockdep.c --- a/kernel/locking/lockdep.c
+++ b/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c
@@ -189,7 +189,7 @@ static @@ -189,7 +189,7 @@ static
......
From 94247fd160ced8d7a371a0515becbc5b42ce9b30 Mon Sep 17 00:00:00 2001 From 9f963b09c6f29f6f96d254ed98865a8ee667424b Mon Sep 17 00:00:00 2001
From: Robert Nelson <robertcnelson@gmail.com> From: Robert Nelson <robertcnelson@gmail.com>
Date: Tue, 7 Sep 2021 19:51:43 -0500 Date: Tue, 7 Dec 2021 18:55:53 -0600
Subject: [PATCH 3/5] merge: aufs-mmap Subject: [PATCH 3/6] merge: aufs-mmap
Signed-off-by: Robert Nelson <robertcnelson@gmail.com> Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
--- ---
...@@ -21,10 +21,10 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com> ...@@ -21,10 +21,10 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
create mode 100644 mm/prfile.c create mode 100644 mm/prfile.c
diff --git a/fs/proc/base.c b/fs/proc/base.c diff --git a/fs/proc/base.c b/fs/proc/base.c
index e5b5f7709d48..4394d8c1bdad 100644 index 1f394095eb88..93f2479ef319 100644
--- a/fs/proc/base.c --- a/fs/proc/base.c
+++ b/fs/proc/base.c +++ b/fs/proc/base.c
@@ -2183,7 +2183,7 @@ static int map_files_get_link(struct dentry *dentry, struct path *path) @@ -2189,7 +2189,7 @@ static int map_files_get_link(struct dentry *dentry, struct path *path)
rc = -ENOENT; rc = -ENOENT;
vma = find_exact_vma(mm, vm_start, vm_end); vma = find_exact_vma(mm, vm_start, vm_end);
if (vma && vma->vm_file) { if (vma && vma->vm_file) {
...@@ -50,7 +50,7 @@ index 13452b32e2bd..38acccfef9d4 100644 ...@@ -50,7 +50,7 @@ index 13452b32e2bd..38acccfef9d4 100644
ino = inode->i_ino; ino = inode->i_ino;
} }
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index eb97468dfe4c..570f1003a7dc 100644 index cf25be3e0321..70af1c25ffa2 100644
--- a/fs/proc/task_mmu.c --- a/fs/proc/task_mmu.c
+++ b/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) @@ -280,7 +280,10 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
...@@ -65,7 +65,7 @@ index eb97468dfe4c..570f1003a7dc 100644 ...@@ -65,7 +65,7 @@ index eb97468dfe4c..570f1003a7dc 100644
dev = inode->i_sb->s_dev; dev = inode->i_sb->s_dev;
ino = inode->i_ino; ino = inode->i_ino;
pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT; pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
@@ -1866,7 +1869,7 @@ static int show_numa_map(struct seq_file *m, void *v) @@ -1865,7 +1868,7 @@ static int show_numa_map(struct seq_file *m, void *v)
struct proc_maps_private *proc_priv = &numa_priv->proc_maps; struct proc_maps_private *proc_priv = &numa_priv->proc_maps;
struct vm_area_struct *vma = v; struct vm_area_struct *vma = v;
struct numa_maps *md = &numa_priv->md; struct numa_maps *md = &numa_priv->md;
...@@ -91,10 +91,10 @@ index a6d21fc0033c..02c2de31196e 100644 ...@@ -91,10 +91,10 @@ index a6d21fc0033c..02c2de31196e 100644
ino = inode->i_ino; ino = inode->i_ino;
pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT; pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT;
diff --git a/include/linux/mm.h b/include/linux/mm.h diff --git a/include/linux/mm.h b/include/linux/mm.h
index 7ca22e6e694a..c7c40fd7f65a 100644 index 73a52aba448f..5dd42acf0707 100644
--- a/include/linux/mm.h --- a/include/linux/mm.h
+++ b/include/linux/mm.h +++ b/include/linux/mm.h
@@ -1805,6 +1805,28 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping, @@ -1806,6 +1806,28 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,
unmap_mapping_range(mapping, holebegin, holelen, 0); unmap_mapping_range(mapping, holebegin, holelen, 0);
} }
...@@ -124,10 +124,10 @@ index 7ca22e6e694a..c7c40fd7f65a 100644 ...@@ -124,10 +124,10 @@ index 7ca22e6e694a..c7c40fd7f65a 100644
void *buf, int len, unsigned int gup_flags); void *buf, int len, unsigned int gup_flags);
extern int access_remote_vm(struct mm_struct *mm, unsigned long addr, 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 diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index 52bbd2b7cb46..aeb888d44805 100644 index 7f8ee09c711f..3a9a798a4ae1 100644
--- a/include/linux/mm_types.h --- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h +++ b/include/linux/mm_types.h
@@ -286,6 +286,7 @@ struct vm_region { @@ -294,6 +294,7 @@ struct vm_region {
unsigned long vm_top; /* region allocated to here */ unsigned long vm_top; /* region allocated to here */
unsigned long vm_pgoff; /* the offset in vm_file corresponding to vm_start */ unsigned long vm_pgoff; /* the offset in vm_file corresponding to vm_start */
struct file *vm_file; /* the backing file or NULL */ struct file *vm_file; /* the backing file or NULL */
...@@ -135,7 +135,7 @@ index 52bbd2b7cb46..aeb888d44805 100644 ...@@ -135,7 +135,7 @@ index 52bbd2b7cb46..aeb888d44805 100644
int vm_usage; /* region usage count (access under nommu_region_sem) */ int vm_usage; /* region usage count (access under nommu_region_sem) */
bool vm_icache_flushed : 1; /* true if the icache has been flushed for bool vm_icache_flushed : 1; /* true if the icache has been flushed for
@@ -365,6 +366,7 @@ struct vm_area_struct { @@ -373,6 +374,7 @@ struct vm_area_struct {
unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE
units */ units */
struct file * vm_file; /* File we map to (can be NULL). */ struct file * vm_file; /* File we map to (can be NULL). */
...@@ -144,20 +144,20 @@ index 52bbd2b7cb46..aeb888d44805 100644 ...@@ -144,20 +144,20 @@ index 52bbd2b7cb46..aeb888d44805 100644
#ifdef CONFIG_SWAP #ifdef CONFIG_SWAP
diff --git a/kernel/fork.c b/kernel/fork.c diff --git a/kernel/fork.c b/kernel/fork.c
index 44f4c2d83763..dc1b528f962c 100644 index 10885c649ca4..f3a9cd12011b 100644
--- a/kernel/fork.c --- a/kernel/fork.c
+++ b/kernel/fork.c +++ b/kernel/fork.c
@@ -559,7 +559,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, @@ -573,7 +573,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
struct inode *inode = file_inode(file); if (file) {
struct address_space *mapping = file->f_mapping; struct address_space *mapping = file->f_mapping;
- get_file(file); - get_file(file);
+ vma_get_file(tmp); + vma_get_file(tmp);
if (tmp->vm_flags & VM_DENYWRITE)
put_write_access(inode);
i_mmap_lock_write(mapping); i_mmap_lock_write(mapping);
if (tmp->vm_flags & VM_SHARED)
mapping_allow_writable(mapping);
diff --git a/mm/Makefile b/mm/Makefile diff --git a/mm/Makefile b/mm/Makefile
index e3436741d539..0d1dc7789d64 100644 index fc60a40ce954..c715b0138237 100644
--- a/mm/Makefile --- a/mm/Makefile
+++ b/mm/Makefile +++ b/mm/Makefile
@@ -52,7 +52,7 @@ obj-y := filemap.o mempool.o oom_kill.o fadvise.o \ @@ -52,7 +52,7 @@ obj-y := filemap.o mempool.o oom_kill.o fadvise.o \
...@@ -170,10 +170,10 @@ index e3436741d539..0d1dc7789d64 100644 ...@@ -170,10 +170,10 @@ index e3436741d539..0d1dc7789d64 100644
# Give 'page_alloc' its own module-parameter namespace # Give 'page_alloc' its own module-parameter namespace
page-alloc-y := page_alloc.o page-alloc-y := page_alloc.o
diff --git a/mm/filemap.c b/mm/filemap.c diff --git a/mm/filemap.c b/mm/filemap.c
index d1458ecf2f51..6ab6b7d72466 100644 index 82a17c35eb96..348e22067abd 100644
--- a/mm/filemap.c --- a/mm/filemap.c
+++ b/mm/filemap.c +++ b/mm/filemap.c
@@ -3240,7 +3240,7 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf) @@ -3349,7 +3349,7 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
vm_fault_t ret = VM_FAULT_LOCKED; vm_fault_t ret = VM_FAULT_LOCKED;
sb_start_pagefault(mapping->host->i_sb); sb_start_pagefault(mapping->host->i_sb);
...@@ -183,10 +183,10 @@ index d1458ecf2f51..6ab6b7d72466 100644 ...@@ -183,10 +183,10 @@ index d1458ecf2f51..6ab6b7d72466 100644
if (page->mapping != mapping) { if (page->mapping != mapping) {
unlock_page(page); unlock_page(page);
diff --git a/mm/mmap.c b/mm/mmap.c diff --git a/mm/mmap.c b/mm/mmap.c
index ca54d36d203a..43a69a77914f 100644 index 88dcc5c25225..6c276614ca96 100644
--- a/mm/mmap.c --- a/mm/mmap.c
+++ b/mm/mmap.c +++ b/mm/mmap.c
@@ -185,7 +185,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma) @@ -183,7 +183,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
if (vma->vm_ops && vma->vm_ops->close) if (vma->vm_ops && vma->vm_ops->close)
vma->vm_ops->close(vma); vma->vm_ops->close(vma);
if (vma->vm_file) if (vma->vm_file)
...@@ -195,7 +195,7 @@ index ca54d36d203a..43a69a77914f 100644 ...@@ -195,7 +195,7 @@ index ca54d36d203a..43a69a77914f 100644
mpol_put(vma_policy(vma)); mpol_put(vma_policy(vma));
vm_area_free(vma); vm_area_free(vma);
return next; return next;
@@ -955,7 +955,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, @@ -952,7 +952,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
if (remove_next) { if (remove_next) {
if (file) { if (file) {
uprobe_munmap(next, next->vm_start, next->vm_end); uprobe_munmap(next, next->vm_start, next->vm_end);
...@@ -204,7 +204,7 @@ index ca54d36d203a..43a69a77914f 100644 ...@@ -204,7 +204,7 @@ index ca54d36d203a..43a69a77914f 100644
} }
if (next->anon_vma) if (next->anon_vma)
anon_vma_merge(vma, next); anon_vma_merge(vma, next);
@@ -1898,7 +1898,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr, @@ -1873,7 +1873,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
return addr; return addr;
unmap_and_free_vma: unmap_and_free_vma:
...@@ -213,7 +213,7 @@ index ca54d36d203a..43a69a77914f 100644 ...@@ -213,7 +213,7 @@ index ca54d36d203a..43a69a77914f 100644
vma->vm_file = NULL; vma->vm_file = NULL;
/* Undo any partial mapping done by a device driver. */ /* Undo any partial mapping done by a device driver. */
@@ -2758,7 +2758,7 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma, @@ -2731,7 +2731,7 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
goto out_free_mpol; goto out_free_mpol;
if (new->vm_file) if (new->vm_file)
...@@ -222,7 +222,7 @@ index ca54d36d203a..43a69a77914f 100644 ...@@ -222,7 +222,7 @@ index ca54d36d203a..43a69a77914f 100644
if (new->vm_ops && new->vm_ops->open) if (new->vm_ops && new->vm_ops->open)
new->vm_ops->open(new); new->vm_ops->open(new);
@@ -2777,7 +2777,7 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma, @@ -2750,7 +2750,7 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
if (new->vm_ops && new->vm_ops->close) if (new->vm_ops && new->vm_ops->close)
new->vm_ops->close(new); new->vm_ops->close(new);
if (new->vm_file) if (new->vm_file)
...@@ -231,7 +231,7 @@ index ca54d36d203a..43a69a77914f 100644 ...@@ -231,7 +231,7 @@ index ca54d36d203a..43a69a77914f 100644
unlink_anon_vmas(new); unlink_anon_vmas(new);
out_free_mpol: out_free_mpol:
mpol_put(vma_policy(new)); mpol_put(vma_policy(new));
@@ -2972,7 +2972,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size, @@ -2945,7 +2945,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
struct vm_area_struct *vma; struct vm_area_struct *vma;
unsigned long populate = 0; unsigned long populate = 0;
unsigned long ret = -EINVAL; unsigned long ret = -EINVAL;
...@@ -240,7 +240,7 @@ index ca54d36d203a..43a69a77914f 100644 ...@@ -240,7 +240,7 @@ index ca54d36d203a..43a69a77914f 100644
pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/vm/remap_file_pages.rst.\n", pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/vm/remap_file_pages.rst.\n",
current->comm, current->pid); current->comm, current->pid);
@@ -3031,10 +3031,27 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size, @@ -3001,10 +3001,27 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
if (vma->vm_flags & VM_LOCKED) if (vma->vm_flags & VM_LOCKED)
flags |= MAP_LOCKED; flags |= MAP_LOCKED;
...@@ -269,7 +269,7 @@ index ca54d36d203a..43a69a77914f 100644 ...@@ -269,7 +269,7 @@ index ca54d36d203a..43a69a77914f 100644
out: out:
mmap_write_unlock(mm); mmap_write_unlock(mm);
if (populate) if (populate)
@@ -3315,7 +3332,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap, @@ -3285,7 +3302,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
if (anon_vma_clone(new_vma, vma)) if (anon_vma_clone(new_vma, vma))
goto out_free_mempol; goto out_free_mempol;
if (new_vma->vm_file) if (new_vma->vm_file)
...@@ -279,7 +279,7 @@ index ca54d36d203a..43a69a77914f 100644 ...@@ -279,7 +279,7 @@ index ca54d36d203a..43a69a77914f 100644
new_vma->vm_ops->open(new_vma); new_vma->vm_ops->open(new_vma);
vma_link(mm, new_vma, prev, rb_link, rb_parent); vma_link(mm, new_vma, prev, rb_link, rb_parent);
diff --git a/mm/nommu.c b/mm/nommu.c diff --git a/mm/nommu.c b/mm/nommu.c
index 3a93d4054810..501a874fedcb 100644 index 02d2427b8f9e..a7419302ab4e 100644
--- a/mm/nommu.c --- a/mm/nommu.c
+++ b/mm/nommu.c +++ b/mm/nommu.c
@@ -523,7 +523,7 @@ static void __put_nommu_region(struct vm_region *region) @@ -523,7 +523,7 @@ static void __put_nommu_region(struct vm_region *region)
...@@ -300,7 +300,7 @@ index 3a93d4054810..501a874fedcb 100644 ...@@ -300,7 +300,7 @@ index 3a93d4054810..501a874fedcb 100644
put_nommu_region(vma->vm_region); put_nommu_region(vma->vm_region);
vm_area_free(vma); vm_area_free(vma);
} }
@@ -1178,7 +1178,7 @@ unsigned long do_mmap(struct file *file, @@ -1175,7 +1175,7 @@ unsigned long do_mmap(struct file *file,
goto error_just_free; goto error_just_free;
} }
} }
...@@ -309,7 +309,7 @@ index 3a93d4054810..501a874fedcb 100644 ...@@ -309,7 +309,7 @@ index 3a93d4054810..501a874fedcb 100644
kmem_cache_free(vm_region_jar, region); kmem_cache_free(vm_region_jar, region);
region = pregion; region = pregion;
result = start; result = start;
@@ -1255,10 +1255,10 @@ unsigned long do_mmap(struct file *file, @@ -1252,10 +1252,10 @@ unsigned long do_mmap(struct file *file,
up_write(&nommu_region_sem); up_write(&nommu_region_sem);
error: error:
if (region->vm_file) if (region->vm_file)
......
From 53e4cead539121b4500290934c76ab24532d2c70 Mon Sep 17 00:00:00 2001 From e692487023d95676033236c49210a34961e69a3a Mon Sep 17 00:00:00 2001
From: Robert Nelson <robertcnelson@gmail.com> From: Robert Nelson <robertcnelson@gmail.com>
Date: Tue, 7 Sep 2021 19:51:44 -0500 Date: Tue, 7 Dec 2021 18:55:53 -0600
Subject: [PATCH 4/5] merge: aufs-standalone Subject: [PATCH 4/6] merge: aufs-standalone
Signed-off-by: Robert Nelson <robertcnelson@gmail.com> Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
--- ---
...@@ -9,7 +9,6 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com> ...@@ -9,7 +9,6 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
fs/exec.c | 1 + fs/exec.c | 1 +
fs/fcntl.c | 1 + fs/fcntl.c | 1 +
fs/file_table.c | 2 ++ fs/file_table.c | 2 ++
fs/inode.c | 1 +
fs/namespace.c | 3 +++ fs/namespace.c | 3 +++
fs/notify/group.c | 1 + fs/notify/group.c | 1 +
fs/open.c | 1 + fs/open.c | 1 +
...@@ -20,7 +19,7 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com> ...@@ -20,7 +19,7 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
kernel/locking/lockdep.c | 1 + kernel/locking/lockdep.c | 1 +
kernel/task_work.c | 1 + kernel/task_work.c | 1 +
security/security.c | 8 ++++++++ security/security.c | 8 ++++++++
15 files changed, 28 insertions(+) 14 files changed, 27 insertions(+)
diff --git a/fs/dcache.c b/fs/dcache.c diff --git a/fs/dcache.c b/fs/dcache.c
index bc5095b734f5..9508bd57a3bc 100644 index bc5095b734f5..9508bd57a3bc 100644
...@@ -43,7 +42,7 @@ index bc5095b734f5..9508bd57a3bc 100644 ...@@ -43,7 +42,7 @@ index bc5095b734f5..9508bd57a3bc 100644
/** /**
* d_ancestor - search for an ancestor * d_ancestor - search for an ancestor
diff --git a/fs/exec.c b/fs/exec.c diff --git a/fs/exec.c b/fs/exec.c
index 38f63451b928..7710637ed0bc 100644 index ac7b51b51f38..52a8be4ebc1e 100644
--- a/fs/exec.c --- a/fs/exec.c
+++ b/fs/exec.c +++ b/fs/exec.c
@@ -111,6 +111,7 @@ bool path_noexec(const struct path *path) @@ -111,6 +111,7 @@ bool path_noexec(const struct path *path)
...@@ -55,7 +54,7 @@ index 38f63451b928..7710637ed0bc 100644 ...@@ -55,7 +54,7 @@ index 38f63451b928..7710637ed0bc 100644
#ifdef CONFIG_USELIB #ifdef CONFIG_USELIB
/* /*
diff --git a/fs/fcntl.c b/fs/fcntl.c diff --git a/fs/fcntl.c b/fs/fcntl.c
index a44da05bcb9a..a9cf3ad53292 100644 index 02382fa9bd34..3418c60b9014 100644
--- a/fs/fcntl.c --- a/fs/fcntl.c
+++ b/fs/fcntl.c +++ b/fs/fcntl.c
@@ -86,6 +86,7 @@ int setfl(int fd, struct file *filp, unsigned long arg) @@ -86,6 +86,7 @@ int setfl(int fd, struct file *filp, unsigned long arg)
...@@ -86,23 +85,11 @@ index 45437f8e1003..786af52904fc 100644 ...@@ -86,23 +85,11 @@ index 45437f8e1003..786af52904fc 100644
void __init files_init(void) void __init files_init(void)
{ {
diff --git a/fs/inode.c b/fs/inode.c
index f24d21236ad0..78de5b5dc084 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -1784,6 +1784,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);
}
+EXPORT_SYMBOL_GPL(update_time);
/**
* atime_needs_update - update the access time
diff --git a/fs/namespace.c b/fs/namespace.c diff --git a/fs/namespace.c b/fs/namespace.c
index 4f543907c820..74d756a79cb7 100644 index 128367073782..db9936562011 100644
--- a/fs/namespace.c --- a/fs/namespace.c
+++ b/fs/namespace.c +++ b/fs/namespace.c
@@ -438,6 +438,7 @@ void __mnt_drop_write(struct vfsmount *mnt) @@ -439,6 +439,7 @@ void __mnt_drop_write(struct vfsmount *mnt)
mnt_dec_writers(real_mount(mnt)); mnt_dec_writers(real_mount(mnt));
preempt_enable(); preempt_enable();
} }
...@@ -110,7 +97,7 @@ index 4f543907c820..74d756a79cb7 100644 ...@@ -110,7 +97,7 @@ index 4f543907c820..74d756a79cb7 100644
/** /**
* mnt_drop_write - give up write access to a mount * mnt_drop_write - give up write access to a mount
@@ -812,6 +813,7 @@ int is_current_mnt_ns(struct vfsmount *mnt) @@ -813,6 +814,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
{ {
return check_mnt(real_mount(mnt)); return check_mnt(real_mount(mnt));
} }
...@@ -118,7 +105,7 @@ index 4f543907c820..74d756a79cb7 100644 ...@@ -118,7 +105,7 @@ index 4f543907c820..74d756a79cb7 100644
/* /*
* vfsmount lock must be held for write * vfsmount lock must be held for write
@@ -2018,6 +2020,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg, @@ -2011,6 +2013,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
} }
return 0; return 0;
} }
...@@ -139,7 +126,7 @@ index fb89c351295d..460ad19c2570 100644 ...@@ -139,7 +126,7 @@ index fb89c351295d..460ad19c2570 100644
/* /*
* Drop a reference to a group. Free it if it's through. * Drop a reference to a group. Free it if it's through.
diff --git a/fs/open.c b/fs/open.c diff --git a/fs/open.c b/fs/open.c
index 94bef26ff1b6..33412587d76d 100644 index e0df1536eb69..81b2d7c83add 100644
--- a/fs/open.c --- a/fs/open.c
+++ b/fs/open.c +++ b/fs/open.c
@@ -65,6 +65,7 @@ int do_truncate(struct user_namespace *mnt_userns, struct dentry *dentry, @@ -65,6 +65,7 @@ int do_truncate(struct user_namespace *mnt_userns, struct dentry *dentry,
...@@ -151,10 +138,10 @@ index 94bef26ff1b6..33412587d76d 100644 ...@@ -151,10 +138,10 @@ index 94bef26ff1b6..33412587d76d 100644
long vfs_truncate(const struct path *path, loff_t length) long vfs_truncate(const struct path *path, loff_t length)
{ {
diff --git a/fs/read_write.c b/fs/read_write.c diff --git a/fs/read_write.c b/fs/read_write.c
index 9db7adf160d2..8dc93a57a933 100644 index af057c57bdc6..76017f8331fb 100644
--- a/fs/read_write.c --- a/fs/read_write.c
+++ b/fs/read_write.c +++ b/fs/read_write.c
@@ -503,6 +503,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos) @@ -492,6 +492,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
inc_syscr(current); inc_syscr(current);
return ret; return ret;
} }
...@@ -162,7 +149,7 @@ index 9db7adf160d2..8dc93a57a933 100644 ...@@ -162,7 +149,7 @@ index 9db7adf160d2..8dc93a57a933 100644
static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos) static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
{ {
@@ -613,6 +614,7 @@ ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_ @@ -602,6 +603,7 @@ ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_
file_end_write(file); file_end_write(file);
return ret; return ret;
} }
...@@ -215,7 +202,7 @@ index 5c8c5175b385..ff7e9ff774b7 100644 ...@@ -215,7 +202,7 @@ index 5c8c5175b385..ff7e9ff774b7 100644
ssize_t ssize_t
__vfs_getxattr(struct dentry *dentry, struct inode *inode, const char *name, __vfs_getxattr(struct dentry *dentry, struct inode *inode, const char *name,
diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
index e0aaf34974df..d7b737731d4e 100644 index eff2ca26e6c5..0627584f7872 100644
--- a/kernel/locking/lockdep.c --- a/kernel/locking/lockdep.c
+++ b/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c
@@ -210,6 +210,7 @@ inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock) @@ -210,6 +210,7 @@ inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock)
...@@ -236,7 +223,7 @@ index 1698fbe6f0e1..081b05acadf8 100644 ...@@ -236,7 +223,7 @@ index 1698fbe6f0e1..081b05acadf8 100644
} }
+EXPORT_SYMBOL_GPL(task_work_run); +EXPORT_SYMBOL_GPL(task_work_run);
diff --git a/security/security.c b/security/security.c diff --git a/security/security.c b/security/security.c
index 9ffa9e9c5c55..83b533a3fb8e 100644 index 67264cb08fb3..0d78065d71fe 100644
--- a/security/security.c --- a/security/security.c
+++ b/security/security.c +++ b/security/security.c
@@ -1147,6 +1147,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry) @@ -1147,6 +1147,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry)
......
This diff is collapsed.
From f42db1bf9f9751db91a5a7b8e0128f2a7d18bcc7 Mon Sep 17 00:00:00 2001
From: Robert Nelson <robertcnelson@gmail.com>
Date: Tue, 7 Dec 2021 18:55:55 -0600
Subject: [PATCH 6/6] merge: aufs-rt
Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
---
fs/aufs/i_op.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/fs/aufs/i_op.c b/fs/aufs/i_op.c
index bfce27d451f1..4accad3d8b26 100644
--- a/fs/aufs/i_op.c
+++ b/fs/aufs/i_op.c
@@ -637,7 +637,11 @@ int au_pin_hdir_relock(struct au_pin *p)
static void au_pin_hdir_set_owner(struct au_pin *p, struct task_struct *task)
{
+#if IS_ENABLED(CONFIG_PREEMPT_RT)
+ p->hdir->hi_inode->i_rwsem.rtmutex.owner = task;
+#else
atomic_long_set(&p->hdir->hi_inode->i_rwsem.owner, (long)task);
+#endif
}
void au_pin_hdir_acquire_nest(struct au_pin *p)
--
2.30.2
From b24578d1b4af965fcedddc1ee4fd882ce942d746 Mon Sep 17 00:00:00 2001 From 92e14343a4c5c36d3789993cfd34b29521e62882 Mon Sep 17 00:00:00 2001
From: Robert Nelson <robertcnelson@gmail.com> From: Robert Nelson <robertcnelson@gmail.com>
Date: Tue, 7 Dec 2021 13:28:26 -0600 Date: Tue, 7 Dec 2021 19:15:40 -0600
Subject: [PATCH] merge: bcfserial: https://github.com/statropy/bcfserial Subject: [PATCH] merge: bcfserial: https://github.com/statropy/bcfserial
https://github.com/statropy/bcfserial/commit/aded88429a8a00143596b41f4c1f50d9ae3d4069 https://github.com/statropy/bcfserial/commit/aded88429a8a00143596b41f4c1f50d9ae3d4069
......
This diff is collapsed.
This diff is collapsed.
From 9f90c2d3a78758115c072f2aa2fbf05b7e3dd5da Mon Sep 17 00:00:00 2001
From: Wright Feng <wright.feng@cypress.com>
Date: Tue, 20 Jun 2017 05:11:24 -0500
Subject: [PATCH 001/138] brcmfmac: set F2 blocksize and watermark for 4373
Set F2 blocksize to 256 bytes for 4373. It fixes DMA error while having
UDP bi-directional traffic.
Signed-off-by: Wright Feng <wright.feng@cypress.com>
Signed-off-by: Chi-hsien Lin <chi-hsien.lin@cypress.com>
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
index fc12598..b646002 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
@@ -43,6 +43,7 @@
#define SDIO_FUNC1_BLOCKSIZE 64
#define SDIO_FUNC2_BLOCKSIZE 512
+#define SDIO_4373_FUNC2_BLOCKSIZE 256
/* Maximum milliseconds to wait for F2 to come up */
#define SDIO_WAIT_F2RDY 3000
@@ -903,6 +904,7 @@ static void brcmf_sdiod_host_fixup(struct mmc_host *host)
static int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev)
{
int ret = 0;
+ unsigned int f2_blksz = SDIO_FUNC2_BLOCKSIZE;
sdio_claim_host(sdiodev->func1);
@@ -912,11 +914,17 @@ static int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev)
sdio_release_host(sdiodev->func1);
goto out;
}
- ret = sdio_set_block_size(sdiodev->func2, SDIO_FUNC2_BLOCKSIZE);
+
+ if (sdiodev->func2->device == SDIO_DEVICE_ID_CYPRESS_4373)
+ f2_blksz = SDIO_4373_FUNC2_BLOCKSIZE;
+
+ ret = sdio_set_block_size(sdiodev->func2, f2_blksz);
if (ret) {
brcmf_err("Failed to set F2 blocksize\n");
sdio_release_host(sdiodev->func1);
goto out;
+ } else {
+ brcmf_dbg(SDIO, "set F2 blocksize to %d\n", f2_blksz);
}
/* increase F2 timeout */
--
1.9.1
From e3159988b054f43ccdd477ea1b360581f68b4064 Mon Sep 17 00:00:00 2001
From: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
Date: Tue, 15 Aug 2017 00:25:14 -0500
Subject: [PATCH 002/138] non-upstream: add sg parameters dts parsing
broken_sg_support, sd_head_align, and sd_sgentry_align are used in
brcmfmac code but not configurable in dts file. Add the parsing logic.
Now they can be configured like below in dts:
brcm,broken_sg_support;
brcm,sd_head_align = /bits/ 16 <4>;
brcm,sd_sgentry_align = /bits/ 16 <4>;
Signed-off-by: Chi-hsien Lin <chi-hsien.lin@cypress.com>
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
index b886b56..e4f3493 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
@@ -20,7 +20,8 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
struct property *prop;
int irq;
u32 irqf;
- u32 val;
+ u32 val32;
+ u16 val16;
/* Set board-type to the first string of the machine compatible prop */
root = of_find_node_by_path("/");
@@ -34,8 +35,15 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
!of_device_is_compatible(np, "brcm,bcm4329-fmac"))
return;
- if (of_property_read_u32(np, "brcm,drive-strength", &val) == 0)
- sdio->drive_strength = val;
+ if (of_property_read_u32(np, "brcm,drive-strength", &val32) == 0)
+ sdio->drive_strength = val32;
+
+ sdio->broken_sg_support = of_property_read_bool(np,
+ "brcm,broken_sg_support");
+ if (of_property_read_u16(np, "brcm,sd_head_align", &val16) == 0)
+ sdio->sd_head_align = val16;
+ if (of_property_read_u16(np, "brcm,sd_sgentry_align", &val16) == 0)
+ sdio->sd_sgentry_align = val16;
/* make sure there are interrupts defined in the node */
if (!of_find_property(np, "interrupts", NULL))
--
1.9.1
From bb367a9d3e8f735270a98bb6dd35524576e2fe5d Mon Sep 17 00:00:00 2001
From: Wright Feng <wright.feng@cypress.com>
Date: Mon, 11 Sep 2017 02:48:57 -0500
Subject: [PATCH 003/138] brcmfmac: set apsta to 0 when AP starts on primary
interface
APSTA can work on two band concurrently with using VSDB(Virtual
Simultaneous Dual-Band) or RSDB(Real Simultaneous Dual-Band) features.
In this case, we have to keep apsta is 1 in firmware side.
If we start wpa_supplicant on wlan0 and then start hostapd on wlan1, the
apsta will be set to 0, and data will be stall on wlan0(station).
Because that, we only set apsta to 0 when AP start on primary interface.
Signed-off-by: Wright Feng <wright.feng@cypress.com>
Signed-off-by: Chi-hsien Lin <chi-hsien.lin@cypress.com>
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index e3ebb7a..7d2855a 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -4584,9 +4584,7 @@ s32 brcmf_vif_clear_mgmt_ies(struct brcmf_cfg80211_vif *vif)
}
}
- if ((dev_role == NL80211_IFTYPE_AP) &&
- ((ifp->ifidx == 0) ||
- !brcmf_feat_is_enabled(ifp, BRCMF_FEAT_RSDB))) {
+ if (dev_role == NL80211_IFTYPE_AP && ifp->ifidx == 0) {
err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_DOWN, 1);
if (err < 0) {
bphy_err(drvr, "BRCMF_C_DOWN error %d\n",
--
1.9.1
This diff is collapsed.
From bb0a9d219769a0d7e2661c73366b99c1094b3dd0 Mon Sep 17 00:00:00 2001
From: Double Lo <dblo@cypress.com>
Date: Tue, 13 Mar 2018 03:22:20 -0500
Subject: [PATCH 007/138] non-upstream: remove WOWL configuration in disconnect
state
Set wowl configuration in disconnect state is redundant.
Remove it to fix no scan result issue after resume.
Signed-off-by: Double Lo <dblo@cypress.com>
Signed-off-by: Chi-hsien Lin <chi-hsien.lin@cypress.com>
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index 3815f14..d34448d 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -3753,7 +3753,8 @@ static s32 brcmf_cfg80211_suspend(struct wiphy *wiphy,
if (test_bit(BRCMF_SCAN_STATUS_BUSY, &cfg->scan_status))
brcmf_abort_scanning(cfg);
- if (wowl == NULL) {
+ if (!wowl || !test_bit(BRCMF_VIF_STATUS_CONNECTED,
+ &ifp->vif->sme_state)) {
brcmf_bus_wowl_config(cfg->pub->bus_if, false);
list_for_each_entry(vif, &cfg->vif_list, list) {
if (!test_bit(BRCMF_VIF_STATUS_READY, &vif->sme_state))
--
1.9.1
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment