mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 01:53:29 +02:00
riscv: vector: clear V-reg in the first-use trap
If there is no context switch happens after we enable V for a process,
then we return to user space with whatever left on the CPU's V registers
accessible to the process. The leaked data could belong to another
process's V-context saved from last context switch, impacting process's
confidentiality on the system.
To prevent this from happening, we clear V registers by restoring
zero'd V context after turining on V.
Fixes: cd05483724 ("riscv: Allocate user's vector context in the first-use trap")
Signed-off-by: Andy Chiu <andy.chiu@sifive.com>
Reviewed-by: Björn Töpel <bjorn@rivosinc.com>
Link: https://lore.kernel.org/r/20230627015556.12329-2-andy.chiu@sifive.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This commit is contained in:
parent
26c38cd802
commit
75b59f2a90
|
|
@ -167,6 +167,7 @@ bool riscv_v_first_use_handler(struct pt_regs *regs)
|
|||
return true;
|
||||
}
|
||||
riscv_v_vstate_on(regs);
|
||||
riscv_v_vstate_restore(current, regs);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user