projects
/
platform
/
kernel
/
linux-starfive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
ee0e9b2
)
RISC-V: Align the shadow stack
author
Palmer Dabbelt
<palmer@rivosinc.com>
Wed, 30 Nov 2022 02:35:14 +0000
(18:35 -0800)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:32:38 +0000
(13:32 +0100)
[ Upstream commit
b003b3b77d65133a0011ae3b7b255347438c12f6
]
The standard RISC-V ABIs all require 16-byte stack alignment. We're
only calling that one function on the shadow stack so I doubt it'd
result in a real issue, but might as well keep this lined up.
Fixes:
31da94c25aea
("riscv: add VMAP_STACK overflow detection")
Reviewed-by: Jisheng Zhang <jszhang@kernel.org>
Link:
https://lore.kernel.org/r/20221130023515.20217-1-palmer@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/riscv/kernel/traps.c
patch
|
blob
|
history
diff --git
a/arch/riscv/kernel/traps.c
b/arch/riscv/kernel/traps.c
index
7abd8e4
..
f77cb8e
100644
(file)
--- a/
arch/riscv/kernel/traps.c
+++ b/
arch/riscv/kernel/traps.c
@@
-214,7
+214,7
@@
static DEFINE_PER_CPU(unsigned long [OVERFLOW_STACK_SIZE/sizeof(long)],
* shadow stack, handled_ kernel_ stack_ overflow(in kernel/entry.S) is used
* to get per-cpu overflow stack(get_overflow_stack).
*/
-long shadow_stack[SHADOW_OVERFLOW_STACK_SIZE/sizeof(long)];
+long shadow_stack[SHADOW_OVERFLOW_STACK_SIZE/sizeof(long)]
__aligned(16)
;
asmlinkage unsigned long get_overflow_stack(void)
{
return (unsigned long)this_cpu_ptr(overflow_stack) +