[PATCH 1/3] riscv: Don't use va_pa_offset on kdump
Palmer Dabbelt
palmer at dabbelt.com
Sun Jan 9 10:56:52 PST 2022
On Fri, 07 Jan 2022 10:03:59 PST (-0800), mick at ics.forth.gr wrote:
> Hello Palmer,
>
> Any updates on those 3 patches ?
Sorry, I hadn't realized these were fixes so they got stuck in the
queue0. I do now remember you saying you had some fixes at the RISC-V
conference, but I guess that got lost as well. Including something like
"fix" or "-fixes" in a subject line always helps, but if I miss stuff
IRC's always a good bet as that'll at least make sure I see it when I'm
in front of the computer -- there's a lot of people who want things at
these conferences.
It's too late for fixes, but it looks like things have been broken for a
while so these will have to all get backported to stable regardless.
This is on for-next.
Thanks!
>
> 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 at ics.forth.gr>
>> Reviewed-by: Alexandre Ghiti <alex at ghiti.fr>
>> Cc: <stable at vger.kernel.org> # 5.13
>> Cc: <stable at vger.kernel.org> # 5.14
More information about the linux-riscv
mailing list