[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <70fe8aa8bfe3923308e6248377577f58@mailhost.ics.forth.gr>
Date: Fri, 07 Jan 2022 20:03:59 +0200
From: Nick Kossifidis <mick@....forth.gr>
To: Nick Kossifidis <mick@....forth.gr>
Cc: palmer@...belt.com, paul.walmsley@...ive.com,
aou@...s.berkeley.edu, linux-riscv@...ts.infradead.org,
linux-kernel@...r.kernel.org, Alexandre Ghiti <alex@...ti.fr>,
stable@...r.kernel.org
Subject: Re: [PATCH 1/3] riscv: Don't use va_pa_offset on kdump
Hello Palmer,
Any updates on those 3 patches ?
Regards,
Nick
Στις 2021-11-26 20:04, Nick Kossifidis έγραψε:
> On kdump instead of using an intermediate step to relocate the kernel,
> that lives in a "control buffer" outside the current kernel's mapping,
> we jump to the crash kernel directly by calling
> riscv_kexec_norelocate().
> The current implementation uses va_pa_offset while switching to
> physical
> addressing, however since we moved the kernel outside the linear
> mapping
> this won't work anymore since riscv_kexec_norelocate() is part of the
> kernel mapping and we should use kernel_map.va_kernel_pa_offset, and
> also
> take XIP kernel into account.
>
> We don't really need to use va_pa_offset on riscv_kexec_norelocate, we
> can just set STVEC to the physical address of the new kernel instead
> and
> let the hart jump to the new kernel on the next instruction after
> setting
> SATP to zero. This fixes kdump and is also simpler/cleaner.
>
> I tested this on the latest qemu and HiFive Unmatched and works as
> expected.
>
> v2: I removed the direct jump after setting satp as suggested.
>
> Fixes: 2bfc6cd81bd1 ("riscv: Move kernel mapping outside of linear
> mapping")
>
> Signed-off-by: Nick Kossifidis <mick@....forth.gr>
> Reviewed-by: Alexandre Ghiti <alex@...ti.fr>
> Cc: <stable@...r.kernel.org> # 5.13
> Cc: <stable@...r.kernel.org> # 5.14
Powered by blists - more mailing lists