On 2/17/21 4:38 PM, Thomas Huth wrote: > On 17/02/2021 15.41, Janosch Frank wrote: >> Using sizeof is safer than using magic constants. However, it doesn't >> really fit into asm-offsets.h as it's not an offset so I'm happy to >> receive suggestions on where to put it. >> >> Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> >> --- >> lib/s390x/asm-offsets.c | 1 + >> s390x/macros.S | 4 ++-- >> 2 files changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/lib/s390x/asm-offsets.c b/lib/s390x/asm-offsets.c >> index 96cb21cf..2658b59a 100644 >> --- a/lib/s390x/asm-offsets.c >> +++ b/lib/s390x/asm-offsets.c >> @@ -86,6 +86,7 @@ int main(void) >> OFFSET(STACK_FRAME_INT_CRS, stack_frame_int, crs); >> OFFSET(STACK_FRAME_INT_GRS0, stack_frame_int, grs0); >> OFFSET(STACK_FRAME_INT_GRS1, stack_frame_int, grs1); >> + DEFINE(STACK_FRAME_INT_SIZE, sizeof(struct stack_frame_int)); >> >> return 0; >> } >> diff --git a/s390x/macros.S b/s390x/macros.S >> index d7eeeb55..a7d62c6f 100644 >> --- a/s390x/macros.S >> +++ b/s390x/macros.S >> @@ -43,14 +43,14 @@ >> /* Save registers on the stack (r15), so we can have stacked interrupts. */ >> .macro SAVE_REGS_STACK >> /* Allocate a full stack frame */ >> - slgfi %r15, 32 * 8 + 4 * 8 >> + slgfi %r15, STACK_FRAME_INT_SIZE >> /* Store registers r0 to r14 on the stack */ >> stmg %r2, %r15, STACK_FRAME_INT_GRS0(%r15) >> stg %r0, STACK_FRAME_INT_GRS1(%r15) >> stg %r1, STACK_FRAME_INT_GRS1 + 8(%r15) >> /* Store the gr15 value before we allocated the new stack */ >> lgr %r0, %r15 >> - algfi %r0, 32 * 8 + 4 * 8 >> + algfi %r0, STACK_FRAME_INT_SIZE > > Ah, well, that of course fixes the problem that I had with the previous > patch. I'd suggest to merge it into patch 2. That was the plan anyway, I had so much pain until I yanked out the int offsets in favor of the macros. :) Did you have time to read the commit message? I'm not completely convinced that asm-offset.c is the right place for the DEFINE() so I kept this patch as a discussion starter. > > Thomas >