]> xenbits.xensource.com Git - people/aperard/qemu-dm.git/commitdiff
pc-bios/s390-ccw: Move the stack array into start.S
authorThomas Huth <thuth@redhat.com>
Tue, 27 Jun 2023 07:47:02 +0000 (09:47 +0200)
committerThomas Huth <thuth@redhat.com>
Thu, 29 Jun 2023 18:45:12 +0000 (20:45 +0200)
The stack array is only referenced from the start-up code (which is
shared between the s390-ccw.img and the s390-netboot.img), but it is
currently declared twice, once in main.c and once in netmain.c.
It makes more sense to declare this in start.S instead - which will
also be helpful in the next patch, since we need to mention the .bss
section in start.S in that patch.

While we're at it, let's also drop the huge alignment of the stack,
since there is no technical requirement for aligning it to page
boundaries.

Message-Id: <20230627074703.99608-4-thuth@redhat.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Eric Farman <farman@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
pc-bios/s390-ccw/main.c
pc-bios/s390-ccw/netmain.c
pc-bios/s390-ccw/s390-ccw.h
pc-bios/s390-ccw/start.S
tests/tcg/s390x/head64.S

index a2def83e8236bad40cf64540fbe683ab28c75887..55067980982170563de8da492501fcf7e9d25bbd 100644 (file)
@@ -17,7 +17,6 @@
 #include "virtio-scsi.h"
 #include "dasd-ipl.h"
 
-char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));
 static SubChannelId blk_schid = { .one = 1 };
 static char loadparm_str[LOADPARM_LEN + 1];
 QemuIplParameters qipl;
index 056e93a818fd482afd8cc8e64cdd27ef0b2ef36b..5cd619b2d606493c6aca40a69a261859d7e4e1ca 100644 (file)
@@ -50,7 +50,6 @@ void write_iplb_location(void) {}
 /* STSI 3.2.2 offset of first vmdb + offset of uuid inside vmdb */
 #define STSI322_VMDB_UUID_OFFSET ((8 + 12) * 4)
 
-char stack[PAGE_SIZE * 8] __attribute__((aligned(PAGE_SIZE)));
 IplParameterBlock iplb __attribute__((aligned(PAGE_SIZE)));
 static char cfgbuf[2048];
 
index f68a8327189cbf4b0d2ea5ecb2a330f3063b6276..c977a52b501aaa26f42242a0c1c0c59d9456708f 100644 (file)
@@ -50,7 +50,6 @@ void consume_io_int(void);
 /* main.c */
 void write_subsystem_identification(void);
 void write_iplb_location(void);
-extern char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));
 unsigned int get_loadparm_index(void);
 void main(void);
 
index abd6fe6639974735c5137f433b599fb18afeba52..429a2b30a16f6d9185dab1c1ba05aacc937cd471 100644 (file)
@@ -121,3 +121,9 @@ external_new_mask:
     .quad   0x0000000180000000
 io_new_mask:
     .quad   0x0000000180000000
+
+.bss
+    .align  8
+stack:
+    .space  STACK_SIZE
+    .size   stack,STACK_SIZE
index c6f36dfea4b8abc56b84335a95fba61e31a58426..4fe288388aba5a41f3fa09fb6fe7f9f10ebeaae8 100644 (file)
@@ -8,6 +8,8 @@
 #include "../../../pc-bios/s390-ccw/start.S"
 #undef main
 
+.text
+
 main_pre:
     aghi %r15,-160                     /* reserve stack for C code */
     brasl %r14,sclp_setup
@@ -24,8 +26,3 @@ success_psw:
     .quad 0x2000180000000,0xfff        /* see is_special_wait_psw() */
 failure_psw:
     .quad 0x2000180000000,0            /* disabled wait */
-
-    .section .bss
-    .align 0x1000
-stack:
-    .skip 0x8000