arm64: Change the on_*stack functions to take a size argument
authorPeter Collingbourne <pcc@google.com>
Wed, 26 May 2021 17:49:25 +0000 (10:49 -0700)
committerWill Deacon <will@kernel.org>
Wed, 26 May 2021 19:01:17 +0000 (20:01 +0100)
commit76734d26b54192a31440039459eef2612da63ed4
tree6bc4b552f92ce468da83f2771c13f1eccd4b8071
parent7d7b720a4b8049446cffce870b1dd3ffa89d4b40
arm64: Change the on_*stack functions to take a size argument

unwind_frame() was previously implicitly checking that the frame
record is in bounds of the stack by enforcing that FP is both aligned
to 16 and in bounds of the stack. Once the FP alignment requirement
is relaxed to 8 this will not be sufficient because it does not
account for the case where FP points to 8 bytes before the end of the
stack.

Make the check explicit by changing the on_*stack functions to take a
size argument and adjusting the callers to pass the appropriate sizes.

Signed-off-by: Peter Collingbourne <pcc@google.com>
Link: https://linux-review.googlesource.com/id/Ib7a3eb3eea41b0687ffaba045ceb2012d077d8b4
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Tested-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20210526174927.2477847-1-pcc@google.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/include/asm/processor.h
arch/arm64/include/asm/sdei.h
arch/arm64/include/asm/stacktrace.h
arch/arm64/kernel/ptrace.c
arch/arm64/kernel/sdei.c
arch/arm64/kernel/stacktrace.c