The 128-byte area below the stack pointer is a red zone, not a stack frame overhead. Rename it to KERNEL_REDZONE_SIZE to match the powerpc convention and better reflect its actual purpose.
Tests: - Verified no remaining references to STACK_FRAME_OVERHEAD in arch/openrisc/ using grep - Built arch/openrisc/ successfully with or1k-elf cross-compiler: make ARCH=openrisc CROSS_COMPILE=or1k-elf- arch/openrisc/ Resolves the TODO comment in ptrace.h. Signed-off-by: 4rynv <[email protected]> --- arch/openrisc/include/asm/processor.h | 4 +++- arch/openrisc/include/asm/ptrace.h | 3 +-- arch/openrisc/kernel/asm-offsets.c | 4 ++-- arch/openrisc/kernel/process.c | 4 ++-- arch/openrisc/kernel/signal.c | 2 +- arch/openrisc/kernel/stacktrace.c | 2 +- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/arch/openrisc/include/asm/processor.h b/arch/openrisc/include/asm/processor.h index 3ff893a67c13..f4ababd1de24 100644 --- a/arch/openrisc/include/asm/processor.h +++ b/arch/openrisc/include/asm/processor.h @@ -55,7 +55,9 @@ struct thread_struct { * user->kernel transition registers are reached by this (i.e. not regs * for running signal handler) */ -#define user_regs(thread_info) (((struct pt_regs *)((unsigned long)(thread_info) + THREAD_SIZE - STACK_FRAME_OVERHEAD)) - 1) +#define user_regs(thread_info) \ + (((struct pt_regs *)((unsigned long)(thread_info) + \ + THREAD_SIZE - KERNEL_REDZONE_SIZE)) - 1) /* * Dito but for the currently running task diff --git a/arch/openrisc/include/asm/ptrace.h b/arch/openrisc/include/asm/ptrace.h index 28facf2f3e00..940f0b045b2a 100644 --- a/arch/openrisc/include/asm/ptrace.h +++ b/arch/openrisc/include/asm/ptrace.h @@ -94,8 +94,7 @@ struct pt_regs { long dummy2; /* Cheap alignment fix */ }; -/* TODO: Rename this to REDZONE because that's what it is */ -#define STACK_FRAME_OVERHEAD 128 /* size of minimum stack frame */ +#define KERNEL_REDZONE_SIZE 128 /* size of minimum stack frame */ #define MAX_REG_OFFSET offsetof(struct pt_regs, orig_gpr11) diff --git a/arch/openrisc/kernel/asm-offsets.c b/arch/openrisc/kernel/asm-offsets.c index 3cc826f2216b..07bfa12ca4af 100644 --- a/arch/openrisc/kernel/asm-offsets.c +++ b/arch/openrisc/kernel/asm-offsets.c @@ -53,8 +53,8 @@ int main(void) DEFINE(PT_SIZE, sizeof(struct pt_regs)); /* Interrupt register frame */ - DEFINE(STACK_FRAME_OVERHEAD, STACK_FRAME_OVERHEAD); - DEFINE(INT_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs)); + DEFINE(KERNEL_REDZONE_SIZE, KERNEL_REDZONE_SIZE); + DEFINE(INT_FRAME_SIZE, KERNEL_REDZONE_SIZE + sizeof(struct pt_regs)); DEFINE(NUM_USER_SEGMENTS, TASK_SIZE >> 28); return 0; diff --git a/arch/openrisc/kernel/process.c b/arch/openrisc/kernel/process.c index 73ffb9fa3118..bbe2b36d698d 100644 --- a/arch/openrisc/kernel/process.c +++ b/arch/openrisc/kernel/process.c @@ -176,12 +176,12 @@ copy_thread(struct task_struct *p, const struct kernel_clone_args *args) top_of_kernel_stack = sp; /* Locate userspace context on stack... */ - sp -= STACK_FRAME_OVERHEAD; /* redzone */ + sp -= KERNEL_REDZONE_SIZE; /* redzone */ sp -= sizeof(struct pt_regs); userregs = (struct pt_regs *) sp; /* ...and kernel context */ - sp -= STACK_FRAME_OVERHEAD; /* redzone */ + sp -= KERNEL_REDZONE_SIZE; /* redzone */ sp -= sizeof(struct pt_regs); kregs = (struct pt_regs *)sp; diff --git a/arch/openrisc/kernel/signal.c b/arch/openrisc/kernel/signal.c index f70a13ee0593..63121750fe5e 100644 --- a/arch/openrisc/kernel/signal.c +++ b/arch/openrisc/kernel/signal.c @@ -171,7 +171,7 @@ static inline void __user *get_sigframe(struct ksignal *ksig, unsigned long sp = regs->sp; /* redzone */ - sp -= STACK_FRAME_OVERHEAD; + sp -= KERNEL_REDZONE_SIZE; sp = sigsp(sp, ksig); sp = align_sigframe(sp - frame_size); diff --git a/arch/openrisc/kernel/stacktrace.c b/arch/openrisc/kernel/stacktrace.c index 54d38809e22c..0c4ca1eac2c2 100644 --- a/arch/openrisc/kernel/stacktrace.c +++ b/arch/openrisc/kernel/stacktrace.c @@ -79,7 +79,7 @@ void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace) /* Locate stack from kernel context */ ksp = task_thread_info(tsk)->ksp; - ksp += STACK_FRAME_OVERHEAD; /* redzone */ + ksp += KERNEL_REDZONE_SIZE; /* redzone */ ksp += sizeof(struct pt_regs); sp = (unsigned long *) ksp; -- 2.34.1

