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";
|
my $ZGETDUMP = "/sbin/zgetdump";
|
||||||
|
|
||||||
# temporary DASD device configuration file for Zipl
|
# temporary DASD device configuration file for Zipl
|
||||||
my $MDPATH = "/tmp/mvdump.conf";
|
my $MDPATH = "/tmp/mvdump.conf.".`mcookie`;
|
||||||
# zFCP dump dir, without a leading '/'
|
# zFCP dump dir, without a leading '/'
|
||||||
my $ZFCP_DUMP_DIR = "mydumps";
|
my $ZFCP_DUMP_DIR = "mydumps";
|
||||||
|
|
||||||
@ -386,11 +386,9 @@ sub setup_dasddump
|
|||||||
prepare_dasd(@devices);
|
prepare_dasd(@devices);
|
||||||
|
|
||||||
# create zipl device configuration file
|
# create zipl device configuration file
|
||||||
my $md_path = "/tmp/mvdump.conf";
|
|
||||||
|
|
||||||
# don't create files in debug mode
|
# don't create files in debug mode
|
||||||
unless ($OPT_DEBUG) {
|
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) {
|
for my $device (@devices) {
|
||||||
print{$file}("${device}1\n");
|
print{$file}("${device}1\n");
|
||||||
}
|
}
|
||||||
@ -398,7 +396,7 @@ sub setup_dasddump
|
|||||||
}
|
}
|
||||||
|
|
||||||
print("Creating dump record.\n");
|
print("Creating dump record.\n");
|
||||||
run_cmd("${ZIPL} -V -n -M $md_path");
|
run_cmd("${ZIPL} -V -n -M $MDPATH");
|
||||||
|
|
||||||
cleanup();
|
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>
|
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
|
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
|
Patch10: s390-tools-sles15sp3-04-genprotimg-add-host-key-document-verification-suppor.patch
|
||||||
Patch11: s390-tools-sles15sp3-zkey-Fix-APQN-property-names.patch
|
Patch11: s390-tools-sles15sp3-zkey-Fix-APQN-property-names.patch
|
||||||
|
Patch12: s390-tools-sles15sp3-zipl-fix-4k-scsi-ipl.patch
|
||||||
|
|
||||||
# SUSE patches
|
# SUSE patches
|
||||||
Patch900: s390-tools-sles12-zipl_boot_msg.patch
|
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
|
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
|
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
|
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: curl-devel
|
||||||
BuildRequires: dracut
|
BuildRequires: dracut
|
||||||
|
Loading…
Reference in New Issue
Block a user