]> www.infradead.org Git - linux-platform-drivers-x86.git/commitdiff
arm64: kdump: update ppos when reading elfcorehdr
authorPavel Tatashin <pasha.tatashin@soleen.com>
Fri, 19 Mar 2021 20:50:54 +0000 (16:50 -0400)
committerWill Deacon <will@kernel.org>
Mon, 22 Mar 2021 12:46:38 +0000 (12:46 +0000)
The ppos points to a position in the old kernel memory (and in case of
arm64 in the crash kernel since elfcorehdr is passed as a segment). The
function should update the ppos by the amount that was read. This bug is
not exposed by accident, but other platforms update this value properly.
So, fix it in ARM64 version of elfcorehdr_read() as well.

Signed-off-by: Pavel Tatashin <pasha.tatashin@soleen.com>
Fixes: e62aaeac426a ("arm64: kdump: provide /proc/vmcore file")
Reviewed-by: Tyler Hicks <tyhicks@linux.microsoft.com>
Link: https://lore.kernel.org/r/20210319205054.743368-1-pasha.tatashin@soleen.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/crash_dump.c

index e6e284265f19d1f7e5ffb3f9c2249f1b69f39f53..58303a9ec32c4f4a58ff6726fa9de90092d7bf30 100644 (file)
@@ -64,5 +64,7 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
 ssize_t elfcorehdr_read(char *buf, size_t count, u64 *ppos)
 {
        memcpy(buf, phys_to_virt((phys_addr_t)*ppos), count);
+       *ppos += count;
+
        return count;
 }