summaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/crash_dump.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2022-07-18 10:36:11 -0300
committerArnaldo Carvalho de Melo <acme@redhat.com>2022-07-18 10:36:11 -0300
commit0698461ad2984892a47582a58eb235488d3aac7f (patch)
tree107cfefee20b50f79cde3ed847f075bdbf50fad0 /arch/s390/kernel/crash_dump.c
parent0d2997f750d1de394231bc22768dab94a5b5db2f (diff)
parentff6992735ade75aae3e35d16b17da1008d753d28 (diff)
downloadlinux-stable-0698461ad2984892a47582a58eb235488d3aac7f.tar.gz
linux-stable-0698461ad2984892a47582a58eb235488d3aac7f.tar.bz2
linux-stable-0698461ad2984892a47582a58eb235488d3aac7f.zip
Merge remote-tracking branch 'torvalds/master' into perf/core
To update the perf/core codebase. Fix conflict by moving arch__post_evsel_config(evsel, attr) to the end of evsel__config(), after what was added in: 49c692b7dfc9b6c0 ("perf offcpu: Accept allowed sample types only") Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'arch/s390/kernel/crash_dump.c')
-rw-r--r--arch/s390/kernel/crash_dump.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/s390/kernel/crash_dump.c b/arch/s390/kernel/crash_dump.c
index a2c1c55daec0..28124d0fa1d5 100644
--- a/arch/s390/kernel/crash_dump.c
+++ b/arch/s390/kernel/crash_dump.c
@@ -219,6 +219,11 @@ ssize_t copy_oldmem_page(struct iov_iter *iter, unsigned long pfn, size_t csize,
unsigned long src;
int rc;
+ if (!(iter_is_iovec(iter) || iov_iter_is_kvec(iter)))
+ return -EINVAL;
+ /* Multi-segment iterators are not supported */
+ if (iter->nr_segs > 1)
+ return -EINVAL;
if (!csize)
return 0;
src = pfn_to_phys(pfn) + offset;
@@ -228,7 +233,10 @@ ssize_t copy_oldmem_page(struct iov_iter *iter, unsigned long pfn, size_t csize,
rc = copy_oldmem_user(iter->iov->iov_base, src, csize);
else
rc = copy_oldmem_kernel(iter->kvec->iov_base, src, csize);
- return rc;
+ if (rc < 0)
+ return rc;
+ iov_iter_advance(iter, csize);
+ return csize;
}
/*