All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Hartmayer <mhartmay@linux.ibm.com>
To: <kvm@vger.kernel.org>
Cc: Janosch Frank <frankja@linux.ibm.com>,
	David Hildenbrand <david@redhat.com>,
	Claudio Imbrenda <imbrenda@linux.ibm.com>,
	Nina Schoetterl-Glausch <nsg@linux.ibm.com>,
	Nico Boehr <nrb@linux.ibm.com>, Thomas Huth <thuth@redhat.com>
Subject: [kvm-unit-tests PATCH v2 6/8] s390x: define a macro for the stack frame size
Date: Thu, 19 Jan 2023 12:40:43 +0100	[thread overview]
Message-ID: <20230119114045.34553-7-mhartmay@linux.ibm.com> (raw)
In-Reply-To: <20230119114045.34553-1-mhartmay@linux.ibm.com>

Define and use a macro for the stack frame size.

Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
---
 lib/s390x/asm-offsets.c     | 1 +
 s390x/Makefile              | 2 +-
 s390x/cstart64.S            | 2 +-
 s390x/flat.lds.S            | 4 +++-
 s390x/gs.c                  | 5 +++--
 s390x/macros.S              | 4 ++--
 s390x/snippets/c/flat.lds.S | 6 ++++--
 7 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/lib/s390x/asm-offsets.c b/lib/s390x/asm-offsets.c
index f612f3277a95..188dd2e51181 100644
--- a/lib/s390x/asm-offsets.c
+++ b/lib/s390x/asm-offsets.c
@@ -87,6 +87,7 @@ int main(void)
 	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));
+	DEFINE(STACK_FRAME_SIZE, sizeof(struct stack_frame));
 
 	return 0;
 }
diff --git a/s390x/Makefile b/s390x/Makefile
index 44ccca8102d6..9a8e2af1b2be 100644
--- a/s390x/Makefile
+++ b/s390x/Makefile
@@ -159,7 +159,7 @@ $(SNIPPET_DIR)/c/%.gbin: $(SNIPPET_DIR)/c/%.o $(snippet_lib) $(FLATLIBS) $(SNIPP
 %.hdr.obj: %.hdr
 	$(OBJCOPY) -I binary -O elf64-s390 -B "s390:64-bit" $< $@
 
-%.lds: %.lds.S
+%.lds: %.lds.S $(asm-offsets)
 	$(CPP) $(autodepend-flags) $(CPPFLAGS) -P -C -o $@ $<
 
 .SECONDEXPANSION:
diff --git a/s390x/cstart64.S b/s390x/cstart64.S
index 6f83da2a6c0a..468ace3ea4df 100644
--- a/s390x/cstart64.S
+++ b/s390x/cstart64.S
@@ -38,7 +38,7 @@ start:
 	/* setup stack */
 	larl	%r15, stackptr
 	/* Clear first stack frame */
-	xc      0(160,%r15), 0(%r15)
+	xc      0(STACK_FRAME_SIZE,%r15), 0(%r15)
 	/* setup initial PSW mask + control registers*/
 	larl	%r1, initial_psw
 	lpswe	0(%r1)
diff --git a/s390x/flat.lds.S b/s390x/flat.lds.S
index 952f6cd457ed..0cb7e383cc76 100644
--- a/s390x/flat.lds.S
+++ b/s390x/flat.lds.S
@@ -1,3 +1,5 @@
+#include <asm/asm-offsets.h>
+
 SECTIONS
 {
 	.lowcore : {
@@ -44,6 +46,6 @@ SECTIONS
 	/*
 	 * stackptr set with initial stack frame preallocated
 	 */
-	stackptr = . - 160;
+	stackptr = . - STACK_FRAME_SIZE;
 	stacktop = .;
 }
diff --git a/s390x/gs.c b/s390x/gs.c
index 4993eb8f43a9..2c2b972d7e65 100644
--- a/s390x/gs.c
+++ b/s390x/gs.c
@@ -9,6 +9,7 @@
  *    Janosch Frank <frankja@linux.ibm.com>
  */
 #include <libcflat.h>
+#include <asm/asm-offsets.h>
 #include <asm/page.h>
 #include <asm/facility.h>
 #include <asm/interrupt.h>
@@ -41,8 +42,8 @@ extern void gs_handler_asm(void);
 	    "	    aghi    %r15,-320\n" 		/* Allocate stack frame */
 	    "	    stmg    %r0,%r13,192(%r15)\n" 	/* Store regs to save area */
 	    "	    stg	    %r14,312(%r15)\n"
-	    "	    la	    %r2,160(%r15)\n" 		/* Store gscb address in this_cb */
-	    "	    .insn   rxy,0xe30000000049,0,160(%r15)\n" /* stgsc */
+	    "	    la	    %r2," xstr(STACK_FRAME_SIZE) "(%r15) \n" 		/* Store gscb address in this_cb */
+	    "	    .insn   rxy,0xe30000000049,0," xstr(STACK_FRAME_SIZE) "(%r15)\n" /* stgsc */
 	    "	    lg	    %r14,24(%r2)\n" 		/* Get GSEPLA from GSCB*/
 	    "	    lg	    %r14,40(%r14)\n" 		/* Get GSERA from GSEPL*/
 	    "	    stg	    %r14,304(%r15)\n" 		/* Store GSERA in r14 of reg save area */
diff --git a/s390x/macros.S b/s390x/macros.S
index 13cff299488f..e2a56a366c70 100644
--- a/s390x/macros.S
+++ b/s390x/macros.S
@@ -21,14 +21,14 @@
 	/* Save the stack address in GR2 which is the first function argument */
 	lgr     %r2, %r15
 	/* Allocate stack space for called C function, as specified in s390 ELF ABI */
-	slgfi   %r15, 160
+	slgfi   %r15, STACK_FRAME_SIZE
 	/*
 	 * Save the address of the interrupt stack into the back chain
 	 * of the called function.
 	 */
 	stg     %r2, STACK_FRAME_INT_BACKCHAIN(%r15)
 	brasl	%r14, \c_func
-	algfi   %r15, 160
+	algfi   %r15, STACK_FRAME_SIZE
 	RESTORE_REGS_STACK
 	lpswe	\old_psw
 	.endm
diff --git a/s390x/snippets/c/flat.lds.S b/s390x/snippets/c/flat.lds.S
index 9e5eb66bec23..468b5f1eebe8 100644
--- a/s390x/snippets/c/flat.lds.S
+++ b/s390x/snippets/c/flat.lds.S
@@ -1,3 +1,5 @@
+#include <asm/asm-offsets.h>
+
 SECTIONS
 {
 	.lowcore : {
@@ -18,9 +20,9 @@ SECTIONS
 	. = 0x4000;
 	/*
 	 * The stack grows down from 0x4000 to 0x2000, we pre-allocoate
-	 * a frame via the -160.
+	 * a frame via the -STACK_FRAME_SIZE.
 	 */
-	stackptr = . - 160;
+	stackptr = . - STACK_FRAME_SIZE;
 	stacktop = .;
 	/* Start text 0x4000 */
 	.text : {
-- 
2.34.1


  parent reply	other threads:[~2023-01-19 11:41 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-19 11:40 [kvm-unit-tests PATCH v2 0/8] Some cleanup patches Marc Hartmayer
2023-01-19 11:40 ` [kvm-unit-tests PATCH v2 1/8] .gitignore: ignore `s390x/comm.key` file Marc Hartmayer
2023-01-20  8:27   ` Nico Boehr
2023-01-19 11:40 ` [kvm-unit-tests PATCH v2 2/8] s390x/Makefile: simplify `%.hdr` target rules Marc Hartmayer
2023-01-19 11:40 ` [kvm-unit-tests PATCH v2 3/8] s390x/Makefile: fix `*.gbin` target dependencies Marc Hartmayer
2023-01-31  8:49   ` Janosch Frank
2023-01-19 11:40 ` [kvm-unit-tests PATCH v2 4/8] s390x/Makefile: refactor CPPFLAGS Marc Hartmayer
2023-01-31  8:53   ` Janosch Frank
2023-01-19 11:40 ` [kvm-unit-tests PATCH v2 5/8] s390x: use C pre-processor for linker script generation Marc Hartmayer
2023-01-19 11:52   ` Marc Hartmayer
2023-01-31 17:56   ` Nina Schoetterl-Glausch
2023-02-01 10:00     ` Marc Hartmayer
2023-02-01 12:19       ` Nina Schoetterl-Glausch
2023-02-01 13:54         ` Marc Hartmayer
2023-02-01 14:18         ` Marc Hartmayer
2023-02-01 14:47     ` Marc Hartmayer
2023-01-19 11:40 ` Marc Hartmayer [this message]
2023-02-01 20:52   ` [kvm-unit-tests PATCH v2 6/8] s390x: define a macro for the stack frame size Nina Schoetterl-Glausch
2023-01-19 11:40 ` [kvm-unit-tests PATCH v2 7/8] lib/linux/const.h: test for `__ASSEMBLER__` as well Marc Hartmayer
2023-01-31 10:10   ` Janosch Frank
2023-01-19 11:40 ` [kvm-unit-tests PATCH v2 8/8] s390x/Makefile: add an extra `%.aux.o` target Marc Hartmayer
2023-01-19 11:59   ` Marc Hartmayer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230119114045.34553-7-mhartmay@linux.ibm.com \
    --to=mhartmay@linux.ibm.com \
    --cc=david@redhat.com \
    --cc=frankja@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=nrb@linux.ibm.com \
    --cc=nsg@linux.ibm.com \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.