s390utils/s390-tools-1.23.0-fedora.patch
Dan Horák b8434861eb - build daemons hardened (#881250)
- zipl: Use "possible_cpus" kernel parameter (#1016180)
2013-11-07 11:45:30 +01:00

223 lines
7.7 KiB
Diff

From 9b225fac81186176075f673dfe5cf8e373b2068a Mon Sep 17 00:00:00 2001
From: Dan Horak <dan@danny.cz>
Date: Sun, 20 Jul 2008 09:24:05 +0200
Subject: [PATCH 1/5] s390-tools-1.5.3-zipl-zfcpdump-2
---
common.mak | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/common.mak b/common.mak
index 44adc6e..4373da5 100644
--- a/common.mak
+++ b/common.mak
@@ -62,8 +62,8 @@ GROUP = $(shell id -gn)
export INSTROOT BINDIR LIBDIR MANDIR OWNER GROUP
# Special defines for zfcpdump
-ZFCPDUMP_DIR = /usr/local/share/zfcpdump
-ZFCPDUMP_IMAGE = zfcpdump.image
+ZFCPDUMP_DIR = /boot
+ZFCPDUMP_IMAGE = zfcpdump
ZFCPDUMP_RD = zfcpdump.rd
export ZFCPDUMP_DIR ZFCPDUMP_IMAGE ZFCPDUMP_RD
--
1.8.1.4
From a3d9221076f9eb7cc8434baac71327f786351c63 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
Date: Thu, 23 Apr 2009 11:46:01 +0200
Subject: [PATCH 2/5] s390-tools-1.8.1-fdasd-su
---
fdasd/fdasd.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/fdasd/fdasd.c b/fdasd/fdasd.c
index ba22475..f2ac417 100644
--- a/fdasd/fdasd.c
+++ b/fdasd/fdasd.c
@@ -2229,10 +2229,12 @@ static void fdasd_get_geometry (fdasd_anchor_t *anc)
if (anc->verbose) printf("disk type check : ok\n");
if (dasd_info.FBA_layout != 0) {
- snprintf(err_str, ERROR_STRING_SIZE,
- "%s is not formatted with z/OS compatible "
- "disk layout!", options.device);
- fdasd_error(anc, wrong_disk_format, err_str);
+ if (!anc->silent) {
+ snprintf(err_str, ERROR_STRING_SIZE,
+ "%s is not formatted with z/OS compatible "
+ "disk layout!", options.device);
+ fdasd_error(anc, wrong_disk_format, err_str);
+ }
}
if (anc->verbose) printf("disk layout check : ok\n");
--
1.8.1.4
From d13c754f68ea838a47b8125006b9b493cfbbb7f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
Date: Wed, 21 Aug 2013 12:13:30 +0200
Subject: [PATCH 3/5] dbginfo.sh: Avoiding exclusion list for pipes in sysfs
Description: dbginfo.sh: Avoiding exclusion list for pipes in sysfs
Symptom: The dbginfo.sh script hangs
Problem: The trace pipes for CPU tracing in sysfs can potentially block
dbginfo.
Solution: Switch over to make use of dd with the nonblock option to savely
collect the whole sysfs without keeping an exclusion list up to
date
Reproduction: Run dbginfo on a kernel that provides trace_pipe and
trace_pipe_raw
---
scripts/dbginfo.sh | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/scripts/dbginfo.sh b/scripts/dbginfo.sh
index 6d07132..0ada40b 100755
--- a/scripts/dbginfo.sh
+++ b/scripts/dbginfo.sh
@@ -181,8 +181,8 @@ fi
if test ${LINUX_SUPPORT_SYSFSDBF} -eq 1; then
if test -e /proc/s390dbf; then
PROCFILES="${PROCFILES}\
- `find /proc/s390dbf -type f -not -path \"*/raw\" -not -path \"*/flush\" 2>/dev/null`\
- "
+ `find /proc/s390dbf -type f -not -path \"*/raw\" -not -path \"*/flush\" 2>/dev/null`\
+ "
fi
fi
@@ -492,12 +492,9 @@ collect_sysfs() {
mkdir -p "${WORKPATH}${dir_name}"
done
- find /sys -noleaf -type f -perm /444 \
- -a -not -name "*trace_pipe" \
- -a -not -path "*debug/hid*/events" \
- -a -not -path "*debug/usb/usbmon/*" 2>/dev/null | while IFS= read -r file_name; do
+ find /sys -noleaf -type f -perm /444 2>/dev/null | while IFS= read -r file_name; do
echo " ${file_name}"
- cp -P --preserve=links -L --parents "${file_name}" "${WORKPATH}"
+ dd if="${file_name}" iflag=nonblock of="${WORKPATH}${file_name}"
done
if test ${debugfs_mounted} -eq 1; then
@@ -574,7 +571,7 @@ call_run_command() {
# check if command exists
if ! which "${raw_cmd}" >/dev/null 2>&1; then
- # check if command is a builtin
+ # check if command is a builtin
if ! command -v "${raw_cmd}" >/dev/null 2>&1; then
echo " WARNING: Command \"${raw_cmd}\" not available" >> "${logfile}"
echo >> "${logfile}"
@@ -722,7 +719,7 @@ environment_setup()
if test -e "${WORKDIR_BASE}${SCRIPTNAME}".lock; then
print_alreadyrunning
- exit 1
+ exit 1
else
touch "${WORKDIR_BASE}${SCRIPTNAME}".lock
fi
--
1.8.1.4
From 7d540e7f40c731092ac655d1d38af7d69ceee706 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
Date: Wed, 21 Aug 2013 12:13:58 +0200
Subject: [PATCH 4/5] zipl: Fix zipl "--force" option for DASD multi-volume
dump
Description: zipl: Fix zipl "--force" option for DASD multi-volume dump
Symptom: When specifying "--force" and afterwards the dump partition is
modified, for example by creating a swap partition, the dump
still fails with the message "Wrong signature".
Problem: The "larl" instruction was used to load an odd address which
results in an incorrect even address.
Solution: Load the correct even address.
Reproduction: 1) Create ECKD MV dump DASDs:
$ zipl -M mvdump.list --force
2) Modify partitions:
$ dd if=/dev/zero of=/dev/dasdx1
3) Create dump
-> Should work with this fix
---
zipl/boot/eckd2mvdump.S | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/zipl/boot/eckd2mvdump.S b/zipl/boot/eckd2mvdump.S
index f1cec78..529d6b3 100644
--- a/zipl/boot/eckd2mvdump.S
+++ b/zipl/boot/eckd2mvdump.S
@@ -153,7 +153,7 @@ _dump_mem_64:
.Lcheck_sign:
larl %r7,.Lforce
- tm 0(%r7),0x01 # was zipl --force specified?
+ tm 1(%r7),0x01 # was zipl --force specified?
bo .Lheaders-0b(%r13) # yes, skip signature check
llgf %r2,.Ldev_start_blk-0b(%r13) # start block of partition
lghi %r3,TMP_PAGE_START # destination of read operation
@@ -576,8 +576,9 @@ _ioblock_64:
.byte 0x85, 0x40, 0xa2, 0xa3, 0x81, 0x94, 0x97, 0xa2
.byte 0x00
-.org (MVDUMP_TOOL_SIZE - 9)
+.org (MVDUMP_TOOL_SIZE - 10)
.Lforce:
+ .byte 0x00
.byte 0x00 # is set to 0x01 by zipl -f
.Lmem_upper_limit:
.long 0xffffffff,0xffffffff # can be used for memsize=xxx
--
1.8.1.4
From 21caf0d0dc05c5e950f369f72027a203a7d3e772 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
Date: Tue, 5 Nov 2013 12:23:18 +0100
Subject: [PATCH 5/5] zipl: Use "possible_cpus" kernel parameter
Description: zipl: Use "possible_cpus" kernel parameter
Symptom: The zfcpdump system might run out-of memory.
Problem: For each possible CPU the zfcpdump kernel consumes memory for
the per-CPU data structures. Since it only runs with one CPU
this is not necessary. Because only 32 MiB are available for
zfcpdump the per-CPU data should not be allocated.
Solution: Use the kernel parameter "possible_cpus=1".
Reproduction: To verify that the fix is included check that the zipl -D output
line "kernel parmline" contains "possible_cpus=1".
---
zipl/src/bootmap.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/zipl/src/bootmap.c b/zipl/src/bootmap.c
index cc2ed16..68dffe1 100644
--- a/zipl/src/bootmap.c
+++ b/zipl/src/bootmap.c
@@ -603,10 +603,11 @@ create_dump_fs_parmline(const char* parmline, const char* root_dev,
if (!result)
return NULL;
snprintf(result, DUMP_PARAM_MAX_LEN, "%s%sroot=%s dump_part=%d "
- "dump_mem=%lld maxcpus=%d cgroup_disable=memory",
+ "dump_mem=%lld maxcpus=%d possible_cpus=%d "
+ "cgroup_disable=memory",
parmline ? parmline : "",
parmline ? " " : "", root_dev, part_num,
- (unsigned long long) mem, max_cpus);
+ (unsigned long long) mem, max_cpus, max_cpus);
result[DUMP_PARAM_MAX_LEN - 1] = 0;
return result;
}
--
1.8.1.4