On Tue, 27 Jun 2023 09:47:02 +0200 Thomas Huth <th...@redhat.com> wrote:
> 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. > > Signed-off-by: Thomas Huth <th...@redhat.com> Reviewed-by: Claudio Imbrenda <imbre...@linux.ibm.com> > --- > pc-bios/s390-ccw/s390-ccw.h | 1 - > pc-bios/s390-ccw/main.c | 1 - > pc-bios/s390-ccw/netmain.c | 1 - > pc-bios/s390-ccw/start.S | 6 ++++++ > 4 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/pc-bios/s390-ccw/s390-ccw.h b/pc-bios/s390-ccw/s390-ccw.h > index b88e0550ab..91afcbbca9 100644 > --- a/pc-bios/s390-ccw/s390-ccw.h > +++ b/pc-bios/s390-ccw/s390-ccw.h > @@ -55,7 +55,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); > > diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c > index a2def83e82..5506798098 100644 > --- a/pc-bios/s390-ccw/main.c > +++ b/pc-bios/s390-ccw/main.c > @@ -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; > diff --git a/pc-bios/s390-ccw/netmain.c b/pc-bios/s390-ccw/netmain.c > index 056e93a818..5cd619b2d6 100644 > --- a/pc-bios/s390-ccw/netmain.c > +++ b/pc-bios/s390-ccw/netmain.c > @@ -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]; > > diff --git a/pc-bios/s390-ccw/start.S b/pc-bios/s390-ccw/start.S > index 29b0a9ece0..111dea261b 100644 > --- a/pc-bios/s390-ccw/start.S > +++ b/pc-bios/s390-ccw/start.S > @@ -120,3 +120,9 @@ external_new_mask: > .quad 0x0000000180000000 > io_new_mask: > .quad 0x0000000180000000 > + > +.bss > + .align 8 > +stack: > + .space STACK_SIZE > + .size stack,STACK_SIZE