crash_dump.c 446 B

1234567891011121314151617181920212223
  1. // SPDX-License-Identifier: GPL-2.0
  2. #include <linux/crash_dump.h>
  3. #include <linux/io.h>
  4. #include <linux/uio.h>
  5. ssize_t copy_oldmem_page(struct iov_iter *iter, unsigned long pfn,
  6. size_t csize, unsigned long offset)
  7. {
  8. void *vaddr;
  9. if (!csize)
  10. return 0;
  11. vaddr = memremap(__pfn_to_phys(pfn), PAGE_SIZE, MEMREMAP_WB);
  12. if (!vaddr)
  13. return -ENOMEM;
  14. csize = copy_to_iter(vaddr + offset, csize, iter);
  15. memunmap(vaddr);
  16. return csize;
  17. }