From: Palmer Dabbelt <palmerdabb...@google.com> This is exactly the same as the arm64 code, which I just into lib/ to avoid copying it into the RISC-V port. This builds with defconfig.
Signed-off-by: Palmer Dabbelt <palmerdabb...@google.com> --- arch/arm64/Kconfig | 1 + arch/arm64/kernel/crash_dump.c | 39 ---------------------------------- 2 files changed, 1 insertion(+), 39 deletions(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 66dc41fd49f2..55b27d56b163 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -1109,6 +1109,7 @@ comment "Support for PE file signature verification disabled" config CRASH_DUMP bool "Build kdump crash kernel" + select GENERIC_LIB_COPY_OLDMEM_PAGE help Generate crash dump after being started by kexec. This should be normally only set in special crash dump kernels which are diff --git a/arch/arm64/kernel/crash_dump.c b/arch/arm64/kernel/crash_dump.c index e6e284265f19..197b92c249ba 100644 --- a/arch/arm64/kernel/crash_dump.c +++ b/arch/arm64/kernel/crash_dump.c @@ -13,45 +13,6 @@ #include <linux/uaccess.h> #include <asm/memory.h> -/** - * copy_oldmem_page() - copy one page from old kernel memory - * @pfn: page frame number to be copied - * @buf: buffer where the copied page is placed - * @csize: number of bytes to copy - * @offset: offset in bytes into the page - * @userbuf: if set, @buf is in a user address space - * - * This function copies one page from old kernel memory into buffer pointed by - * @buf. If @buf is in userspace, set @userbuf to %1. Returns number of bytes - * copied or negative error in case of failure. - */ -ssize_t copy_oldmem_page(unsigned long pfn, char *buf, - size_t csize, unsigned long offset, - int userbuf) -{ - void *vaddr; - - if (!csize) - return 0; - - vaddr = memremap(__pfn_to_phys(pfn), PAGE_SIZE, MEMREMAP_WB); - if (!vaddr) - return -ENOMEM; - - if (userbuf) { - if (copy_to_user((char __user *)buf, vaddr + offset, csize)) { - memunmap(vaddr); - return -EFAULT; - } - } else { - memcpy(buf, vaddr + offset, csize); - } - - memunmap(vaddr); - - return csize; -} - /** * elfcorehdr_read - read from ELF core header * @buf: buffer where the data is placed -- 2.27.0.383.g050319c2ae-goog