Re: [PATCH] arm64: kdump: update ppos when reading elfcorehdr

From: Tyler Hicks
Date: Fri Mar 19 2021 - 17:08:07 EST


On 2021-03-19 16:50:54, Pavel Tatashin wrote:
> 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.
>

Fixes: e62aaeac426a ("arm64: kdump: provide /proc/vmcore file")
Reviewed-by: Tyler Hicks <tyhicks@xxxxxxxxxxxxxxxxxxx>

Tyler

> Signed-off-by: Pavel Tatashin <pasha.tatashin@xxxxxxxxxx>
> ---
> arch/arm64/kernel/crash_dump.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/arm64/kernel/crash_dump.c b/arch/arm64/kernel/crash_dump.c
> index e6e284265f19..58303a9ec32c 100644
> --- a/arch/arm64/kernel/crash_dump.c
> +++ b/arch/arm64/kernel/crash_dump.c
> @@ -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;
> }
> --
> 2.25.1
>