SHA256
1
0
forked from pool/s390-tools

Accepting request 931286 from Base:System

- Upgraded to version 2.19.0 (jsc#SLE-18324)
  * v2.19.0 (2021-11-10)__
    Add new tools / libraries:
    - chreipl-fcp-mpath: New toolset that uses multipath information to change
      the configured FCP re-IPL path on detecting issues with the current path
    Changes of existing tools:
    - dbginfo.sh: Add retry timeout and remove possible blocking "blockdev --report"
    - dbginfo.sh: Collect config- and debug-data for chreipl-fcp-mpath
    - hsci: Add support for multiple MAC addresses
    Bug Fixes:
    - lshwc: Fix compile error for gcc <8.1
    - zdump: Various clean-ups and fixes
    - ziomon: Correct throughput calculation in ziorep_printers
    - zipl: Fix segmentation fault when setting stage3_parms
  * v2.18.0 (2021-10-01)__
    Add new tools:
    - scripts: Add tool for parsing sclp s390dbf logs
    - zdev: Add udev rule helper tool
    - zipl-editenv: Add tool to operate with zIPL environment installed in the boot record
    Changes of existing tools:
    - Makefile: Fix order of build of libraries for parallel builds
    - dbginfo.sh: Add collection in area of timedate, coredump and --check option
    - dbginfo.sh: Add exception on dump2tar for /sys/kernel/mm/page_idle/bitmap
    - dbginfo.sh: Cleanup of outdated sections and general code rework
    - dbginfo.sh: Collect zipl boot menu entries from boot loader specification
    - lszcrypt: Add support for vfio-ap status field
    - lszcrypt: Improved output for deconfig cards and queues
    - lszfcp: Add linkdown case to host marker of extended output
    - zdev: Add auto-config for PCI and crypto devices
    - zdump: Introduce multi-level message logging
    - zipl: Add support for environment block interpretation
    - zkey-cryptsetup: Support LUKS2 volumes with integrity support enabled
    Bug Fixes:
    - hsavmcore: Avoid recompilation of overlay during install step
    - libkmipclient: Fix parsing of hex values for XML and JSON encoding
    - vmur/vmur.cpp: Fix error handling on transfer failure
    - zdump: Lots of smaller fixes across the board
  * v2.17.0 (2021-07-07)__
    Add new tools / libraries:
    - hsavmcore: New utility to make the dump process with kdump more efficient
    - libkmipclient: Add KMIP client shared library
    - libseckey: Add a secure key library
    - lshwc: New tool to extract and list complete counter sets
    Changes of existing tools:
    - genprotimg: Add '--(enable|disable)-pckmo' options
    - genprotimg: Add OpenSSL 3.0 support
    - genprotimg: Change plaintext control flags defaults so PCKMO functions are allowed
    - libutil: Introduce multi-level message logging (util_log)
    - libutil: Introduce util_arch module
    - udev/dasd: Change DASD udev-rule to set none scheduler
    - zdsfs: Add transparent codepage conversion
    - zkey: Add support for KMIP-based key management systems
    Bug Fixes:
    - ttyrun-getty: Avoid conflicts with serial-getty@
    - dbginfo: add /proc/kallsyms - refresh zVM, lscpu - fix WORKARCHIVE handling
    - dbginfo: add KVM data collection for server and guest - fix lszdev
    - genprotimg: Add missing return values in error paths
    - zkey: Fix conversion of CCA DATA keys to CCA CIPHER keys
    - znetconf: avoid conflict with "chzdev -e"
  * v2.16.0 (2021-02-19)__
    Add new tool:
    - hsci: New tool to manage HSCI (HiperSockets Converged Interfaces)
    Changes of existing tools:
    - genprotimg: Add host-key document verification support
    - genprotimg: boot: Make boot loader -march=z900 compatible
    - libekmfweb: Make install directory for shared libraries configurable
    - lsdasd: Add FC Endpoint Security information
    - make: Add address sanitizer support
    - netboot: Add version information to scripts
    - netboot: Bump busybox version in pxelinux.0 build
    - zdev: Add FC Endpoint Security information for DASD devices
    - zdev: Add build option to update initial RAM-disk by default
    - zkey-ekmfweb: Avoid sequence number clash when generating keys
    - zkey/zkey-ekmfweb: Install KMS plugins into configurable location
    - zkey: Add support to store LUKS2 dummy passphrase in key repository
    Bug Fixes:
    - dasdfmt: Fix segfault when an incorrect option is specified
    - genprotimg: Fix several build issues
    - genprotimg: Require argument for 'ramdisk' and 'parmfile' options
    - zcryptstats: Fix handling of partial results with many domains
    - zfcpdbf: Deal with crash 7.2.9 change in caller name formatting
    - zipl/boot: Fix memory use after free in stage2
    - zipl/boot: Fix potential heap overflow in stage2
    - zipl: Fix reading 4k disk's geometry
- Removed the following obsolete patches
  * s390-tools-sles15sp3-dasdfmt-Fix-segfault-when-an-incorrect-option-is-spe.patch
  * s390-tools-sles15sp3-libutil-Compare-proc-entries-to-vfstype.patch
  * s390-tools-sles15sp3-01-zdev-Add-FC-Endpoint-Security-information-for-DASD-d.patch
  * s390-tools-sles15sp3-02-lsdasd-Add-FC-Endpoint-Security-information.patch
  * s390-tools-sles15sp3-hsci-Add-new-tool-to-control-HiperSockets-Converged-.patch
  * s390-tools-sles15sp3-zcryptstats-Fix-handling-of-partial-results-with-man.patch
  * s390-tools-sles15sp3-01-genprotimg-abort-if-one-of-the-recursive-targets-is-.patch
  * s390-tools-sles15sp3-02-genprotimg-fix-two-memory-leaks.patch
  * s390-tools-sles15sp3-03-genprotimg-require-argument-for-ramdisk-and-parmfile.patch
  * s390-tools-sles15sp3-04-genprotimg-add-host-key-document-verification-suppor.patch
  * s390-tools-sles15sp3-zkey-Fix-APQN-property-names.patch
  * s390-tools-sles15sp3-zipl-fix-4k-scsi-ipl.patch
  * s390-tools-sles15sp3-dasd-change-DASD-udev-rule-to-set-none-scheduler.patch
  * s390-tools-sles15sp3-check-return-code-from-util_file_read_l.patch  
- Removed an obsolete "export ROOT_BUILD_DIR" statement from the spec file.
- Removed unnecessary defattr statements in the files section.
- Updated the spec file to correspond to the changes made to the
  location and name of the kernel image in the kernel-zfcpdump
  package (bsc#1189841)
- Did some spec file cleanup based on the recommendations from
  spec-cleaner.

OBS-URL: https://build.opensuse.org/request/show/931286
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/s390-tools?expand=0&rev=41
This commit is contained in:
Dominique Leuenberger 2021-11-15 14:26:19 +00:00 committed by Git OBS Bridge
commit cb493329ea
25 changed files with 325 additions and 3677 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8dc1180031018756ccd5acf6c26c4175bcac79e512e8a2ea8569fdf5d3f9bd6c
size 1390556

3
s390-tools-2.19.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:17dc163e6a1e940f895c64955c130058600e1df834e1ab134410be7266ef724a
size 1681093

View File

@ -27,7 +27,7 @@ index 4503d3e..f04dc3d 100644
if (!anc->silent)
printf("rereading partition table...\n");
- if (dasd_reread_partition_table(options.device, 1) != 0) {
- if (dasd_reread_partition_table(options.device, 5) != 0) {
+ rc = dasd_reread_partition_table(options.device, 1);
+ if (rc == EINVAL && !anc->force_virtual) {
fdasd_error(anc, unable_to_ioctl, "Error while rereading "

View File

@ -1,6 +1,6 @@
--- s390-tools-1.24.1/zipl/boot/menu.c 2013-12-18 11:11:45.000000000 -0500
+++ s390-tools-1.24.1/zipl/boot/menu.c 2013-12-18 11:59:18.000000000 -0500
@@ -167,8 +167,11 @@
@@ -168,8 +168,11 @@
/* print config list */
menu_list();

View File

@ -1,38 +0,0 @@
Subject: [PATCH] [FEAT VS2010] genprotimg: abort if one of the recursive targets is failing
From: Marc Hartmayer <mhartmay@linux.ibm.com>
Summary: genprotimg: add host-key document verification
Description: Add host-key document verification support to genprotimg. This
ensures that a host-key document is genuine and provided by
IBM. For this the user must provide the IBM Z signing key, the
intermediate CA certificate (signed by the root CA used) so a
chain of trust starting from the host-key document and ending in
the root CA can be established.
Upstream-ID: 6db7fbe0187042f44a63a5c7dbeb9f116909d02e
Problem-ID: VS2010
Upstream-Description:
genprotimg: abort if one of the recursive targets is failing
Abort compilation as soon as one of the recursive targets is failing.
Fixes: 65b9fc442c1a ("genprotimg: introduce new tool for the creation of PV images")
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Index: s390-tools-service/genprotimg/Makefile
===================================================================
--- s390-tools-service.orig/genprotimg/Makefile
+++ s390-tools-service/genprotimg/Makefile
@@ -21,7 +21,7 @@ clean: clean-recursive
$(RECURSIVE_TARGETS):
@target=`echo $@ |sed s/-recursive//`; \
for d in $(SUBDIRS); do \
- $(MAKE) -C $$d $$target; \
+ $(MAKE) -C $$d $$target || exit 1; \
done
.PHONY: all install clean $(RECURSIVE_TARGETS)

View File

@ -1,47 +0,0 @@
Subject: [PATCH] [FEAT IO1812] zdev/lsdasd: Add FC Endpoint Security information
From: Jan Hoeppner <hoeppner@linux.ibm.com>
Summary: zdev/lsdasd: Add FC Endpoint Security information
Description: Provide the status of the FC Endpoint Security information via the
long output of lsdasd for online Base and Alias devices.
Upstream-ID: -
Problem-ID: IO1812
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
---
zdev/src/dasd.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
--- a/zdev/src/dasd.c
+++ b/zdev/src/dasd.c
@@ -313,6 +313,22 @@ static struct attrib dasd_attr_safe_offl
.writeonly = 1,
};
+static struct attrib dasd_attr_fc_security = {
+ .name = "fc_security",
+ .title = "Show FC Endpoint Security state of DASD device",
+ .desc =
+ "This read-only attribute shows the Fibre Channel Endpoint Security\n"
+ "status of the connection to the DASD device:\n"
+ " Unsupported : The DASD device does not support Fibre Channel\n"
+ " Endpoint Security\n"
+ " Inconsistent : The operational channel paths of the DASD device\n"
+ " report inconsistent Fibre Channel Endpoint\n"
+ " Security status\n"
+ " Authentication: The connection has been authenticated\n"
+ " Encryption : The connection is encrypted\n",
+ .readonly = 1,
+};
+
/*
* DASD subtype methods.
*/
@@ -617,6 +633,7 @@ struct subtype dasd_subtype_eckd = {
&dasd_attr_reservation_policy,
&dasd_attr_last_known_reservation_state,
&dasd_attr_safe_offline,
+ &dasd_attr_fc_security,
&internal_attr_early,
),
.unknown_dev_attribs = 1,

View File

@ -1,56 +0,0 @@
Subject: [PATCH] [FEAT VS2010] genprotimg: fix two memory leaks
From: Marc Hartmayer <mhartmay@linux.ibm.com>
Summary: genprotimg: add host-key document verification
Description: Add host-key document verification support to genprotimg. This
ensures that a host-key document is genuine and provided by
IBM. For this the user must provide the IBM Z signing key, the
intermediate CA certificate (signed by the root CA used) so a
chain of trust starting from the host-key document and ending in
the root CA can be established.
Upstream-ID: db6f272607842a6279fee589fb101f3a1f6148f3
Problem-ID: VS2010
Upstream-Description:
genprotimg: fix two memory leaks
==1005844== HEAP SUMMARY:
==1005844== in use at exit: 18,907 bytes in 14 blocks
==1005844== total heap usage: 82 allocs, 68 frees, 32,529 bytes allocated
==1005844==
==1005844== 136 (104 direct, 32 indirect) bytes in 1 blocks are definitely lost in loss record 12 of 14
==1005844== at 0x483885A: calloc (vg_replace_malloc.c:760)
==1005844== by 0x48C950D: g_malloc0 (gmem.c:132)
==1005844== by 0x100EC41: pv_args_new (pv_args.c:364)
==1005844== by 0x100587F: main (genprotimg.c:122)
==1005844==
==1005844== LEAK SUMMARY:
==1005844== definitely lost: 104 bytes in 1 blocks
==1005844== indirectly lost: 32 bytes in 1 blocks
==1005844== possibly lost: 0 bytes in 0 blocks
==1005844== still reachable: 18,771 bytes in 12 blocks
==1005844== suppressed: 0 bytes in 0 blocks
==1005844== Reachable blocks (those to which a pointer was found) are not shown.
==1005844== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==1005844==
==1005844== For lists of detected and suppressed errors, rerun with: -s
==1005844== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Index: s390-tools-service/genprotimg/src/genprotimg.c
===================================================================
--- s390-tools-service.orig/genprotimg/src/genprotimg.c
+++ s390-tools-service/genprotimg/src/genprotimg.c
@@ -177,5 +177,7 @@ error:
rmdir_recursive(tmp_dir, NULL);
remove_signal_handler(signals, G_N_ELEMENTS(signals));
g_free(tmp_dir);
+ g_clear_pointer(&img, pv_img_free);
+ g_clear_pointer(&args, pv_args_free);
exit(ret);
}

View File

@ -1,58 +0,0 @@
Subject: [PATCH] [FEAT IO1812] zdev/lsdasd: Add FC Endpoint Security information
From: Jan Hoeppner <hoeppner@linux.ibm.com>
Summary: zdev/lsdasd: Add FC Endpoint Security information
Description: Provide the status of the FC Endpoint Security information via the
long output of lsdasd for online Base and Alias devices.
Upstream-ID: -
Problem-ID: IO1812
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
---
zconf/lsdasd | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
--- a/zconf/lsdasd
+++ b/zconf/lsdasd
@@ -387,6 +387,7 @@ function extended()
read EXTSZ 2> /dev/null < $DEVPATH/extent_pool/extent_size
read CAPACITY 2> /dev/null < $DEVPATH/capacity/logical_capacity
read ALLOCATED 2> /dev/null < $DEVPATH/capacity/space_allocated
+ read FC_SEC 2> /dev/null < $DEVPATH/fc_security
# convert to hexadecimal values
PIM=0x$PIM
@@ -521,7 +522,7 @@ function extended()
elif [[ "$ALIAS" == 1 ]]; then
if [[ "$BASEONLY" == "false" ]]; then
ACTIVE="alias"
- printf "%s:%s:%s# status:\t\t\t\t%s# type: \t\t\t\t%s# use_diag:\t\t\t\t%s# readonly:\t\t\t\t%s# eer_enabled:\t\t\t\t%s# erplog:\t\t\t\t%s# hpf:\t\t\t\t\t%s # uid: \t\t\t\t%s# paths_installed: \t\t\t%s %s %s %s %s %s %s %s# paths_in_use: \t\t\t%s %s %s %s %s %s %s %s# paths_non_preferred: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_cabling: \t\t%s %s %s %s %s %s %s %s# paths_cuir_quiesced: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_hpf_characteristics: \t%s %s %s %s %s %s %s %s# paths_error_threshold_exceeded: \t%s %s %s %s %s %s %s %s#\n" \
+ printf "%s:%s:%s# status:\t\t\t\t%s# type: \t\t\t\t%s# use_diag:\t\t\t\t%s# readonly:\t\t\t\t%s# eer_enabled:\t\t\t\t%s# erplog:\t\t\t\t%s# hpf:\t\t\t\t\t%s # uid: \t\t\t\t%s# fc_security: \t\t\t\t%s# paths_installed: \t\t\t%s %s %s %s %s %s %s %s# paths_in_use: \t\t\t%s %s %s %s %s %s %s %s# paths_non_preferred: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_cabling: \t\t%s %s %s %s %s %s %s %s# paths_cuir_quiesced: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_hpf_characteristics: \t%s %s %s %s %s %s %s %s# paths_error_threshold_exceeded: \t%s %s %s %s %s %s %s %s#\n" \
"$SORTKEYLEN" "$SORTKEY" \
"$BUSID" \
"$ACTIVE" \
@@ -532,6 +533,7 @@ function extended()
"$ERP" \
"$HPF" \
"$DEV_UID" \
+ "$FC_SEC" \
"${INSTALLED_PATHS[@]}" \
"${USED_PATHS[@]}" \
"${NP_PATHS[@]}" \
@@ -563,7 +565,7 @@ function extended()
DISCIPLINE="${DISCIPLINE} (ESE)"
fi
- printf "%s:%s:%s/%s/%s%s%s# status:\t\t\t\t%s# type: \t\t\t\t%s# blksz:\t\t\t\t%s# size: \t\t\t\t%s# blocks:\t\t\t\t%s# extent_size:\t\t\t\t%s# logical_capacity:\t\t\t%s# space_allocated:\t\t\t%s# use_diag:\t\t\t\t%s# readonly:\t\t\t\t%s# eer_enabled:\t\t\t\t%s# erplog:\t\t\t\t%s# hpf:\t\t\t\t\t%s# uid: \t\t\t\t%s# paths_installed: \t\t\t%s %s %s %s %s %s %s %s# paths_in_use: \t\t\t%s %s %s %s %s %s %s %s# paths_non_preferred: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_cabling: \t\t%s %s %s %s %s %s %s %s# paths_cuir_quiesced: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_hpf_characteristics: \t%s %s %s %s %s %s %s %s# paths_error_threshold_exceeded: \t%s %s %s %s %s %s %s %s#\n" \
+ printf "%s:%s:%s/%s/%s%s%s# status:\t\t\t\t%s# type: \t\t\t\t%s# blksz:\t\t\t\t%s# size: \t\t\t\t%s# blocks:\t\t\t\t%s# extent_size:\t\t\t\t%s# logical_capacity:\t\t\t%s# space_allocated:\t\t\t%s# use_diag:\t\t\t\t%s# readonly:\t\t\t\t%s# eer_enabled:\t\t\t\t%s# erplog:\t\t\t\t%s# hpf:\t\t\t\t\t%s# uid: \t\t\t\t%s# fc_security: \t\t\t\t%s# paths_installed: \t\t\t%s %s %s %s %s %s %s %s# paths_in_use: \t\t\t%s %s %s %s %s %s %s %s# paths_non_preferred: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_cabling: \t\t%s %s %s %s %s %s %s %s# paths_cuir_quiesced: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_hpf_characteristics: \t%s %s %s %s %s %s %s %s# paths_error_threshold_exceeded: \t%s %s %s %s %s %s %s %s#\n" \
"$SORTKEYLEN" "$SORTKEY" \
"$BUSID" \
"$BLOCKNAME" \
@@ -584,6 +586,7 @@ function extended()
"$ERP" \
"$HPF" \
"$DEV_UID" \
+ "$FC_SEC" \
"${INSTALLED_PATHS[@]}" \
"${USED_PATHS[@]}" \
"${NP_PATHS[@]}" \

View File

@ -1,49 +0,0 @@
Subject: [PATCH] [FEAT VS2010] genprotimg: require argument for 'ramdisk' and 'parmfile' options
From: Marc Hartmayer <mhartmay@linux.ibm.com>
Summary: genprotimg: add host-key document verification
Description: Add host-key document verification support to genprotimg. This
ensures that a host-key document is genuine and provided by
IBM. For this the user must provide the IBM Z signing key, the
intermediate CA certificate (signed by the root CA used) so a
chain of trust starting from the host-key document and ending in
the root CA can be established.
Upstream-ID: 895a88b2f8d775e45ab1251f0b4bb275efd44a64
Problem-ID: VS2010
Upstream-Description:
genprotimg: require argument for 'ramdisk' and 'parmfile' options
A argument is required for the optional options 'ramdisk' and
'parmfile'.
Fixes: 65b9fc442c1a ("genprotimg: introduce new tool for the creation of PV images")
Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com>
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Index: s390-tools-service/genprotimg/src/pv/pv_args.c
===================================================================
--- s390-tools-service.orig/genprotimg/src/pv/pv_args.c
+++ s390-tools-service/genprotimg/src/pv/pv_args.c
@@ -227,7 +227,7 @@ gint pv_args_parse_options(PvArgs *args,
.arg_description = _("IMAGE") },
{ .long_name = "ramdisk",
.short_name = 'r',
- .flags = G_OPTION_FLAG_OPTIONAL_ARG | G_OPTION_FLAG_FILENAME,
+ .flags = G_OPTION_FLAG_FILENAME,
.arg = G_OPTION_ARG_CALLBACK,
.arg_data = cb_add_component,
.description = _("Use RAMDISK as the initial RAM disk\n" INDENT
@@ -235,7 +235,7 @@ gint pv_args_parse_options(PvArgs *args,
.arg_description = _("RAMDISK") },
{ .long_name = "parmfile",
.short_name = 'p',
- .flags = G_OPTION_FLAG_OPTIONAL_ARG | G_OPTION_FLAG_FILENAME,
+ .flags = G_OPTION_FLAG_FILENAME,
.arg = G_OPTION_ARG_CALLBACK,
.arg_data = cb_add_component,
.description = _("Use the kernel parameters stored in PARMFILE\n" INDENT

View File

@ -63,7 +63,7 @@ index e7fc501..07c674b 100644
#include "lib/dasd_base.h"
#include "lib/dasd_sys.h"
@@ -81,6 +82,7 @@
@@ -81,6 +82,7 @@ static struct dasdfmt_globals {
int mode_specified;
int ese;
int no_discard;
@ -71,7 +71,7 @@ index e7fc501..07c674b 100644
} g = {
.dasd_info = { 0 },
};
@@ -105,6 +107,11 @@
@@ -105,6 +107,11 @@ static struct util_opt opt_vec[] = {
.desc = "Perform complete format check on device",
.flags = UTIL_OPT_FLAG_NOSHORT,
},
@ -83,7 +83,7 @@ index e7fc501..07c674b 100644
UTIL_OPT_SECTION("FORMAT OPTIONS"),
{
.option = { "blocksize", required_argument, NULL, 'b' },
@@ -162,7 +170,7 @@
@@ -162,7 +169,7 @@ static struct util_opt opt_vec[] = {
.desc = "Show a progressbar",
},
{
@ -92,16 +92,7 @@ index e7fc501..07c674b 100644
.desc = "Show progress in percent",
},
UTIL_OPT_SECTION("MISC"),
@@ -297,7 +305,7 @@
p_old = p_new;
barlength = cyl * 33 / cylinders;
for (i = 1; i <= barlength; i++)
- printf("#");
+ printf("%d|", g.procnum);
for (i = barlength + 1; i <= 33; i++)
printf("-");
printf("|%3d%%", p_new);
@@ -311,7 +318,7 @@
@@ -311,7 +318,7 @@ static void draw_progress(int cyl, unsig
}
if (g.print_hashmarks && (cyl / g.hashstep - hashcount) != 0) {
@ -110,7 +101,7 @@ index e7fc501..07c674b 100644
fflush(stdout);
hashcount++;
}
@@ -1560,7 +1568,11 @@
@@ -1560,7 +1567,11 @@ int main(int argc, char *argv[])
char *reqsize_param_str = NULL;
char *hashstep_str = NULL;
@ -123,7 +114,7 @@ index e7fc501..07c674b 100644
/* Establish a handler for interrupt signals. */
signal(SIGTERM, program_interrupt_signal);
@@ -1623,7 +1635,7 @@
@@ -1623,7 +1634,7 @@ int main(int argc, char *argv[])
g.print_hashmarks = 1;
}
break;
@ -132,7 +123,7 @@ index e7fc501..07c674b 100644
if (!(g.print_hashmarks || g.print_progressbar))
g.print_percentage = 1;
break;
@@ -1682,6 +1694,9 @@
@@ -1682,6 +1693,9 @@ int main(int argc, char *argv[])
case OPT_NODISCARD:
g.no_discard = 1;
break;
@ -142,7 +133,7 @@ index e7fc501..07c674b 100644
case OPT_CHECK:
g.check = 1;
break;
@@ -1733,15 +1748,35 @@
@@ -1733,15 +1747,35 @@ int main(int argc, char *argv[])
if (numdev > 1 && g.labelspec)
error("Specifying a volser to be written doesn't make sense when formatting multiple DASD volumes.");

View File

@ -60,7 +60,18 @@ index 6dd28fa..5b6023a 100644
UTIL_OPT_SECTION("MISC"),
{
.option = { "check_host_count", no_argument, NULL, 'C' },
@@ -392,7 +397,7 @@ static void evaluate_format_error(format
@@ -318,7 +323,9 @@ static void draw_progress(int cyl, unsig
}
if (g.print_hashmarks && (cyl / g.hashstep - hashcount) != 0) {
- printf("%d|", g.procnum);
+ if (g.yast_mode)
+ printf("%d|", g.procnum);
+ else printf("#");
fflush(stdout);
hashcount++;
}
@@ -392,7 +399,7 @@ static void evaluate_format_error(format
unsigned int kl = 0;
int blksize = cdata->expect.blksize;
@ -69,7 +80,7 @@ index 6dd28fa..5b6023a 100644
printf("\n");
/*
@@ -780,8 +785,9 @@ static void check_hashmarks(void)
@@ -780,8 +787,9 @@ static void check_hashmarks(void)
g.hashstep = 10;
}
@ -81,7 +92,7 @@ index 6dd28fa..5b6023a 100644
}
}
@@ -1462,17 +1468,19 @@ static void do_format_dasd(volume_label_
@@ -1462,17 +1470,19 @@ static void do_format_dasd(volume_label_
break;
}
@ -104,18 +115,45 @@ index 6dd28fa..5b6023a 100644
printf("ok\n");
}
}
@@ -1548,6 +1556,10 @@
@@ -1548,6 +1558,7 @@ void process_dasd(volume_label_t *orig_v
error("%s", str);
set_geo(&cylinders, &heads);
+ if (g.yast_mode) {
+ printf("%d\n", cylinders);
+ fflush(stdout);
+ }
+
set_label(&vlabel, &format_params, cylinders);
if (g.check)
@@ -1693,6 +1703,10 @@ int main(int argc, char *argv[])
@@ -1557,6 +1568,29 @@ void process_dasd(volume_label_t *orig_v
}
+static void yast_print_cylinfo(const char *dev_filename)
+{
+ unsigned int cylinders = -1u;
+ int fd;
+ dasd_information2_t dasd_info;
+ struct dasd_eckd_characteristics *characteristics;
+
+ fd = open(dev_filename, O_RDONLY);
+ if ((fd != -1) && ( ! ioctl(fd, BIODASDINFO2, &dasd_info))) {
+
+ characteristics = (struct dasd_eckd_characteristics *) &dasd_info.characteristics;
+ if (characteristics->no_cyl == LV_COMPAT_CYL && characteristics->long_no_cyl)
+ cylinders = characteristics->long_no_cyl;
+ else
+ cylinders = characteristics->no_cyl;
+ }
+
+ if (fd != -1)
+ close(fd);
+ printf("%u\n", cylinders);
+ fflush(stdout);
+}
+
int main(int argc, char *argv[])
{
volume_label_t vlabel;
@@ -1693,6 +1727,10 @@ int main(int argc, char *argv[])
case OPT_NODISCARD:
g.no_discard = 1;
break;
@ -126,6 +164,41 @@ index 6dd28fa..5b6023a 100644
case 'P':
max_parallel = atoi(optarg);
break;
@@ -1728,6 +1766,21 @@ int main(int argc, char *argv[])
reqsize = DEFAULT_REQUESTSIZE;
}
+/* If -Y (YaST mode) was specified by the caller, then we need to suppress
+ * most of all the other output that might be generated. But, we _do_ want
+ * hashmarks printed so that YaST can track what's going on. If it wasn't
+ * specified on the command line, set it to a default of 10 cylinders.
+ */
+ if (g.yast_mode) {
+ g.verbosity = 0;
+ g.print_progressbar = 0;
+ g.print_percentage = 0;
+ if (! g.print_hashmarks) {
+ g.print_hashmarks = 1;
+ hashstep_str = "10";
+ }
+ }
+
if (g.print_hashmarks)
PARSE_PARAM_INTO(g.hashstep, hashstep_str, 10, "hashstep");
@@ -1747,6 +1800,12 @@ int main(int argc, char *argv[])
if (numdev > 1 && g.labelspec)
error("Specifying a volser to be written doesn't make sense when formatting multiple DASD volumes.");
+ if (g.yast_mode) {
+ for (numproc = 0; numproc < numdev; numproc++)
+ yast_print_cylinfo(g.dev_path_array[numproc]);
+
+ }
+
for (numproc = 0; numproc < numdev; numproc++) {
chpid = fork();
if (chpid == -1 )
--
1.7.12.4

View File

@ -52,7 +52,7 @@ index 5b6023a..cdd80df 100644
UTIL_OPT_SECTION("FORMAT OPTIONS"),
{
.option = { "blocksize", required_argument, NULL, 'b' },
@@ -1627,6 +1631,12 @@
@@ -1649,6 +1653,12 @@
}
g.layout_specified = 1;
break;

View File

@ -1,12 +0,0 @@
--- a/libdasd/dasd_sys.c 2020-10-28 10:31:59.000000000 -0400
+++ b/libdasd/dasd_sys.c 2021-02-27 17:41:04.937023501 -0500
@@ -218,7 +218,8 @@
return 0;
path = util_path_sysfs("bus/ccw/devices/%s/host_access_count", busid);
- util_file_read_l(&value, 10, path);
+ if (util_file_read_l(&value, 10, path) == -1)
+ value=0;
free(path);
return value;

View File

@ -1,52 +0,0 @@
Subject: [PATCH] [BZ 192049] udev/dasd: change DASD udev-rule to set none scheduler
From: Stefan Haberland <sth@linux.ibm.com>
Description: dasd: change default scheduler to reduce CPU consumption
Symptom: CPU consumption up to 20% higher for mq-deadline
compared to none scheduler for DASD devices with no
difference in throughput.
Problem: Performance analysis showed that with recent DASD
device drivers using multi-queue block queuing the
throughput of mq-deadline and none scheduler is nearly
identical but the CPU consumption of mq-deadline
scheduler due to its optimizations is up to 20% higher
compared to none scheduler.
Solution: Set none scheduler as default in the DASD udev rule.
Reproduction: Use DASD devices with mq-deadline scheduler.
Upstream-ID: a65bc51cf4e5c1fe628bb182cc1a02ee83eb102d
Problem-ID: 192049
Upstream-Description:
udev/dasd: change DASD udev-rule to set none scheduler
Performance evaluation showed that using the mq-deadline scheduler for DASD
devices leads to a significantly higher CPU consumption compared to using
none scheduler while having the same amount of throughput.
Setting none scheduler as default in the dasd udev rule.
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
Reviewed-by: Jan Hoeppner <hoeppner@linux.ibm.com>
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
---
etc/udev/rules.d/59-dasd.rules | 8 ++++++++
1 file changed, 8 insertions(+)
--- a/etc/udev/rules.d/59-dasd.rules
+++ b/etc/udev/rules.d/59-dasd.rules
@@ -26,10 +26,10 @@
LABEL="dasd_symlinks_end"
-# on device add set request queue scheduler to deadline
+# on device add set request queue scheduler to none
SUBSYSTEM!="block", GOTO="sched_end"
ACTION!="change", GOTO="sched_end"
-KERNEL=="dasd*[!0-9]", TEST=="queue/scheduler", ATTR{queue/scheduler}="deadline"
+KERNEL=="dasd*[!0-9]", TEST=="queue/scheduler", ATTR{queue/scheduler}="none"
LABEL="sched_end"

View File

@ -1,34 +0,0 @@
From 148d3f9b64da599adf453baf65e7a8596e2e7d97 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20H=C3=B6ppner?= <hoeppner@linux.ibm.com>
Date: Mon, 2 Nov 2020 09:09:51 +0100
Subject: [PATCH] dasdfmt: Fix segfault when an incorrect option is specified
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When specifying an incorrect program option, dasdfmt segfaults as the
format string for the corresponding error message has no parameter.
Add the missing parameter to fix this.
Fixes: 732b3dddab84 ("dasdfmt: Replace ERRMSG_EXIT macro with an error handling function")
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
---
dasdfmt/dasdfmt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dasdfmt/dasdfmt.c b/dasdfmt/dasdfmt.c
index a424f3c..5665f64 100644
--- a/dasdfmt/dasdfmt.c
+++ b/dasdfmt/dasdfmt.c
@@ -1637,7 +1637,7 @@ int main(int argc, char *argv[])
/* End of options string - start of devices list */
break;
default:
- error("Try '%s --help' for more information.");
+ error("Try '%s --help' for more information.", prog_name);
}
if (rc == -1)
--
2.26.2

View File

@ -23,7 +23,7 @@ diff --git a/dasdfmt/dasdfmt.c b/dasdfmt/dasdfmt.c
index e1877ac..f03cbad 100644
--- a/dasdfmt/dasdfmt.c
+++ b/dasdfmt/dasdfmt.c
@@ -619,7 +619,7 @@
@@ -621,7 +621,7 @@
*/
static void check_disk(void)
{
@ -32,7 +32,7 @@ index e1877ac..f03cbad 100644
bool ro;
err = dasd_is_ro(g.dev_node, &ro);
@@ -629,6 +629,23 @@
@@ -631,6 +631,23 @@
if (ro)
error("Disk %s is read only!", g.dev_path);
if (!g.force) {

View File

@ -1,633 +0,0 @@
From ef090dda8333a778cb2d9e7f65ca8021e2ae9e67 Mon Sep 17 00:00:00 2001
From: Karsten Graul <kgraul@linux.ibm.com>
Date: Tue, 10 Nov 2020 12:07:03 +0100
Subject: [PATCH] hsci: Add new tool to control HiperSockets Converged
Interfaces
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
hsci is used to control and show HSCI (HiperSockets Converged Interfaces)
settings. A HiperSockets interface and an external network interface are
converged to an HSCI interface.
Signed-off-by: Alexandra Winter <wintera@linux.ibm.com>
Signed-off-by: Wenjia Zhang <wenjia@linux.ibm.com>
Reviewed-by: Jan Hoeppner <hoeppner@linux.ibm.com>
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
---
Makefile | 2 +-
README.md | 3 +
hsci/Makefile | 16 ++
hsci/hsci | 441 ++++++++++++++++++++++++++++++++++++++++++++++++++
hsci/hsci.8 | 100 ++++++++++++
5 files changed, 561 insertions(+), 1 deletion(-)
create mode 100644 hsci/Makefile
create mode 100755 hsci/hsci
create mode 100644 hsci/hsci.8
diff --git a/Makefile b/Makefile
index cc277b8e..cfbbd950 100644
--- a/Makefile
+++ b/Makefile
@@ -9,7 +9,7 @@ TOOL_DIRS = zipl zdump fdasd dasdfmt dasdview tunedasd \
vmconvert vmcp man mon_tools dasdinfo vmur cpuplugd ipl_tools \
ziomon iucvterm hyptop cmsfs-fuse qethqoat zfcpdump zdsfs cpumf \
systemd hmcdrvfs cpacfstats zdev dump2tar zkey netboot etc zpcictl \
- genprotimg lsstp
+ genprotimg lsstp hsci
SUB_DIRS = $(LIB_DIRS) $(TOOL_DIRS)
diff --git a/README.md b/README.md
index aa2188a5..581353fd 100644
--- a/README.md
+++ b/README.md
@@ -249,6 +249,9 @@ Package contents
Management Foundation - Web Edition, and is used to manage keys in an
enterprise.
+ * hsci:
+ Manage HiperSockets Converged Interfaces (HSCI).
+
For more information refer to the following publications:
* "Device Drivers, Features, and Commands" chapter "Useful Linux commands"
diff --git a/hsci/Makefile b/hsci/Makefile
new file mode 100644
index 00000000..6f7474c5
--- /dev/null
+++ b/hsci/Makefile
@@ -0,0 +1,16 @@
+include ../common.mak
+
+all:
+
+install: hsci
+ $(SED) -e 's/%S390_TOOLS_VERSION%/$(S390_TOOLS_RELEASE)/' \
+ < hsci >$(DESTDIR)$(BINDIR)/hsci; \
+ chown $(OWNER).$(GROUP) $(DESTDIR)$(BINDIR)/hsci; \
+ chmod 755 $(DESTDIR)$(BINDIR)/hsci; \
+ $(INSTALL) -d -m 755 $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)/man8
+ $(INSTALL) -g $(GROUP) -o $(OWNER) -m 644 hsci.8 \
+ $(DESTDIR)$(MANDIR)/man8
+
+clean:
+
+.PHONY: all install clean
diff --git a/hsci/hsci b/hsci/hsci
new file mode 100755
index 00000000..9a56aa0d
--- /dev/null
+++ b/hsci/hsci
@@ -0,0 +1,441 @@
+#!/bin/bash
+#
+# hsci - Tool to manage HiperSockets Converged Interfaces (HSCI)
+#
+# Copyright IBM Corp. 2020
+#
+# s390-tools is free software; you can redistribute it and/or modify
+# it under the terms of the MIT license. See LICENSE for details.
+#
+
+hsdev=""
+ndev=""
+hsci=""
+hsdev_mac=""
+hsif_pnetid=""
+netif_pnetid=""
+hsci_pnetid=""
+
+function usage {
+cat <<-EOD
+Usage: hsci COMMAND [OPTION]
+
+This tool is designed to control and show HSCI (HiperSockets Converged
+Interfaces) settings. A HiperSockets interface and an external network
+
+COMMANDS
+ add HIPERSOCKETS_DEV NET_DEV Adds an HSCI interface
+ del HSCI_NAME Deletes an HSCI interface
+ show Lists the configured HSCI interfaces
+
+OPTIONS:
+ -v, --version Prints the version number of the hsci tool and exits
+ -h, --help Displays the help information for the command
+EOD
+}
+
+function prereqs_check {
+ if ! [ -x "$(command -v ip)" ]; then
+ echo "Error: No iproute2 installed on this system" >&2
+ return 1
+ fi
+}
+
+function check_pnetids {
+ # get PNETID of the HS
+ local hsif_pnetids=""
+ local netif_pnetids=""
+
+ if [ -e /sys/class/net/$hsdev/device/util_string ]; then
+ hsif_pnetids="$(cat /sys/class/net/$hsdev/device/util_string | tr -d '\000' | iconv -f IBM-1047 -t ASCII)"
+ else
+ if [ -e /sys/class/net/$hsdev/device/chpid ]; then
+ chpid="$(cat /sys/class/net/$hsdev/device/chpid | tr [:upper:] [:lower:])"
+ hsif_pnetids="$(cat /sys/devices/css0/chp0.$chpid/util_string | tr -d '\000' | iconv -f IBM-1047 -t ASCII)"
+ fi
+ fi
+ if [ "$hsif_pnetids" != "" ]; then
+ port_hsif="$(cat /sys/class/net/$hsdev/dev_port)"
+ (( idx=16*$port_hsif+1 ))
+ (( end=$idx+15 ))
+ hsif_pnetid="$(echo "$hsif_pnetids" | cut -c $idx-$end | tr -d ' ')"
+ fi
+
+ # get PNETID of the NET_DEV
+ if [ -e /sys/class/net/$ndev/device/util_string ]; then
+ netif_pnetids="$(cat /sys/class/net/$ndev/device/util_string | tr -d '\000' | iconv -f IBM-1047 -t ASCII)"
+ else
+ if [ -e /sys/class/net/$ndev/device/chpid ]; then
+ chpid="$(cat /sys/class/net/$ndev/device/chpid | tr [:upper:] [:lower:])"
+ netif_pnetids="$(cat /sys/devices/css0/chp0.$chpid/util_string | tr -d '\000' | iconv -f IBM-1047 -t ASCII)"
+ fi
+ fi
+ if [ "$netif_pnetids" != "" ]; then
+ port_netif="$(cat /sys/class/net/$ndev/dev_port)"
+ (( idx=16*$port_netif+1 ))
+ (( end=$idx+15 ))
+ netif_pnetid="$(echo "$netif_pnetids" | cut -c $idx-$end | tr -d ' ')"
+ fi
+
+ #Check PNETIDs
+ if [ "$hsif_pnetid" != "" ] && [ "$netif_pnetid" != "" ] && [ "$netif_pnetid" != "$hsif_pnetid" ]; then
+ echo "Error: $hsdev and $ndev have different PNETIDs! They are $hsif_pnetid and $netif_pnetid respectively" >&2
+ return 1
+ fi
+
+ if [ "$hsif_pnetid" != "" ] && [ "$netif_pnetid" != "" ] && [ "$netif_pnetid" == "$hsif_pnetid" ]; then
+ hsci_pnetid=$hsif_pnetid
+ fi
+}
+
+function verify_precon {
+ echo "Verifying net dev $ndev and HiperSockets dev $hsdev"
+
+ if [ ! -e /sys/class/net/$hsdev ]; then
+ echo "Error: $hsdev does not exist" >&2
+ return 1
+ fi
+ if [ "$(cat /sys/class/net/$hsdev/device/card_type)" != "HiperSockets" ]; then
+ echo "Error: $hsdev is not a HiperSockets device" >&2
+ return 1
+ fi
+ if [ "$(cat /sys/class/net/$hsdev/device/layer2)" != "1" ]; then
+ echo "Error: $hsdev is not in layer 2 mode" >&2
+ return 1
+ fi
+ if [ ! -e /sys/class/net/$hsdev/device/vnicc/bridge_invisible ]; then
+ echo "Error: Missing vnic-characteristics support" >&2
+ return 1
+ fi
+ if [ "$(cat /sys/class/net/$hsdev/device/vnicc/bridge_invisible)" == "n/a" ]; then
+ echo "Error: $hsdev does not support vnicc" >&2
+ return 1
+ fi
+ if [ $(ip link show $hsdev | grep UP | wc -l) -eq 0 ]; then
+ echo "Error: $hsdev is not in state UP" >&2
+ return 1
+ fi
+ if [ $(bridge -d link show dev $hsdev self | grep learning_sync | wc -l) -eq 0 ]; then
+ echo "Error: $hsdev does not support attribute learning_sync" >&2
+ return 1
+ fi
+ if [ $(ip link show $hsdev | grep master | wc -l) -ne 0 ]; then
+ echo "Error: $hsdev is already a bridge port" >&2
+ return 1
+ fi
+
+ #Pre-verify net_dev
+ if [ ! -e /sys/class/net/$ndev ]; then
+ echo "Error: $ndev does not exist" >&2
+ return 1
+ fi
+ if [ "$(cat /sys/class/net/$ndev/device/card_type)" == "HiperSockets" ]; then
+ echo "Error: $ndev is also a HiperSockets device" >&2
+ return 1
+ fi
+ if [ $(ip link show $ndev | grep UP | wc -l) -eq 0 ]; then
+ echo "Error: $ndev is not in state UP" >&2
+ return 1
+ fi
+ if [ $(ip link show $ndev | grep master | wc -l) -ne 0 ]; then
+ echo "Error: $ndev is already a bridge port" >&2
+ return 1
+ fi
+
+ #Check PNETIDs
+ check_pnetids
+ if [ $? -ne 0 ]; then
+ return $?
+ fi
+
+ return 0
+}
+
+function clean_up {
+ bridge link set dev $hsdev learning_sync off self >/dev/null 2>&1
+ echo 0 > /sys/class/net/$hsdev/device/vnicc/bridge_invisible >/dev/null 2>&1
+ bridge fdb del $hsdev_mac dev $ndev >/dev/null 2>&1
+ ip link del $hsci >/dev/null 2>&1
+}
+
+##############################################################################
+## add a new HSCI interface
+##############################################################################
+function add_hsci {
+
+ if [ $# != 2 ]; then
+ echo "hsci: Invalid parameters" >&2
+ echo "Use 'hsci --help' for more information" >&2
+ return 1
+ fi
+ hsdev=$1
+ ndev=$2
+
+ #### Verify preconditions
+ verify_precon
+ if [ $? -ne 0 ]; then
+ return $?
+ fi
+
+ hsci_postfix="$(readlink /sys/class/net/$hsdev/device/cdev0 | tail -c5)"
+ hsci=hsci$hsci_postfix
+
+ echo "Adding $hsci with a HiperSockets dev $hsdev and an external dev $ndev"
+
+ #### Create bridge
+ ip link add name $hsci type bridge stp_state 0 >/dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Error: Could not create a bridge" >&2
+ return 1
+ fi
+
+ #### Prepare hsdev
+ # Set VNICC of hsdev to invisible
+ #(mandatory for co-existence with HS-OSA bridges!)
+ echo 1 > /sys/class/net/$hsdev/device/vnicc/bridge_invisible
+
+ #### Create bridge ports
+ ip link set dev $ndev master $hsci >/dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Error: Could not set master for $ndev" >&2
+ clean_up
+ return 1
+ fi
+ ip link set dev $hsdev master $hsci >/dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Error: Could not set master for $hsdev" >&2
+ clean_up
+ return 1
+ fi
+
+ # no forwarding between ndev and hsdev -> isolated on
+ # ndev is default for outgoing unknown targets -> flood on
+ # no need to learn external LAN targets into fdb -> learning off
+ bridge link set dev $ndev isolated on learning off flood on mcast_flood on >/dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Error: Failed to set bridge attributes on $ndev" >&2
+ clean_up
+ return 1
+ fi
+
+ # no forwarding between ndev and hsdev -> isolated on
+ # fdb will be populated by dev-to-bridge-notification, no need to learn
+ # -> learning off
+ # only send to hsdev, if listed in fdb -> flood off
+ # don't send MC/BC on hsdev -> mcast_flood off
+ bridge link set dev $hsdev isolated on learning off flood off mcast_flood off >/dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Error: Failed to set bridge attributes on $hsdev" >&2
+ clean_up
+ return 1
+ fi
+
+ # NOTE: Although not required, BCs will be sent out on hsdev.
+ # NOTE: We need to receive BCs on hsdev, as z/OS HSCI does ARP requests on HS.
+
+ hsdev_mac="$(cat /sys/class/net/$hsdev/address)"
+ echo "Set $hsdev MAC $hsdev_mac on $ndev and $hsci"
+
+ # set HS MAC on OSA as secondary MAC
+ bridge fdb add $hsdev_mac dev $ndev >/dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Error: Failed to set HS MAC on OSA as secondary MAC" >&2
+ clean_up
+ return 1
+ fi
+
+ # set HS MAC (common MAC) on HSCI as primary MAC
+ ip link set address $hsdev_mac dev $hsci >/dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Error: Failed to set HiperSockets MAC (common MAC) on HSCI as primary MAC" >&2
+ clean_up
+ return 1
+ fi
+
+ # use hsdev MTU
+ if [ -e /sys/class/net/$hsdev/mtu ]; then
+ hs_mtu="$(cat /sys/class/net/$hsdev/mtu)"
+ ip link set dev $hsci mtu $hs_mtu >/dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Error: Failed to set MTU for $hsci " >&2
+ clean_up
+ return 1
+ fi
+ fi
+ ip link set dev $hsci up >/dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Error: Failed to set $hsci up" >&2
+ clean_up
+ return 1
+ fi
+
+ # Turn on device for bridge notification
+ bridge link set dev $hsdev learning_sync on self >/dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Error: Failed to turn on device for bridge notification" >&2
+ clean_up
+ return 1
+ fi
+ echo "Successfully added HSCI interface $hsci"
+ return 0
+}
+
+##############################################################################
+## Delete HSCI
+##############################################################################
+
+function del_hsci {
+ if [ $# != 1 ]; then
+ echo "hsci: invalid parameters" >&2
+ echo "Use 'hsci --help' for more information" >&2
+ return 1
+ fi
+ hsci=$1
+ if [ $(ip link show dev $hsci | wc -l) -eq 0 ]; then
+ echo "Error: $hsci does not exit" >&2
+ return 1
+ fi
+ if [ $(ip link show | grep "master $hsci" | wc -l) -eq 0 ]; then
+ echo "Error: $hsci is not an active HSCI interface" >&2
+ return 1
+ fi
+
+ bports="$(ip link show | grep "master $hsci" | awk '{print $2}')"
+ for bport in $bports; do
+ if [ $(bridge -d link show dev $bport | grep "learning_sync on" | wc -l) -ne 0 ]; then
+ hsdev=${bport%:}
+ else
+ ndev=${bport%:}
+ fi
+ done
+ if [ "$hsdev" == "" ]; then
+ echo "Error: $hsci has no active HiperSockets port" >&2
+ return 1
+ fi
+ echo "Deleting HSCI interface $hsci with the HiperSockets $hsdev and the external $ndev"
+
+ bridge link set dev $hsdev learning_sync off self >/dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Error: Failed to turn off learning_sync on $hsdev" >&2
+ return 1
+ fi
+ echo 0 > /sys/class/net/$hsdev/device/vnicc/bridge_invisible
+
+ hsdev_mac="$(cat /sys/class/net/$hsdev/address)"
+ echo "Deleting $hsev MAC $hsdev_mac on $ndev"
+ bridge fdb del $hsdev_mac dev $ndev >/dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Error: Failed to delete $hsev MAC $hsdev_mac on $ndev" >&2
+ return 1
+ fi
+
+ ip link del $hsci >/dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Error: Failed to delete $hsci" >&2
+ return 1
+ fi
+ echo "Successfully deleted device $hsci"
+
+ return 0
+}
+
+##############################################################################
+## Show HSCI
+##############################################################################
+
+function list_active {
+ hsdev=$1
+ local ext=""
+
+ hsci="$(ip link show dev $hsdev | awk '{for(x=1;x<NF;x++) if($x~/master/) print $(x+1)}')"
+ ext="$(ip link show | grep "master $hsci" | grep --invert-match $hsdev | awk '{print $2}')"
+ # remove trailing ':'
+ ndev="${ext%:}"
+
+ check_pnetids
+
+ printf '%-8s %-16s %-15s %-15s\n' "$hsci" "$hsci_pnetid" "$hsdev" "$ndev"
+
+ return 0
+}
+
+function print_header {
+ if [ $header -eq 0 ]; then
+ echo "HSCI PNET_ID HiperSockets External "
+ echo "------------------------------------------------------------"
+ fi
+}
+
+function list_one {
+ local hsnetdev=$1
+
+ if [ $(bridge -d link show dev $hsnetdev | grep "learning_sync on" | wc -l) -ne 0 ]; then
+ print_header
+ list_active $hsnetdev
+ fi
+
+ return 0
+}
+
+function show_hsci {
+ if [ $# != 0 ]; then
+ echo "hsci: invalid parameters" >&2
+ echo "Use 'hsci --help' for more information" >&2
+ return 1
+ fi
+ header=0
+
+ for hs_net_dev in $(ls -1 /sys/class/net/); do
+ list_one $hs_net_dev
+ done
+
+ return 0
+}
+
+#==============================================================================
+
+function print_version()
+{
+ echo "hsci utility: version %S390_TOOLS_VERSION%"
+ echo "Copyright IBM Corp. 2020"
+}
+
+##############################################################################
+##### Main
+##############################################################################
+prereqs_check
+
+args="$(getopt -u -o hv -l help,version -- $*)"
+[ $? -ne 0 ] && exit 2
+set -- $args
+while true; do
+ case $1 in
+ -v | --version)
+ print_version
+ exit 0
+ ;;
+ -h | --help)
+ usage
+ exit 0
+ ;;
+ --)
+ ;;
+ add) shift
+ add_hsci "$@"
+ exit $?
+ ;;
+ del) shift
+ del_hsci "$@"
+ exit $?
+ ;;
+ show) shift
+ show_hsci "$@"
+ exit $?
+ ;;
+ *) echo "hsci: Please specify a valid command or option" >&2
+ echo "Use 'hsci --help' for more information" >&2
+ exit 1
+ esac
+ shift
+done
+
diff --git a/hsci/hsci.8 b/hsci/hsci.8
new file mode 100644
index 00000000..fc170532
--- /dev/null
+++ b/hsci/hsci.8
@@ -0,0 +1,100 @@
+.\" Copyright IBM Corp. 2020
+
+.TH HSCI 8 "November 2020" "s390-tools" "Linux Programmer's Manual"
+
+
+.SH NAME
+.B hsci
+\- control and show HSCI settings.
+
+
+.SH SYNOPSIS
+.B hsci add
+.I HSDEV
+.I NETDEV
+.br
+.B hsci del
+.I HSCINAME
+.br
+.B hsci show
+.br
+.B hsci [\-hv]
+
+.SH DESCRIPTION
+.BI hsci
+is used to control and show HSCI (HiperSockets Converged Interfaces) settings. A HiperSockets interface and an external network interface are converged into an HSCI interface.
+
+.SH COMMANDS
+.TP
+.B add \fIHSDEV\fR \fINETDEV\fR
+.RS .4i
+.PP
+Adds an HSCI interface
+.PP
+.I HSDEV
+is the interface name of the HiperSockets device to be converged into the HSCI interface.
+.PP
+.I NETDEV
+is the interface name of the external network device to be converged into the HSCI interface.
+.RE
+
+.TP
+.B del \fIHSCINAME\fR
+.RS .4i
+.PP
+Deletes an HSCI interface
+.PP
+.I HSCINAME
+is the name of the HSCI interface for the HiperSockets device and the external network device.
+.RE
+
+.TP
+.B show
+.RS .4i
+.PP
+Lists the configured HSCI interfaces.
+.RE
+
+.SH OPTIONS
+.TP
+.BR \-v ", " \-\-version
+Prints the version number of hsci and exits.
+.TP
+.BR \-h ", " \-\-help
+Displays the help information for the command.
+
+.SH EXIT CODES
+.TP
+.BR "0"
+The hsci command ran successfully.
+
+.TP
+.BR "1"
+An error occurred.
+
+.SH EXAMPLE
+.BR "hsci show"
+.TP
+.RB
+Lists the configured HSCI interfaces:
+.RS 1.2i
+
+HSCI PNET_ID HiperSockets External
+.br
+-----------------------------------------
+.br
+hsci8410 NET1 enc8410 encb040
+
+.RE
+
+.SH SEE ALSO
+.nf
+ip(8), bridge(8)
+.fi
+
+.SH AUTHOR
+.nf
+Written by Alexandra Winter <wintera@linux.ibm.com>
+ Wenjia Zhang <wenjia@linux.ibm.com>
+.fi
+
--
2.17.1

View File

@ -1,41 +0,0 @@
From 8ec47052397a868c0764900db69fda4a892bd512 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20H=C3=B6ppner?= <hoeppner@linux.ibm.com>
Date: Fri, 6 Nov 2020 18:47:07 +0100
Subject: [PATCH] libutil: Compare proc entries to vfstype
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Modern systems have systemd manage system mount points like sysfs which
specify 'sysfs' as a keyword for the device as there is no device
associated with this special filesystem. However, any arbitrary string
could be specified here and the determination of the sysfs mount point
would fail in such a case.
To make sure that the mount point of the sysfs is still found when
mounted with a device keyword specified other than 'sysfs', check for
the filesystem type instead, which is more specific.
Fixes: https://github.com/ibm-s390-tools/s390-tools/issues/91
Suggested-by: Mark Post <mpost@suse.com>
Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
---
libutil/util_proc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libutil/util_proc.c b/libutil/util_proc.c
index 080f831..9ac4381 100644
--- a/libutil/util_proc.c
+++ b/libutil/util_proc.c
@@ -460,7 +460,7 @@ int util_proc_mnt_get_entry(const char *file_name, const char *spec,
rc = scan_mnt_entry(&file, entry);
if (rc)
goto out_free;
- if (!strcmp(entry->spec, spec)) {
+ if (!strcmp(entry->vfstype, spec)) {
rc = 0;
goto out_free;
}
--
2.26.2

View File

@ -1,6 +1,6 @@
--- 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 @@
@@ -252,8 +252,8 @@
ifneq ($(shell $(CC_SILENT) -dumpspecs 2>/dev/null | grep -e '[^f]no-pie'),)
NO_PIE_CFLAGS := -fno-pie

View File

@ -1,73 +0,0 @@
Subject: [PATCH] [BZ 189239] zcryptstats: Fix handling of partial results with many domains
From: Ingo Franzki <ifranzki@linux.ibm.com>
Description: zcryptstats: Fix handling of partial results with many domains
Symptom: Running zcryptstats when many domains are available per cryto
card does not produce any output, and is hanging in a loop.
Problem: When many domains per card are available, then the results of
the SCDMD CHSC call may not fit into the output area, and a
partial result is returned. The further results must be
retrieved with another CHSC call. Fix the code to pass the
correct next-domain to the subsequent CHSC call of a partial
response. Otherwise the same set of domains 1 to n are retrieved
again, resulting in an infinite loop, because this will always
produce a partial result.
Solution: Fix the code to pass the correct next-domain to the subsequent
CHSC call of a partial response.
Reproduction: Run zcryptstats on a system with many domains per card.
Upstream-ID: cf2311f1f1de17435b49ba8c8697be91705ba031
Problem-ID: 189239
Upstream-Description:
zcryptstats: Fix handling of partial results with many domains
When many domains per card are available, then the results of the SCDMD
CHSC call may not fit into the output area, and a partial result is
returned. The further results must be retrieved with another CHSC call.
Fix the code to pass the correct next-domain to the subsequent CHSC call
of a partial response. Otherwise the same set of domains 1 to n are
retrieved again, resulting in an infinite loop, because this will always
produce a partial result.
Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
Reviewed-by: Harald Freudenberger <freude@linux.ibm.com>
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
---
zconf/zcrypt/zcryptstats.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
--- a/zconf/zcrypt/zcryptstats.c
+++ b/zconf/zcrypt/zcryptstats.c
@@ -1178,8 +1178,14 @@ static int get_apqn_measurement_data(uin
scdmd_area.request.header.code = 0x102d;
scdmd_area.request.header.length =
sizeof(struct chsc_scdmd_request);
- scdmd_area.request.first_drid.ap_index = card;
- scdmd_area.request.first_drid.domain_index = g.min_domain;
+ if (scdmd_area.response.p) {
+ scdmd_area.request.first_drid =
+ scdmd_area.response.crid;
+ } else {
+ scdmd_area.request.first_drid.ap_index = card;
+ scdmd_area.request.first_drid.domain_index =
+ g.min_domain;
+ }
scdmd_area.request.last_drid.ap_index = card;
scdmd_area.request.last_drid.domain_index = g.max_domain;
scdmd_area.request.s = 1;
@@ -1217,10 +1223,6 @@ static int get_apqn_measurement_data(uin
rc = process_apqn_measurement_data(&scdmd_area);
if (rc != 0)
break;
-
- if (scdmd_area.response.p)
- scdmd_area.request.first_drid =
- scdmd_area.response.crid;
} while (scdmd_area.response.p);
return rc;

View File

@ -1,64 +0,0 @@
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 */

View File

@ -1,49 +0,0 @@
Subject: [PATCH] [BZ 189965] zkey: Fix APQN property names
From: Ingo Franzki <ifranzki@linux.ibm.com>
Description: zkey: Fix KMS plugin configuration to store APQNs correctly.
Symptom: When a KMS plugin is configured with APQNs, the set of
APQNs is stored per card type, i.e. the set of CCA APQNs and
the set of EP11 APQNs is stored separately in the KMS
plugin configuration file. Unfortunately, the names of the
configuration properties are swapped, so that CCA APQNs are
stored as EP11 APQNs, and vice versa.
This does not cause any malfunction as of today, however
if this is fixed later, while a KMS plugin configuration
already exists, then the KMS plugin will fail to work once
the fix is applied. A KMS plugin reconfiguration would then
be needed to make the plugin work again.
Problem: The KMS configuration property names to store the CCA and
EP11 APQNs are incorrect, i.e. swapped.
Solution: Correct the KMS configuration property names.
Reproduction: Configure a KMS plugin with APQNs and check the KMS config
file.
Upstream-ID: 07d181e29b484108bce5ea07c1561ffb62a1b56e
Problem-ID: 189965
Upstream-Description:
zkey: Fix APQN property names
Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
---
zkey/kms.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/zkey/kms.c
+++ b/zkey/kms.c
@@ -46,8 +46,8 @@
#define KMS_CONFIG_PROP_KMS "kms"
#define KMS_CONFIG_PROP_KMS_CONFIG "config"
#define KMS_CONFIG_PROP_APQNS "apqns"
-#define KMS_CONFIG_PROP_CCA_APQNS "ep11_apqns"
-#define KMS_CONFIG_PROP_EP11_APQNS "cca_apqns"
+#define KMS_CONFIG_PROP_CCA_APQNS "cca_apqns"
+#define KMS_CONFIG_PROP_EP11_APQNS "ep11_apqns"
#define KMS_CONFIG_LOCAL "local"
#define KMS_KEY_PROP_NAME "zkey-name"

View File

@ -1,3 +1,108 @@
-------------------------------------------------------------------
Mon Nov 8 20:08:54 UTC 2021 - Mark Post <mpost@suse.com>
- Upgraded to version 2.19.0 (jsc#SLE-18324)
* v2.19.0 (2021-11-10)__
Add new tools / libraries:
- chreipl-fcp-mpath: New toolset that uses multipath information to change
the configured FCP re-IPL path on detecting issues with the current path
Changes of existing tools:
- dbginfo.sh: Add retry timeout and remove possible blocking "blockdev --report"
- dbginfo.sh: Collect config- and debug-data for chreipl-fcp-mpath
- hsci: Add support for multiple MAC addresses
Bug Fixes:
- lshwc: Fix compile error for gcc <8.1
- zdump: Various clean-ups and fixes
- ziomon: Correct throughput calculation in ziorep_printers
- zipl: Fix segmentation fault when setting stage3_parms
* v2.18.0 (2021-10-01)__
Add new tools:
- scripts: Add tool for parsing sclp s390dbf logs
- zdev: Add udev rule helper tool
- zipl-editenv: Add tool to operate with zIPL environment installed in the boot record
Changes of existing tools:
- Makefile: Fix order of build of libraries for parallel builds
- dbginfo.sh: Add collection in area of timedate, coredump and --check option
- dbginfo.sh: Add exception on dump2tar for /sys/kernel/mm/page_idle/bitmap
- dbginfo.sh: Cleanup of outdated sections and general code rework
- dbginfo.sh: Collect zipl boot menu entries from boot loader specification
- lszcrypt: Add support for vfio-ap status field
- lszcrypt: Improved output for deconfig cards and queues
- lszfcp: Add linkdown case to host marker of extended output
- zdev: Add auto-config for PCI and crypto devices
- zdump: Introduce multi-level message logging
- zipl: Add support for environment block interpretation
- zkey-cryptsetup: Support LUKS2 volumes with integrity support enabled
Bug Fixes:
- hsavmcore: Avoid recompilation of overlay during install step
- libkmipclient: Fix parsing of hex values for XML and JSON encoding
- vmur/vmur.cpp: Fix error handling on transfer failure
- zdump: Lots of smaller fixes across the board
* v2.17.0 (2021-07-07)__
Add new tools / libraries:
- hsavmcore: New utility to make the dump process with kdump more efficient
- libkmipclient: Add KMIP client shared library
- libseckey: Add a secure key library
- lshwc: New tool to extract and list complete counter sets
Changes of existing tools:
- genprotimg: Add '--(enable|disable)-pckmo' options
- genprotimg: Add OpenSSL 3.0 support
- genprotimg: Change plaintext control flags defaults so PCKMO functions are allowed
- libutil: Introduce multi-level message logging (util_log)
- libutil: Introduce util_arch module
- udev/dasd: Change DASD udev-rule to set none scheduler
- zdsfs: Add transparent codepage conversion
- zkey: Add support for KMIP-based key management systems
Bug Fixes:
- ttyrun-getty: Avoid conflicts with serial-getty@
- dbginfo: add /proc/kallsyms - refresh zVM, lscpu - fix WORKARCHIVE handling
- dbginfo: add KVM data collection for server and guest - fix lszdev
- genprotimg: Add missing return values in error paths
- zkey: Fix conversion of CCA DATA keys to CCA CIPHER keys
- znetconf: avoid conflict with "chzdev -e"
* v2.16.0 (2021-02-19)__
Add new tool:
- hsci: New tool to manage HSCI (HiperSockets Converged Interfaces)
Changes of existing tools:
- genprotimg: Add host-key document verification support
- genprotimg: boot: Make boot loader -march=z900 compatible
- libekmfweb: Make install directory for shared libraries configurable
- lsdasd: Add FC Endpoint Security information
- make: Add address sanitizer support
- netboot: Add version information to scripts
- netboot: Bump busybox version in pxelinux.0 build
- zdev: Add FC Endpoint Security information for DASD devices
- zdev: Add build option to update initial RAM-disk by default
- zkey-ekmfweb: Avoid sequence number clash when generating keys
- zkey/zkey-ekmfweb: Install KMS plugins into configurable location
- zkey: Add support to store LUKS2 dummy passphrase in key repository
Bug Fixes:
- dasdfmt: Fix segfault when an incorrect option is specified
- genprotimg: Fix several build issues
- genprotimg: Require argument for 'ramdisk' and 'parmfile' options
- zcryptstats: Fix handling of partial results with many domains
- zfcpdbf: Deal with crash 7.2.9 change in caller name formatting
- zipl/boot: Fix memory use after free in stage2
- zipl/boot: Fix potential heap overflow in stage2
- zipl: Fix reading 4k disk's geometry
- Removed the following obsolete patches
* s390-tools-sles15sp3-dasdfmt-Fix-segfault-when-an-incorrect-option-is-spe.patch
* s390-tools-sles15sp3-libutil-Compare-proc-entries-to-vfstype.patch
* s390-tools-sles15sp3-01-zdev-Add-FC-Endpoint-Security-information-for-DASD-d.patch
* s390-tools-sles15sp3-02-lsdasd-Add-FC-Endpoint-Security-information.patch
* s390-tools-sles15sp3-hsci-Add-new-tool-to-control-HiperSockets-Converged-.patch
* s390-tools-sles15sp3-zcryptstats-Fix-handling-of-partial-results-with-man.patch
* s390-tools-sles15sp3-01-genprotimg-abort-if-one-of-the-recursive-targets-is-.patch
* s390-tools-sles15sp3-02-genprotimg-fix-two-memory-leaks.patch
* s390-tools-sles15sp3-03-genprotimg-require-argument-for-ramdisk-and-parmfile.patch
* s390-tools-sles15sp3-04-genprotimg-add-host-key-document-verification-suppor.patch
* s390-tools-sles15sp3-zkey-Fix-APQN-property-names.patch
* s390-tools-sles15sp3-zipl-fix-4k-scsi-ipl.patch
* s390-tools-sles15sp3-dasd-change-DASD-udev-rule-to-set-none-scheduler.patch
* s390-tools-sles15sp3-check-return-code-from-util_file_read_l.patch
- Removed an obsolete "export ROOT_BUILD_DIR" statement from the spec file.
- Removed unnecessary defattr statements in the files section.
-------------------------------------------------------------------
Mon Oct 18 17:51:04 UTC 2021 - Mark Post <mpost@suse.com>
@ -7,6 +112,26 @@ Mon Oct 18 17:51:04 UTC 2021 - Mark Post <mpost@suse.com>
- Did some spec file cleanup based on the recommendations from
spec-cleaner.
-------------------------------------------------------------------
Fri Jun 18 20:55:06 UTC 2021 - Mark Post <mpost@suse.com>
- Reworked s390-tools-sles15sp2-Implement-Y-yast_mode.patch (yet
again). If more DASD volumes are to be formatted than are allowed
by the "maximum number to do in parallel" parameter, dasdfmt
waits until one of the child processes ends before starting another.
For YaST to be able to figure out how many cylinders a particular
DASD volume has, that information has to be output for _all_ of the
volumes, before any of the child processes are spawned.
(bsc#1187012)
-------------------------------------------------------------------
Wed May 26 21:13:23 UTC 2021 - Mark Post <mpost@suse.com>
- Modified the following patches to correct the output from the
dasdfmt command when *not* using "YaST mode." (bsc#1182816, bsc#1182820)
* s390-tools-sles15sp3-Format-devices-in-parallel.patch
* s390-tools-sles15sp3-Implement-Y-yast_mode.patch
-------------------------------------------------------------------
Thu May 6 13:59:15 UTC 2021 - Mark Post <mpost@suse.com>

View File

@ -23,7 +23,7 @@
%endif
Name: s390-tools
Version: 2.15.1
Version: 2.19.0
Release: 0
Summary: S/390 tools like zipl and dasdfmt
License: MIT
@ -87,20 +87,6 @@ Source98: zfcp_disk_configure.8
Source99: zfcp_host_configure.8
###
Patch1: s390-tools-sles15sp3-dasdfmt-Fix-segfault-when-an-incorrect-option-is-spe.patch
Patch2: s390-tools-sles15sp3-libutil-Compare-proc-entries-to-vfstype.patch
Patch3: s390-tools-sles15sp3-01-zdev-Add-FC-Endpoint-Security-information-for-DASD-d.patch
Patch4: s390-tools-sles15sp3-02-lsdasd-Add-FC-Endpoint-Security-information.patch
Patch5: s390-tools-sles15sp3-hsci-Add-new-tool-to-control-HiperSockets-Converged-.patch
Patch6: s390-tools-sles15sp3-zcryptstats-Fix-handling-of-partial-results-with-man.patch
Patch7: s390-tools-sles15sp3-01-genprotimg-abort-if-one-of-the-recursive-targets-is-.patch
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
Patch13: s390-tools-sles15sp3-dasd-change-DASD-udev-rule-to-set-none-scheduler.patch
# SUSE patches
Patch900: s390-tools-sles12-zipl_boot_msg.patch
Patch901: s390-tools-sles15-sysconfig-compatible-dumpconf.patch
@ -113,8 +99,7 @@ Patch907: s390-tools-sles15sp3-Implement-f-for-backwards-compability.patch
Patch908: s390-tools-sles15sp3-dasdfmt-retry-BIODASDINFO-if-device-is-busy.patch
Patch909: s390-tools-sles12-fdasd-skip-partition-check-and-BLKRRPART-ioctl.patch
Patch910: s390-tools-sles15sp1-11-zdev-Do-not-call-zipl-on-initrd-update.patch
Patch911: s390-tools-sles15sp3-check-return-code-from-util_file_read_l.patch
Patch912: s390-tools-sles15sp3-remove-no-pie-link-arguments.patch
Patch911: s390-tools-sles15sp3-remove-no-pie-link-arguments.patch
BuildRequires: curl-devel
BuildRequires: dracut
@ -127,8 +112,10 @@ BuildRequires: kernel-zfcpdump
BuildRequires: libcryptsetup-devel > 2.0.3
BuildRequires: libjson-c-devel
BuildRequires: libpfm-devel
BuildRequires: libxml2-devel
BuildRequires: ncurses-devel
BuildRequires: net-snmp-devel
BuildRequires: openssl-devel >= 1.1.1l
BuildRequires: pesign-obs-integration
BuildRequires: qclib-devel-static
BuildRequires: tcpd-devel
@ -211,7 +198,7 @@ on IBM Z servers.
Summary: IBM Enterprise Key Management Foundation - Web Edition client library
License: MIT
Group: Development/Libraries/C and C++
Requires: libekmfweb1
Requires: libekmfweb1 = %{version}
%description -n libekmfweb1-devel
libekmfweb1 is a client library that provides access to IBM' Enterprise Key
@ -219,6 +206,54 @@ Management Foundation Web Edition.0 EKMF Web provides efficient and
security-rich centralized key management for IBM z/OS data set encryption
on IBM Z servers.
%package -n libkmipclient1
Summary: IBM Key Management Interoperability Protocol (KMIP) client library
License: MIT
Group: System/Libraries
%description -n libkmipclient1
Key Management Interoperability Protocol (KMIP) is a client/server
communication protocol for the storage and maintenance of key,
certificate, and secret objects. This client library enables secure
creation and storage of cryptographic objects on the IBM Security Key
Lifecycle Manager server. You must configure client devices to connect
to the server for key management operations.
%package -n libkmipclient1-devel
Summary: Header files for the IBM Z KMIP client library
License: MIT
Group: Development/Libraries/C and C++
Requires: libkmipclient1 = %{version}
%description -n libkmipclient1-devel
This package provides the header files and symbolic link to the
shared library for the IBM Z KMIP client library.
%package chreipl-fcp-mpath
Summary: Use multipath information for re-IPL path failover
License: MIT
Group: System/Boot
BuildRequires: bash
BuildRequires: coreutils
## Required for build+install with ENABLE_DOC=1
#BuildRequires: pandoc
BuildRequires: sed
#BuildRequires: gawk
#BuildRequires: gzip
Requires: bash
# Required for use with HAVE_DRACUT=1
Requires: dracut
Requires: multipath-tools
Requires: udev
Requires(post): udev
%description chreipl-fcp-mpath
The chreipl-fcp-mpath toolset monitors udev events about paths to the
re-IPL volume. If the currently configured FCP re-IPL path becomes
unavailable, the toolset checks for operational paths to the same
volume. If available, it reconfigures the FCP re-IPL settings to use an
operational path.
%prep
%autosetup -p1
@ -234,7 +269,9 @@ export OPT_FLAGS="%{optflags}"
export KERNELIMAGE_MAKEFLAGS="%%{?_smp_mflags}"
%make_build \
ZFCPDUMP_DIR=%{_prefix}/lib/s390-tools/zfcpdump \
DISTRELEASE=%{release}
DISTRELEASE=%{release} \
UDEVRUNDIR=/run/udev \
HAVE_DRACUT=1
gcc -static -o read_values ${OPT_FLAGS} %{SOURCE86} -lqc
%install
@ -244,6 +281,7 @@ mkdir -p %{buildroot}%{_sysconfdir}/zkey/repository
ZFCPDUMP_DIR=%{_prefix}/lib/s390-tools/zfcpdump \
DISTRELEASE=%{release} \
SYSTEMDSYSTEMUNITDIR=%{_unitdir} \
UDEVRUNDIR=/run/udev \
HAVE_DRACUT=1
# The make install command puts things in /etc/sysconfig and not the
@ -258,8 +296,13 @@ popd
install -m 755 read_values %{buildroot}/%{_bindir}/
install -m644 -t %{buildroot}/%{_mandir}/man8 %{SOURCE87}
export ROOT_BUILD_DIR="%{_builddir}/%{name}-%{version}/zfcpdump/kernel"
# The "usrmerge" has happened in openSUSE:Factory, but not yet in SLES.
# Make sure we look for the zfcpdump kernel image in the right place.
%if 0%{?usrmerged}
install -D -m600 %{_prefix}/lib/modules/*-zfcpdump/image %{buildroot}%{_prefix}/lib/s390-tools/zfcpdump/zfcpdump-image
%else
install -D -m600 /boot/image-*-zfcpdump %{buildroot}%{_prefix}/lib/s390-tools/zfcpdump/zfcpdump-image
%endif
install -D -m644 etc/cpuplugd.conf %{buildroot}%{_sysconfdir}/cpuplugd.conf
install -D -m644 etc/udev/rules.d/40-z90crypt.rules %{buildroot}%{_prefix}/lib/udev/rules.d/40-z90crypt.rules
@ -343,7 +386,7 @@ rm -fv %{buildroot}/%{_sbindir}/chmem
find . ! -type d |
sed 's/^.//;\-/man/-s/^.*$/%doc &.gz/' > %{_builddir}/%{name}-filelist
grep -v -E 'osasnmp|*\.conf$|ekmfweb.so|ekmfweb.h' %{_builddir}/%{name}-filelist >%{_builddir}/%{name}.list
grep -v -E 'osasnmp|*\.conf$|ekmfweb.so|ekmfweb.h|kmipclient|kmip/profiles/*\.profile|chreipl-fcp-mpath' %{_builddir}/%{name}-filelist >%{_builddir}/%{name}.list
grep osasnmp[^-] %{_builddir}/%{name}-filelist >%{_builddir}/%{name}.osasnmp
touch boot/zipl/active_devices.txt
@ -435,6 +478,12 @@ grep -q '^%{_bindir}/ts-shell$' %{_sysconfdir}/shells \
%post -n libekmfweb1
ldconfig
%post -n libkmipclient1
ldconfig
%post chreipl-fcp-mpath
%udev_rules_update
%preun
%service_del_preun appldata.service
%service_del_preun cio_ignore.service
@ -466,6 +515,9 @@ ldconfig
%postun -n libekmfweb1
ldconfig
%postun -n libkmipclient1
ldconfig
# Even though SLES15+ is systemd based, the build service doesn't
# run it, so we have to make sure we can safely issue the
# systemctl command.
@ -496,7 +548,7 @@ fi
%{stop_on_removal osasnmpd}
%files -f %{_builddir}/%{name}.list
%defattr(-,root,root)
%doc README.md
%doc README.SUSE
@ -509,7 +561,10 @@ fi
%config %attr(0640,root,ts-shell) %{_sysconfdir}/iucvterm/ts-shell.conf
%config %attr(0640,root,ts-shell) %{_sysconfdir}/iucvterm/unrestricted.conf
%dir %attr(0770,root,zkeyadm) %{_sysconfdir}/zkey
%dir %attr(0770,root,zkeyadm) %{_sysconfdir}/zkey/kmip
%dir %attr(0770,root,zkeyadm) %{_sysconfdir}/zkey/kmip/profiles
%dir %attr(0770,root,zkeyadm) %{_sysconfdir}/zkey/repository
%config %{_sysconfdir}/zkey/kmip/profiles/*
%config %{_sysconfdir}/modprobe.d/90-s390-tools.conf
%config %{_sysconfdir}/cpuplugd.conf
%config %{_sysconfdir}/zkey/kms-plugins.conf
@ -540,24 +595,20 @@ fi
%exclude %{_mandir}/man8/lshmc.8.gz
%files -n osasnmpd -f %{_builddir}/%{name}.osasnmp
%defattr(-,root,root)
%{_libexecdir}/net-snmp/agents/osasnmpd
%files zdsfs
%defattr(-,root,root)
%doc CAUTION
%{_bindir}/zdsfs
%{_mandir}/man1/zdsfs.1%{?ext_man}
%files hmcdrvfs
%defattr(-,root,root)
%{_bindir}/hmcdrvfs
%{_sbindir}/lshmc
%{_mandir}/man1/hmcdrvfs.1%{?ext_man}
%{_mandir}/man8/lshmc.8%{?ext_man}
%files -n libekmfweb1
%defattr(-,root,root)
%{_libdir}/libekmfweb.so.*
%files -n libekmfweb1-devel
@ -565,4 +616,28 @@ fi
%dir %attr(755,root,root) %{_includedir}/ekmfweb
%attr(644,root,root) %{_includedir}/ekmfweb/ekmfweb.h
%files -n libkmipclient1
%{_libdir}/libkmipclient.so.*
%files -n libkmipclient1-devel
%{_libdir}/libkmipclient.so
%dir %attr(755,root,root) %{_includedir}/kmipclient
%attr(644,root,root) %{_includedir}/kmipclient/kmipclient.h
%files chreipl-fcp-mpath
%doc chreipl-fcp-mpath/README.md
## Requires build+install with ENABLE_DOC=1
#doc chreipl-fcp-mpath/README.html
%dir %{_prefix}/lib/chreipl-fcp-mpath/
%{_prefix}/lib/chreipl-fcp-mpath/*
%{_prefix}/lib/dracut/dracut.conf.d/70-chreipl-fcp-mpath.conf
%{_prefix}/lib/udev/chreipl-fcp-mpath-is-ipl-tgt
%{_prefix}/lib/udev/chreipl-fcp-mpath-is-ipl-vol
%{_prefix}/lib/udev/chreipl-fcp-mpath-is-reipl-zfcp
%{_prefix}/lib/udev/chreipl-fcp-mpath-record-volume-identifier
%{_prefix}/lib/udev/chreipl-fcp-mpath-try-change-ipl-path
%{_udevrulesdir}/70-chreipl-fcp-mpath.rules
## Requires build+install with ENABLE_DOC=1
#{_mandir}/man7/chreipl-fcp-mpath.7.gz
%changelog