forked from pool/s390-tools
Accepting request 877833 from home:markkp:branches:Base:System
- Added s390-tools-sles15sp3-zipl-fix-4k-scsi-ipl.patch (bsc#1183039) IPL is not working when bootloader is installed on a SCSI disk with 4k physical blocksize without using a devicemapper target. - Added s390-tools-sles15sp3-remove-no-pie-link-arguments.patch so that we can build on systems with binutils 2.36 and higher. Without this, the build fails because that version of the ld command doesn't recognize "-no-pie" an acceptable argument. - Updated the mkdump.pl script to make the name of the temporary configuration file in /tmp/ unpredictable. (bsc#1182876) OBS-URL: https://build.opensuse.org/request/show/877833 OBS-URL: https://build.opensuse.org/package/show/Base:System/s390-tools?expand=0&rev=114
This commit is contained in:
parent
afd6f8a764
commit
9901451234
@ -43,7 +43,7 @@ my $UDEVADM = "/sbin/udevadm";
|
||||
my $ZGETDUMP = "/sbin/zgetdump";
|
||||
|
||||
# temporary DASD device configuration file for Zipl
|
||||
my $MDPATH = "/tmp/mvdump.conf";
|
||||
my $MDPATH = "/tmp/mvdump.conf.".`mcookie`;
|
||||
# zFCP dump dir, without a leading '/'
|
||||
my $ZFCP_DUMP_DIR = "mydumps";
|
||||
|
||||
@ -386,11 +386,9 @@ sub setup_dasddump
|
||||
prepare_dasd(@devices);
|
||||
|
||||
# create zipl device configuration file
|
||||
my $md_path = "/tmp/mvdump.conf";
|
||||
|
||||
# don't create files in debug mode
|
||||
unless ($OPT_DEBUG) {
|
||||
open(my $file, ">", $md_path) or exit_with("Unable to access $md_path: $!.", 15);
|
||||
open(my $file, ">", $MDPATH) or exit_with("Unable to access $MDPATH: $!.", 15);
|
||||
for my $device (@devices) {
|
||||
print{$file}("${device}1\n");
|
||||
}
|
||||
@ -398,7 +396,7 @@ sub setup_dasddump
|
||||
}
|
||||
|
||||
print("Creating dump record.\n");
|
||||
run_cmd("${ZIPL} -V -n -M $md_path");
|
||||
run_cmd("${ZIPL} -V -n -M $MDPATH");
|
||||
|
||||
cleanup();
|
||||
}
|
||||
|
13
s390-tools-sles15sp3-remove-no-pie-link-arguments.patch
Normal file
13
s390-tools-sles15sp3-remove-no-pie-link-arguments.patch
Normal file
@ -0,0 +1,13 @@
|
||||
--- s390-tools-2.15.1/common.mak 2020-10-28 10:31:59.000000000 -0400
|
||||
+++ s390-tools-2.15.1/common.mak 2021-03-01 11:16:20.285597140 -0500
|
||||
@@ -224,8 +224,8 @@
|
||||
|
||||
ifneq ($(shell $(CC_SILENT) -dumpspecs 2>/dev/null | grep -e '[^f]no-pie'),)
|
||||
NO_PIE_CFLAGS := -fno-pie
|
||||
- NO_PIE_LINKFLAGS := -no-pie
|
||||
- NO_PIE_LDFLAGS := -no-pie
|
||||
+ NO_PIE_LINKFLAGS :=
|
||||
+ NO_PIE_LDFLAGS :=
|
||||
else
|
||||
NO_PIE_CFLAGS :=
|
||||
NO_PIE_LINKFLAGS :=
|
64
s390-tools-sles15sp3-zipl-fix-4k-scsi-ipl.patch
Normal file
64
s390-tools-sles15sp3-zipl-fix-4k-scsi-ipl.patch
Normal file
@ -0,0 +1,64 @@
|
||||
Subject: [PATCH] [BZ 191696] zipl: fix reading 4k disk's geometry
|
||||
From: Stefan Haberland <sth@linux.ibm.com>
|
||||
|
||||
Description: zipl: fix IPL on 4K SCSI disks
|
||||
Symptom: IPL is not working when bootloader is installed
|
||||
on a SCSI disk with 4k physical blocksize without using
|
||||
a devicemapper target.
|
||||
Problem: The getgeo ioctl that is used reports the partition
|
||||
start in multiple of 512 byte sectors but the blocksize
|
||||
that is used is the physical blocksize of 4k and
|
||||
therefore the calculated partition start does not
|
||||
match. For device mapper targets the zipl-helper script
|
||||
is used that adjusts the partition start correctly to
|
||||
the physical blocksize.
|
||||
Solution: Adjust the partition start depending on the physical
|
||||
blocksize.
|
||||
Reproduction: Use zipl to install a bootloader on a SCSI disk with 4k
|
||||
physical blocksize and without usage of a device mapper
|
||||
target.
|
||||
Upstream-ID: 4a3957fab5696cc410c5b495956859a424e3552a
|
||||
Problem-ID: 191696
|
||||
|
||||
Upstream-Description:
|
||||
|
||||
zipl: fix reading 4k disk's geometry
|
||||
|
||||
On 4k SCSI disks zipl stores wrong values to 'scsi_mbr.program_table_pointer',
|
||||
which makes system unbootable.
|
||||
This happens in 'zipl/src/disk.c:656':
|
||||
|
||||
```
|
||||
/* Convert file system block to physical */
|
||||
*physical = mapped * phy_per_fs + subblock;
|
||||
/* Add partition start */
|
||||
*physical += info->geo.start;
|
||||
|
||||
```
|
||||
|
||||
So 'hd_geometry.start' should be adjusted before being used.
|
||||
|
||||
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1918723
|
||||
Closes: https://github.com/ibm-s390-linux/s390-tools/pull/107
|
||||
Signed-off-by: Nikita Dubrovskii <nikita@linux.ibm.com>
|
||||
Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
|
||||
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
|
||||
|
||||
|
||||
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
|
||||
---
|
||||
zipl/src/disk.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
--- a/zipl/src/disk.c
|
||||
+++ b/zipl/src/disk.c
|
||||
@@ -444,6 +444,9 @@ type_determined:
|
||||
}
|
||||
/* Convert device size to size in physical blocks */
|
||||
data->phy_blocks = devsize / (data->phy_block_size / 512);
|
||||
+ /* Adjust start on SCSI according to block_size. device-mapper devices are skipped */
|
||||
+ if (data->type == disk_type_scsi && target->targetbase == NULL)
|
||||
+ data->geo.start = data->geo.start / (data->phy_block_size / 512);
|
||||
if (data->partnum != 0)
|
||||
data->partition = stats.st_rdev;
|
||||
/* Try to get device name */
|
@ -1,3 +1,16 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 8 20:52:57 UTC 2021 - Mark Post <mpost@suse.com>
|
||||
|
||||
- Added s390-tools-sles15sp3-zipl-fix-4k-scsi-ipl.patch (bsc#1183039)
|
||||
IPL is not working when bootloader is installed on a SCSI disk
|
||||
with 4k physical blocksize without using a devicemapper target.
|
||||
- Added s390-tools-sles15sp3-remove-no-pie-link-arguments.patch so
|
||||
that we can build on systems with binutils 2.36 and higher. Without
|
||||
this, the build fails because that version of the ld command
|
||||
doesn't recognize "-no-pie" an acceptable argument.
|
||||
- Updated the mkdump.pl script to make the name of the temporary
|
||||
configuration file in /tmp/ unpredictable. (bsc#1182876)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Feb 27 23:07:46 UTC 2021 - Mark Post <mpost@suse.com>
|
||||
|
||||
|
@ -98,6 +98,7 @@ Patch8: s390-tools-sles15sp3-02-genprotimg-fix-two-memory-leaks.patch
|
||||
Patch9: s390-tools-sles15sp3-03-genprotimg-require-argument-for-ramdisk-and-parmfile.patch
|
||||
Patch10: s390-tools-sles15sp3-04-genprotimg-add-host-key-document-verification-suppor.patch
|
||||
Patch11: s390-tools-sles15sp3-zkey-Fix-APQN-property-names.patch
|
||||
Patch12: s390-tools-sles15sp3-zipl-fix-4k-scsi-ipl.patch
|
||||
|
||||
# SUSE patches
|
||||
Patch900: s390-tools-sles12-zipl_boot_msg.patch
|
||||
@ -113,6 +114,7 @@ Patch909: 59-dasd.rules-wait_for.patch
|
||||
Patch910: s390-tools-sles12-fdasd-skip-partition-check-and-BLKRRPART-ioctl.patch
|
||||
Patch911: s390-tools-sles15sp1-11-zdev-Do-not-call-zipl-on-initrd-update.patch
|
||||
Patch912: s390-tools-sles15sp3-check-return-code-from-util_file_read_l.patch
|
||||
Patch913: s390-tools-sles15sp3-remove-no-pie-link-arguments.patch
|
||||
|
||||
BuildRequires: curl-devel
|
||||
BuildRequires: dracut
|
||||
|
Loading…
Reference in New Issue
Block a user