[PATCH] riscv/purgatory: align riscv_kernel_entry
Alexandre Ghiti
alex at ghiti.fr
Mon Jul 15 05:38:13 PDT 2024
On 15/07/2024 13:46, Alexandre Ghiti wrote:
> Hi Daniel,
>
> On 09/07/2024 03:26, Daniel Maslowski wrote:
>> When alignment handling is delegated to the kernel, everything must be
>> word-aligned in purgatory, since the trap handler is then set to the
>> kexec one. Without the alignment, hitting the exception would
>> ultimately crash. On other occasions, the kernel's handler would take
>> care of exceptions.
>> This has been tested with oreboot and its SBI delegating unaligned
>> access exceptions and the kernel configured to handle them.
>>
>> Signed-off-by: Daniel Maslowski <cyrevolt at gmail.com>
>> ---
>> arch/riscv/purgatory/entry.S | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/arch/riscv/purgatory/entry.S b/arch/riscv/purgatory/entry.S
>> index 5bcf3af903da..29121650a941 100644
>> --- a/arch/riscv/purgatory/entry.S
>> +++ b/arch/riscv/purgatory/entry.S
>> @@ -34,6 +34,7 @@ SYM_CODE_END(purgatory_start)
>> .data
>> +.align 4
>
>
> IIRC, .align on riscv takes a power of two as argument, which means
> you align riscv_kernel_entry symbol to 16B here, any reason for this
> alignment? I guess you want 4B on rv32 and 8B on rv64 right? In that
> case, the best here would be to use LGREG
> https://elixir.bootlin.com/linux/latest/source/arch/riscv/include/asm/asm.h#L29
>
> Thanks,
>
> Alex
>
>
>> SYM_DATA(riscv_kernel_entry, .quad 0)
>> .end
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
And since this is a fix, can you add a Fixes tag please?
Thanks,
Alex
More information about the linux-riscv
mailing list