[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v3 0/7] pc-bios/s390-ccw: Fixes and improvements for start.S (and

From: Thomas Huth
Subject: [PATCH v3 0/7] pc-bios/s390-ccw: Fixes and improvements for start.S (and other files)
Date: Thu, 29 Jun 2023 12:48:14 +0200

tl;dr: Please review the final patch - it's the only one that really changed.

This is a respin of the currently pending s390-ccw bios patches. Compared
to v2, I've included other pending patches for the s390-ccw bios this time,
so the series grew a little bit.

The only real code change compared to the previous version is in the
final patch: Instead of using ".bss" as start address of the area that
should be cleared, it now loads __bss_start indirectly instead. That
way we should be safe in case there will be another segment between
__bss_start and .bss one day (like .sbss on other architectures). See
The comments in https://bugzilla.redhat.com/show_bug.cgi?id=2216662
for more information.

Old cover letter follows:

------------------------------- 8< ------------------------------------

Main motivation of this series was a bug that showed up when compiling
with Clang 16 and binutils 2.40 (which has been reported in Fedora ELN, see
https://bugzilla.redhat.com/show_bug.cgi?id=2216662). This is fixed in
the final patch. I checked with "objdump" that the change is fine, indeed.

While working on this issue, I came accross some other issues which I
address in the other patches patches:

- Juan recently noticed unnecessary types in the s390-ccw bios (patch 1)
  which I continued to improve in patch 2
- Recent binutils complain about executable stack - fixed in patch 3
- Indentation is a mixture between tabs and spaces in start.S (patch 4)
- We do not set up a stack frame for the main() function, which could
  cause memory corruption (patch 5)
- The stack is declared in multiple places, though it's only needed
  in start.S (patch 6)

- Included other pending s390-ccw bios patches
- Changed the commit message of the "__u*" clean-up patch
- Changed the final patch to load __bss_start indirectly instead

- Use ".space" instead of ".lcomm" in the third patch to make sure
  that the alignment is really taken into consideration (thanks Richard)
- Alignment of 8 should be enough in the third patch (thank Christian)
- Added Reviewed-bys from v1

Juan Quintela (1):
  s390-ccw: Getting rid of ulong

Thomas Huth (6):
  pc-bios/s390-ccw: Get rid of the the __u* types
  pc-bios/s390-ccw/Makefile: Use -z noexecstack to silence linker
  pc-bios/s390-ccw: Fix indentation in start.S
  pc-bios/s390-ccw: Provide space for initial stack frame in start.S
  pc-bios/s390-ccw: Move the stack array into start.S
  pc-bios/s390-ccw: Don't use __bss_start with the "larl" instruction

 pc-bios/s390-ccw/cio.h           | 232 +++++++++++++++----------------
 pc-bios/s390-ccw/helper.h        |   2 +-
 pc-bios/s390-ccw/s390-ccw.h      |  12 +-
 pc-bios/s390-ccw/virtio-scsi.h   |   2 +-
 pc-bios/s390-ccw/virtio.h        |   4 +-
 pc-bios/s390-ccw/main.c          |   1 -
 pc-bios/s390-ccw/netmain.c       |   1 -
 pc-bios/s390-ccw/virtio-blkdev.c |  12 +-
 pc-bios/s390-ccw/virtio-scsi.c   |   4 +-
 pc-bios/s390-ccw/virtio.c        |  12 +-
 pc-bios/s390-ccw/Makefile        |   2 +-
 pc-bios/s390-ccw/start.S         | 149 +++++++++++---------
 tests/tcg/s390x/head64.S         |   7 +-
 13 files changed, 220 insertions(+), 220 deletions(-)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]