s390/crash: support multi-segment iterators
authorAlexander Gordeev <agordeev@linux.ibm.com>
Tue, 19 Jul 2022 05:16:36 +0000 (07:16 +0200)
committerAlexander Gordeev <agordeev@linux.ibm.com>
Wed, 20 Jul 2022 15:21:41 +0000 (17:21 +0200)
commitebbc9570169147740aa39aee1d61b4cc5a631644
tree6e20330871a3413057779aed54ebf806b526a681
parent6d2e5a4a13da2e91a46a37cd00d23dba8613ad7b
s390/crash: support multi-segment iterators

Make it possible to handle not only single-, but also multi-
segment iterators in copy_oldmem_iter() callback. Change the
semantics of called functions to match the iterator model -
instead of an error code the exact number of bytes copied is
returned.

The swap page used to copy data to user space is adopted for
kernel space too. That does not bring any performance impact.

Suggested-by: Matthew Wilcox <willy@infradead.org>
Fixes: cc02e6e21aa5 ("s390/crash: add missing iterator advance in copy_oldmem_page()")
Acked-by: Heiko Carstens <hca@linux.ibm.com>
Tested-by: Alexander Egorenkov <egorenar@linux.ibm.com>
Link: https://lore.kernel.org/r/5af6da3a0bffe48a90b0b7139ecf6a818b2d18e8.1658206891.git.agordeev@linux.ibm.com
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
arch/s390/include/asm/os_info.h
arch/s390/include/asm/sclp.h
arch/s390/kernel/crash_dump.c
drivers/s390/char/zcore.c