From: Greg Kroah-Hartman Date: Mon, 11 Feb 2019 13:44:41 +0000 (+0100) Subject: 4.20-stable patches X-Git-Tag: v4.9.156~17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f3c04e398b512bd9eacdc68b331bd7b45ff44b1c;p=thirdparty%2Fkernel%2Fstable-queue.git 4.20-stable patches added patches: cacheinfo-keep-the-old-value-if-of_property_read_u32-fails.patch nfsd-fix-error-return-values-for-nfsd4_clone_file_range.patch --- diff --git a/queue-4.20/cacheinfo-keep-the-old-value-if-of_property_read_u32-fails.patch b/queue-4.20/cacheinfo-keep-the-old-value-if-of_property_read_u32-fails.patch new file mode 100644 index 00000000000..d0593943e4b --- /dev/null +++ b/queue-4.20/cacheinfo-keep-the-old-value-if-of_property_read_u32-fails.patch @@ -0,0 +1,47 @@ +From 3a34c986324c07dde32903f7bb262e6138e77c2a Mon Sep 17 00:00:00 2001 +From: Huacai Chen +Date: Wed, 19 Dec 2018 16:16:03 +0800 +Subject: cacheinfo: Keep the old value if of_property_read_u32 fails + +From: Huacai Chen + +commit 3a34c986324c07dde32903f7bb262e6138e77c2a upstream. + +Commit 448a5a552f336bd7b847b1951 ("drivers: base: cacheinfo: use OF +property_read_u32 instead of get_property,read_number") makes cache +size and number_of_sets be 0 if DT doesn't provide there values. I +think this is unreasonable so make them keep the old values, which is +the same as old kernels. + +Fixes: 448a5a552f33 ("drivers: base: cacheinfo: use OF property_read_u32 instead of get_property,read_number") +Cc: stable@vger.kernel.org +Signed-off-by: Huacai Chen +Reviewed-by: Sudeep Holla +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/base/cacheinfo.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +--- a/drivers/base/cacheinfo.c ++++ b/drivers/base/cacheinfo.c +@@ -79,8 +79,7 @@ static void cache_size(struct cacheinfo + ct_idx = get_cacheinfo_idx(this_leaf->type); + propname = cache_type_info[ct_idx].size_prop; + +- if (of_property_read_u32(np, propname, &this_leaf->size)) +- this_leaf->size = 0; ++ of_property_read_u32(np, propname, &this_leaf->size); + } + + /* not cache_line_size() because that's a macro in include/linux/cache.h */ +@@ -114,8 +113,7 @@ static void cache_nr_sets(struct cachein + ct_idx = get_cacheinfo_idx(this_leaf->type); + propname = cache_type_info[ct_idx].nr_sets_prop; + +- if (of_property_read_u32(np, propname, &this_leaf->number_of_sets)) +- this_leaf->number_of_sets = 0; ++ of_property_read_u32(np, propname, &this_leaf->number_of_sets); + } + + static void cache_associativity(struct cacheinfo *this_leaf) diff --git a/queue-4.20/nfsd-fix-error-return-values-for-nfsd4_clone_file_range.patch b/queue-4.20/nfsd-fix-error-return-values-for-nfsd4_clone_file_range.patch new file mode 100644 index 00000000000..539dff10512 --- /dev/null +++ b/queue-4.20/nfsd-fix-error-return-values-for-nfsd4_clone_file_range.patch @@ -0,0 +1,39 @@ +From e3fdc89ca47ef34dfb6fd5101fec084c3dba5486 Mon Sep 17 00:00:00 2001 +From: Trond Myklebust +Date: Mon, 21 Jan 2019 15:58:38 -0500 +Subject: nfsd: Fix error return values for nfsd4_clone_file_range() + +From: Trond Myklebust + +commit e3fdc89ca47ef34dfb6fd5101fec084c3dba5486 upstream. + +If the parameter 'count' is non-zero, nfsd4_clone_file_range() will +currently clobber all errors returned by vfs_clone_file_range() and +replace them with EINVAL. + +Fixes: 42ec3d4c0218 ("vfs: make remap_file_range functions take and...") +Signed-off-by: Trond Myklebust +Cc: stable@vger.kernel.org # v4.20+ +Signed-off-by: J. Bruce Fields +Signed-off-by: Greg Kroah-Hartman + +--- + fs/nfsd/vfs.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/fs/nfsd/vfs.c ++++ b/fs/nfsd/vfs.c +@@ -544,9 +544,11 @@ __be32 nfsd4_clone_file_range(struct fil + loff_t cloned; + + cloned = vfs_clone_file_range(src, src_pos, dst, dst_pos, count, 0); ++ if (cloned < 0) ++ return nfserrno(cloned); + if (count && cloned != count) +- cloned = -EINVAL; +- return nfserrno(cloned < 0 ? cloned : 0); ++ return nfserrno(-EINVAL); ++ return 0; + } + + ssize_t nfsd_copy_file_range(struct file *src, u64 src_pos, struct file *dst, diff --git a/queue-4.20/series b/queue-4.20/series index 69d039aa770..5cb3824aac8 100644 --- a/queue-4.20/series +++ b/queue-4.20/series @@ -348,3 +348,5 @@ perf-tests-evsel-tp-sched-fix-bitwise-operator.patch serial-fix-race-between-flush_to_ldisc-and-tty_open.patch serial-8250_pci-make-pci-class-test-non-fatal.patch serial-sh-sci-do-not-free-irqs-that-have-already-been-freed.patch +cacheinfo-keep-the-old-value-if-of_property_read_u32-fails.patch +nfsd-fix-error-return-values-for-nfsd4_clone_file_range.patch