]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
alpha: replace hardcoded stack offsets with autogenerated ones
authorIvan Kokshaysky <ink@unseen.parts>
Tue, 4 Feb 2025 22:35:22 +0000 (23:35 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Mar 2025 11:47:22 +0000 (12:47 +0100)
commit 77b823fa619f97d16409ca37ad4f7936e28c5f83 upstream.

This allows the assembly in entry.S to automatically keep in sync with
changes in the stack layout (struct pt_regs and struct switch_stack).

Cc: stable@vger.kernel.org
Tested-by: Maciej W. Rozycki <macro@orcam.me.uk>
Tested-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Maciej W. Rozycki <macro@orcam.me.uk>
Signed-off-by: Ivan Kokshaysky <ink@unseen.parts>
Signed-off-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/alpha/kernel/asm-offsets.c
arch/alpha/kernel/entry.S

index 2e125e5c1508c388e200d1eb38383ccd68ebc8a4..05d9296af5ea6a178856f237b202a4ead7d30546 100644 (file)
@@ -32,7 +32,9 @@ void foo(void)
         DEFINE(CRED_EGID, offsetof(struct cred, egid));
         BLANK();
 
+       DEFINE(SP_OFF, offsetof(struct pt_regs, ps));
        DEFINE(SIZEOF_PT_REGS, sizeof(struct pt_regs));
+       DEFINE(SWITCH_STACK_SIZE, sizeof(struct switch_stack));
        DEFINE(PT_PTRACED, PT_PTRACED);
        DEFINE(CLONE_VM, CLONE_VM);
        DEFINE(CLONE_UNTRACED, CLONE_UNTRACED);
index 351d6e60e566969d33130fd534180d42479168d7..ba99cc9d27c7caf31ef1051c03f72e4b52cada7b 100644 (file)
        .set noat
        .cfi_sections   .debug_frame
 
-/* Stack offsets.  */
-#define SP_OFF                 184
-#define SWITCH_STACK_SIZE      320
-
 .macro CFI_START_OSF_FRAME     func
        .align  4
        .globl  \func