stacktrace and panic functions assume that the kernel stack size is
THREAD_SIZE.
The allocated kernel stack size may not be THREAD_SIZE anymore, rely
on the newly introduced helpers task_stack_{low, high}()
Signed-off-by: Mostafa Saleh <[email protected]>
---
arch/arm64/include/asm/stacktrace.h | 4 ++--
arch/arm64/kernel/traps.c | 5 +++--
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/include/asm/stacktrace.h
b/arch/arm64/include/asm/stacktrace.h
index eb18d7cee62f..cbc93cf213a7 100644
--- a/arch/arm64/include/asm/stacktrace.h
+++ b/arch/arm64/include/asm/stacktrace.h
@@ -41,8 +41,8 @@ static inline bool on_irq_stack(unsigned long sp, unsigned
long size)
static inline struct stack_info stackinfo_get_task(const struct task_struct
*tsk)
{
- unsigned long low = (unsigned long)task_stack_page(tsk);
- unsigned long high = low + THREAD_SIZE;
+ unsigned long low = (unsigned long)task_stack_low(tsk);
+ unsigned long high = (unsigned long)task_stack_high(tsk);
return (struct stack_info) {
.low = low,
diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c
index ce0e213d772d..b91b154843ef 100644
--- a/arch/arm64/kernel/traps.c
+++ b/arch/arm64/kernel/traps.c
@@ -902,7 +902,8 @@ DEFINE_PER_CPU(unsigned long
[KERNEL_EXC_STACK_SIZE/sizeof(long)],
void __noreturn panic_bad_stack(struct pt_regs *regs, unsigned long esr,
unsigned long far)
{
- unsigned long tsk_stk = (unsigned long)current->stack;
+ unsigned long tsk_stk = (unsigned long)task_stack_low(current);
+ unsigned long tsk_stk_end = (unsigned long)task_stack_high(current);
unsigned long irq_stk = (unsigned long)this_cpu_read(irq_stack_ptr);
unsigned long exc_stk = (unsigned
long)this_cpu_ptr(kernel_exception_stack);
@@ -913,7 +914,7 @@ void __noreturn panic_bad_stack(struct pt_regs *regs,
unsigned long esr, unsigne
pr_emerg("FAR: 0x%016lx\n", far);
pr_emerg("Task stack: [0x%016lx..0x%016lx]\n",
- tsk_stk, tsk_stk + THREAD_SIZE);
+ tsk_stk, tsk_stk_end);
pr_emerg("IRQ stack: [0x%016lx..0x%016lx]\n",
irq_stk, irq_stk + IRQ_STACK_SIZE);
pr_emerg("Exception stack: [0x%016lx..0x%016lx]\n",
--
2.56.0.rc1.315.gc6ed9934b7-goog