diff options
| author | Dave Airlie <airlied@redhat.com> | 2022-07-13 10:54:56 +1000 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2022-07-13 10:54:56 +1000 |
| commit | e23a5e14aa278858c2e3d81ec34e83aa9a4177c5 (patch) | |
| tree | 8b662fca8f0643d2b7ef0836da91835408075208 /arch/s390/kernel/crash_dump.c | |
| parent | 5e4cb0afe21e4e744ed808de1169a62ab35a57f5 (diff) | |
| parent | 32346491ddf24599decca06190ebca03ff9de7f8 (diff) | |
Backmerge tag 'v5.19-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into drm-next
Backmerge in rc6 so I can merge msm next easier.
Linux 5.19-rc6
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'arch/s390/kernel/crash_dump.c')
| -rw-r--r-- | arch/s390/kernel/crash_dump.c | 10 |
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; } /* |