riscv: Initialize thread pointer before calling C functions
commit35d33c76d6upstream. Because of the stack canary feature that reads from the current task structure the stack canary value, the thread pointer register "tp" must be set before calling any C function from head.S: by chance, setup_vm and all the functions that it calls does not seem to be part of the functions where the canary check is done, but in the following commits, some functions will. Fixes:f2c9699f65("riscv: Add STACKPROTECTOR supported") Signed-off-by: Alexandre Ghiti <alexandre.ghiti@canonical.com> Cc: stable@vger.kernel.org Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
6b45437959
commit
4a5c7a61ff
1 changed files with 1 additions and 0 deletions
|
|
@ -261,6 +261,7 @@ clear_bss_done:
|
|||
REG_S a0, (a2)
|
||||
|
||||
/* Initialize page tables and relocate to virtual addresses */
|
||||
la tp, init_task
|
||||
la sp, init_thread_union + THREAD_SIZE
|
||||
mv a0, s1
|
||||
call setup_vm
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue