diff --git a/.cvsignore b/.cvsignore index 535e497..cf43303 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,4 +1,4 @@ -s390-tools-1.8.1.tar.bz2 +s390-tools-1.8.2.tar.bz2 cmsfs-1.1.8c.tar.gz lib-zfcp-hbaapi-2.0.tar.gz src_vipa-2.0.4.tar.gz diff --git a/0001-s390-tools-1.8.1-common-mak.patch b/0001-s390-tools-1.5.3-zipl-zfcpdump-2.patch similarity index 72% rename from 0001-s390-tools-1.8.1-common-mak.patch rename to 0001-s390-tools-1.5.3-zipl-zfcpdump-2.patch index 222e393..c9d8a75 100644 --- a/0001-s390-tools-1.8.1-common-mak.patch +++ b/0001-s390-tools-1.5.3-zipl-zfcpdump-2.patch @@ -1,17 +1,17 @@ -From 1536e0140cbce3c8837478cfc25ea45dc3681cce Mon Sep 17 00:00:00 2001 +From 2b8336a93376953ba0ed84223264be55243ac7f8 Mon Sep 17 00:00:00 2001 From: Dan Horak Date: Sun, 20 Jul 2008 09:24:05 +0200 -Subject: [PATCH] s390-tools-1.5.3-zipl-zfcpdump-2 +Subject: [PATCH 1/9] s390-tools-1.5.3-zipl-zfcpdump-2 --- common.mak | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common.mak b/common.mak -index 62c17e2..3acb534 100644 +index 8b248f1..0a7916e 100644 --- a/common.mak +++ b/common.mak -@@ -38,8 +38,8 @@ GROUP = $(shell id -gn) +@@ -63,8 +63,8 @@ GROUP = $(shell id -gn) export INSTROOT BINDIR LIBDIR MANDIR OWNER GROUP # Special defines for zfcpdump @@ -21,7 +21,7 @@ index 62c17e2..3acb534 100644 +ZFCPDUMP_IMAGE = zfcpdump ZFCPDUMP_RD = zfcpdump.rd export ZFCPDUMP_DIR ZFCPDUMP_IMAGE ZFCPDUMP_RD - endif + -- -1.6.0.6 +1.6.3.3 diff --git a/0004-s390-tools-1.8.1-zipl-automenu.patch b/0002-s390-tools-1.8.1-zipl-automenu.patch similarity index 98% rename from 0004-s390-tools-1.8.1-zipl-automenu.patch rename to 0002-s390-tools-1.8.1-zipl-automenu.patch index f0a6412..28ff804 100644 --- a/0004-s390-tools-1.8.1-zipl-automenu.patch +++ b/0002-s390-tools-1.8.1-zipl-automenu.patch @@ -1,7 +1,7 @@ -From 1648e0dab246190c170e82244c790ef8e9144e40 Mon Sep 17 00:00:00 2001 +From 2513c0f8096c681f962d77420dac731f7bb33e44 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 23 Apr 2009 11:45:36 +0200 -Subject: [PATCH] s390-tools-1.8.1-zipl-automenu +Subject: [PATCH 2/9] s390-tools-1.8.1-zipl-automenu --- zipl/man/zipl.8 | 7 ++ @@ -29,7 +29,7 @@ index 8a83c01..6ebf240 100644 1. Scenario: prepare disk for booting a Linux kernel image using the following parameters: diff --git a/zipl/src/job.c b/zipl/src/job.c -index 2f69104..1b7bcb2 100644 +index c5c85d8..6a526e4 100644 --- a/zipl/src/job.c +++ b/zipl/src/job.c @@ -43,6 +43,7 @@ static struct option options[] = { @@ -407,10 +407,10 @@ index 9948092..caca3cf 100644 {inv, inv, inv, inv, inv, inv, inv, req, req, inv, inv, inv, inv, inv}, /* part dump */ diff --git a/zipl/src/zipl.c b/zipl/src/zipl.c -index f99177d..2a11404 100644 +index 9cb764c..4d9fd36 100644 --- a/zipl/src/zipl.c +++ b/zipl/src/zipl.c -@@ -71,6 +71,7 @@ static const char* usage_text[] = { +@@ -73,6 +73,7 @@ static const char* usage_text[] = { "-n, --noninteractive Answer all confirmation questions with 'yes'", "-V, --verbose Provide more verbose output", "-a, --add-files Add all referenced files to bootmap file", @@ -419,5 +419,5 @@ index f99177d..2a11404 100644 }; -- -1.6.0.6 +1.6.3.3 diff --git a/0005-s390-tools-1.8.1-fdasd-su.patch b/0003-s390-tools-1.8.1-fdasd-su.patch similarity index 81% rename from 0005-s390-tools-1.8.1-fdasd-su.patch rename to 0003-s390-tools-1.8.1-fdasd-su.patch index 0efa435..ac49f37 100644 --- a/0005-s390-tools-1.8.1-fdasd-su.patch +++ b/0003-s390-tools-1.8.1-fdasd-su.patch @@ -1,17 +1,17 @@ -From 0ac6c456898d8c09908a35add45d018eb8f76613 Mon Sep 17 00:00:00 2001 +From f8acd63e169cdec39c47ac0d8c1b98e115cf24a1 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 23 Apr 2009 11:46:01 +0200 -Subject: [PATCH] s390-tools-1.8.1-fdasd-su +Subject: [PATCH 3/9] s390-tools-1.8.1-fdasd-su --- fdasd/fdasd.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/fdasd/fdasd.c b/fdasd/fdasd.c -index ef01c9b..b6802f9 100644 +index aa16659..3a54968 100644 --- a/fdasd/fdasd.c +++ b/fdasd/fdasd.c -@@ -2005,10 +2005,12 @@ fdasd_get_geometry (fdasd_anchor_t *anc) +@@ -2009,10 +2009,12 @@ fdasd_get_geometry (fdasd_anchor_t *anc) if (anc->verbose) printf("disk type check : ok\n"); if (dasd_info.FBA_layout != 0) { @@ -29,5 +29,5 @@ index ef01c9b..b6802f9 100644 if (anc->verbose) printf("disk layout check : ok\n"); -- -1.6.0.6 +1.6.3.3 diff --git a/0006-s390-tools-1.8.1-fdasd-raid-lvm.patch b/0004-s390-tools-1.8.1-fdasd-raid-lvm.patch similarity index 87% rename from 0006-s390-tools-1.8.1-fdasd-raid-lvm.patch rename to 0004-s390-tools-1.8.1-fdasd-raid-lvm.patch index eff92a1..da27e0a 100644 --- a/0006-s390-tools-1.8.1-fdasd-raid-lvm.patch +++ b/0004-s390-tools-1.8.1-fdasd-raid-lvm.patch @@ -1,14 +1,14 @@ -From 9c34968b40aa5fee679abf0056255510333ae9c3 Mon Sep 17 00:00:00 2001 +From 35298f5f9512835071b8c08e843731bbfbb15b7e Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 23 Apr 2009 11:46:16 +0200 -Subject: [PATCH] s390-tools-1.8.1-fdasd-raid-lvm +Subject: [PATCH 4/9] s390-tools-1.8.1-fdasd-raid-lvm --- fdasd/fdasd.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 53 insertions(+), 12 deletions(-) diff --git a/fdasd/fdasd.c b/fdasd/fdasd.c -index b6802f9..286b0bb 100644 +index 3a54968..a526d7f 100644 --- a/fdasd/fdasd.c +++ b/fdasd/fdasd.c @@ -258,10 +258,10 @@ fdasd_error(fdasd_anchor_t *anc, enum fdasd_failure why, char *str) @@ -23,7 +23,7 @@ index b6802f9..286b0bb 100644 while (*line_ptr && !isgraph(*line_ptr)) line_ptr++; return *line_ptr; -@@ -310,6 +310,10 @@ fdasd_partition_type (char *str) +@@ -312,6 +312,10 @@ fdasd_partition_type (char *str) strcpy(str, "Linux native"); else if (strncmp("SWAP ", str, 6) == 0) strcpy(str, "Linux swap"); @@ -34,7 +34,7 @@ index b6802f9..286b0bb 100644 else strcpy(str, "unknown"); -@@ -1117,14 +1121,24 @@ fdasd_write_vtoc_labels (fdasd_anchor_t *anc) +@@ -1122,14 +1126,24 @@ fdasd_write_vtoc_labels (fdasd_anchor_t *anc) strncpy(c1, s2, 31); } else { @@ -60,7 +60,7 @@ index b6802f9..286b0bb 100644 strncpy(ch, "LINUX.V " " ", 44); -@@ -1140,10 +1154,21 @@ fdasd_write_vtoc_labels (fdasd_anchor_t *anc) +@@ -1145,10 +1159,21 @@ fdasd_write_vtoc_labels (fdasd_anchor_t *anc) strncpy(c1, dsno, 4); c1 += 4; @@ -86,7 +86,7 @@ index b6802f9..286b0bb 100644 } vtoc_ebcdic_enc(ch, ch, 44); if (anc->verbose) printf("%2x ", part_info->f1->DS1FMTID); -@@ -1429,9 +1454,10 @@ fdasd_change_part_type (fdasd_anchor_t *anc) +@@ -1433,9 +1458,10 @@ fdasd_change_part_type (fdasd_anchor_t *anc) printf("current partition type is: %s\n\n", fdasd_partition_type(str)); printf(" 1 Linux native\n" \ @@ -99,7 +99,7 @@ index b6802f9..286b0bb 100644 while (!isdigit(part_type = read_char("new partition type: "))); part_type -= 48; -@@ -1444,6 +1470,9 @@ fdasd_change_part_type (fdasd_anchor_t *anc) +@@ -1448,6 +1474,9 @@ fdasd_change_part_type (fdasd_anchor_t *anc) case 2: strncpy(str, "SWAP ", 6); break; @@ -109,7 +109,7 @@ index b6802f9..286b0bb 100644 default: printf("'%d' is not supported!\n", part_type); } -@@ -1621,7 +1650,7 @@ fdasd_process_invalid_vtoc(fdasd_anchor_t *anc) +@@ -1625,7 +1654,7 @@ fdasd_process_invalid_vtoc(fdasd_anchor_t *anc) static void fdasd_process_valid_vtoc(fdasd_anchor_t *anc, unsigned long blk) { @@ -118,7 +118,7 @@ index b6802f9..286b0bb 100644 int i, part_no, f1_size = sizeof(format1_label_t); partition_info_t *part_info = anc->first; format1_label_t f1_label; -@@ -1673,14 +1702,26 @@ fdasd_process_valid_vtoc(fdasd_anchor_t *anc, unsigned long blk) +@@ -1677,14 +1706,26 @@ fdasd_process_valid_vtoc(fdasd_anchor_t *anc, unsigned long blk) vtoc_ebcdic_enc(part_info->f1->DS1DSNAM, part_info->f1->DS1DSNAM, 44); @@ -149,5 +149,5 @@ index b6802f9..286b0bb 100644 part_info = part_info->next; f1_counter++; -- -1.6.0.6 +1.6.3.3 diff --git a/0010-s390-tools-1.8.1-defaultmenu.patch b/0005-don-t-create-automenu-when-default-menu-exists.patch similarity index 89% rename from 0010-s390-tools-1.8.1-defaultmenu.patch rename to 0005-don-t-create-automenu-when-default-menu-exists.patch index 9b70d83..1cad83c 100644 --- a/0010-s390-tools-1.8.1-defaultmenu.patch +++ b/0005-don-t-create-automenu-when-default-menu-exists.patch @@ -1,14 +1,14 @@ -From 486526858271c8ea890e8728a1cf1cceeceb9b1a Mon Sep 17 00:00:00 2001 +From 1efcfe8d7ad20f7a3f584628375da60682b4579c Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 23 Apr 2009 15:28:06 +0200 -Subject: [PATCH] don't create automenu when default menu exists +Subject: [PATCH 5/9] don't create automenu when default menu exists --- zipl/src/job.c | 25 +++++++++++++++---------- 1 files changed, 15 insertions(+), 10 deletions(-) diff --git a/zipl/src/job.c b/zipl/src/job.c -index 1b7bcb2..9fc6c2d 100644 +index 6a526e4..89c8c23 100644 --- a/zipl/src/job.c +++ b/zipl/src/job.c @@ -1441,6 +1441,8 @@ get_job_from_config_file(struct command_line* cmdline, struct job_data* job) @@ -55,5 +55,5 @@ index 1b7bcb2..9fc6c2d 100644 } else { -- -1.6.0.6 +1.6.3.3 diff --git a/0014-s390-tools-1.8.1-zipl-kdump-man.patch b/0006-s390-tools-1.8.1-zipl-kdump-man.patch similarity index 87% rename from 0014-s390-tools-1.8.1-zipl-kdump-man.patch rename to 0006-s390-tools-1.8.1-zipl-kdump-man.patch index 4945d46..cdbcf37 100644 --- a/0014-s390-tools-1.8.1-zipl-kdump-man.patch +++ b/0006-s390-tools-1.8.1-zipl-kdump-man.patch @@ -1,7 +1,7 @@ -From 815064b5e73bdeb11e85e04fb691745b15d00e99 Mon Sep 17 00:00:00 2001 +From 894de5382653e4389dc8490f2ee4a2a9c59eb86d Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 19 Jun 2009 10:01:30 +0200 -Subject: [PATCH] s390-tools-1.8.1-zipl-kdump-man +Subject: [PATCH 6/9] s390-tools-1.8.1-zipl-kdump-man Description: Add kdump kernel installation instruction to zipl man page. Symptom: User wants to prepare SCSI disk for dump, but has not installed @@ -14,7 +14,7 @@ Solution: Document that in the zipl man page. 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/zipl/man/zipl.8 b/zipl/man/zipl.8 -index 8d2b42c..66b23eb 100644 +index 6ebf240..6df6026 100644 --- a/zipl/man/zipl.8 +++ b/zipl/man/zipl.8 @@ -176,6 +176,8 @@ will be incomplete. @@ -27,5 +27,5 @@ index 8d2b42c..66b23eb 100644 .BR "\-M " " or " "--mvdump=" Install a multi-volume dump record on each device associated with one of the -- -1.6.0.6 +1.6.3.3 diff --git a/0021-s390-tools-1.8.1-lszfcp-perf.patch b/0007-s390-tools-1.8.1-lszfcp-perf.patch similarity index 76% rename from 0021-s390-tools-1.8.1-lszfcp-perf.patch rename to 0007-s390-tools-1.8.1-lszfcp-perf.patch index 209ff1c..47bd955 100644 --- a/0021-s390-tools-1.8.1-lszfcp-perf.patch +++ b/0007-s390-tools-1.8.1-lszfcp-perf.patch @@ -1,17 +1,17 @@ -From ce6dabd2c97ae9ff589232f7ff95c699a9755267 Mon Sep 17 00:00:00 2001 +From 80e1e88e108b774c7aa7c201326f1a92cf1b7e35 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Dan=20Hor=C3=A1k?= Date: Wed, 26 Aug 2009 14:21:14 +0200 -Subject: [PATCH 21/21] s390-tools-1.8.1-lszfcp-perf +Subject: [PATCH 7/9] s390-tools-1.8.1-lszfcp-perf --- zconf/lszfcp | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/zconf/lszfcp b/zconf/lszfcp -index e6fc94f..8ac66ea 100755 +index d0bf84f..a872d05 100755 --- a/zconf/lszfcp +++ b/zconf/lszfcp -@@ -231,7 +231,7 @@ show_devices() +@@ -233,7 +233,7 @@ show_devices() # Differentiate old and new sysfs layout if $FC_CLASS; then SCSI_DEVICE_LIST=`ls -d \ diff --git a/0022-fix-string-overflow-in-vtoc_volume_label_init.patch b/0008-fix-string-overflow-in-vtoc_volume_label_init.patch similarity index 84% rename from 0022-fix-string-overflow-in-vtoc_volume_label_init.patch rename to 0008-fix-string-overflow-in-vtoc_volume_label_init.patch index efb5df7..790ebad 100644 --- a/0022-fix-string-overflow-in-vtoc_volume_label_init.patch +++ b/0008-fix-string-overflow-in-vtoc_volume_label_init.patch @@ -1,7 +1,7 @@ -From 664ab55f566e46c31806b25a976dea444a7976a3 Mon Sep 17 00:00:00 2001 +From d0c06736586d8f85f2e7c64291f3f289c12a0caa Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 24 Sep 2009 09:12:39 +0200 -Subject: [PATCH] fix string overflow in vtoc_volume_label_init +Subject: [PATCH 8/9] fix string overflow in vtoc_volume_label_init Originaly it tries to copy a 84B string into 4B field and reset also the other fields thru the overflow. This doesn't work with recent GCC diff --git a/0008-s390-tools-1.8.1-ziorep-fixes.patch b/0008-s390-tools-1.8.1-ziorep-fixes.patch deleted file mode 100644 index a7e5cf0..0000000 --- a/0008-s390-tools-1.8.1-ziorep-fixes.patch +++ /dev/null @@ -1,389 +0,0 @@ -From afe16490113999868ff408ff303ac7df4b733ff5 Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Dan=20Hor=C3=A1k?= -Date: Thu, 23 Apr 2009 11:47:13 +0200 -Subject: [PATCH] s390-tools-1.8.1-ziorep-fixes - ---- - ziomon/stats.h | 9 ++++--- - ziomon/ziomon | 13 +++++++---- - ziomon/ziorep_config | 23 +++++++++++---------- - ziomon/ziorep_traffic.cpp | 31 +++++++++++++++++------------ - ziomon/ziorep_utilization.cpp | 4 +- - ziomon/ziorep_utils.cpp | 43 +++++++++++++++++++++++++++++++++++----- - 6 files changed, 82 insertions(+), 41 deletions(-) - -diff --git a/ziomon/stats.h b/ziomon/stats.h -index 1003f91..a28d436 100644 ---- a/ziomon/stats.h -+++ b/ziomon/stats.h -@@ -108,7 +108,7 @@ static inline int histlog2_index(__u64 val, struct histlog2 *h) - { - int i; - -- for (i = 0; i < (h->num - 1) && val > histlog2_upper_limit(i, h); i++); -+ for (i = 0; i < h->num && val > histlog2_upper_limit(i, h); i++); - return i; - } - -@@ -123,15 +123,16 @@ static inline void histlog2_merge(struct histlog2 *h, __u32 *dst, const __u32 *s - { - int i; - -- for (i = 0; i < h->num - 1; i++) -+ for (i = 0; i < h->num; i++) { - dst[i] += src[i]; -+ } - } - - static inline void histlog2_swap(__u32 a[], struct histlog2 *h) - { - int i; - -- for (i = 0; i < h->num - 1; i++) -+ for (i = 0; i < h->num; i++) - swap_32(a[i]); - } - -@@ -141,7 +142,7 @@ static inline void histlog2_print(const char *s, const __u32 a[], - int i; - - printf("%s:\n", s); -- for (i = 0; i < h->num - 1; i++) { -+ for (i = 0; i < h->num; i++) { - printf(" %10ld:%6d", - (unsigned long)(histlog2_upper_limit(i, h)), a[i]); - if (!((i + 1) % 4)) -diff --git a/ziomon/ziomon b/ziomon/ziomon -index 30c8adf..aa1cf78 100755 ---- a/ziomon/ziomon -+++ b/ziomon/ziomon -@@ -411,14 +411,14 @@ function check_for_multipath_devices() { - devices_basenames[$j]=""; - clean_devices; - (( i+=3 )); -- while [ "${mp_arr[$i]:0:1}" == "_" ]; do -+ while [[ ! "${mp_arr[$i]:0:1}" =~ "[0-9a-zA-Z]" ]] && [ $i -lt ${#mp_arr[@]} ]; do - checked_devs[${#checked_devs[@]}]=`echo ${mp_arr[$i]} | awk '{print "/dev/"$3}'`; - ddebug " add ${checked_devs[${#checked_devs[@]}-1]}"; -- line=${mp_arr[$i]#_*}; -+ line=${mp_arr[$i]#* }; - line=${line%%:*}; - line=`echo $line | sed 's/ //g'`; - WRP_HOST_ADAPTERS[${#WRP_HOST_ADAPTERS[@]}]="host$line"; -- WRP_LUNS[${#WRP_LUNS[@]}]=`echo ${mp_arr[$i]#_*} | awk '{print $1}'`; -+ WRP_LUNS[${#WRP_LUNS[@]}]=`echo ${mp_arr[$i]#* } | awk '{print $1}'`; - (( i++ )); - done; - (( --i )); -@@ -599,6 +599,7 @@ function check_size_requirements() { - local estimated_size; - local free_space; - local logpath=`dirname $WRP_LOGFILE`; -+ local num_uniq_devs; - - set `ziomon_mgr -e`; - util_base_sz=$1; -@@ -610,10 +611,12 @@ function check_size_requirements() { - - # NOTE: Since blktrace and ziomon_zfcpdd write messages only when there is - # traffic, the estimate is an upper boundary only -+ num_uniq_devs=`echo ${WRP_LUNS[@]} | sed 's/ /\n/g' | cut -d : -f 4 | sort | uniq | wc -l`; -+ debug "number of unique devices: $num_uniq_devs"; - debug "disk space requirements:"; - (( size_per_record = $util_base_sz + ${#WRP_HOST_ADAPTERS[@]} * $util_variable_sz + $ioerr_base_sz -- + ${#WRP_DEVICES[@]} * ( $ioerr_variable_sz + $blkiotrace_sz + $zfcpiotrace_sz ) -- + ( 2 + ${#WRP_DEVICES[@]}) * 8 )); -+ + $num_uniq_devs * ( $ioerr_variable_sz + $blkiotrace_sz + $zfcpiotrace_sz ) -+ + ( 2 + $num_uniq_devs) * 8 )); - debug " size per interval: $size_per_record Bytes"; - (( total_num_records = $WRP_DURATION / $WRP_INTERVAL )); - debug " total number of intervals: $total_num_records"; -diff --git a/ziomon/ziorep_config b/ziomon/ziorep_config -index 21094bf..de60379 100755 ---- a/ziomon/ziorep_config -+++ b/ziomon/ziorep_config -@@ -84,9 +84,10 @@ sub get_sub_ch_data - $c_src = catdir($base_dir, S_DIR2, $sub_ch, $adapter); - $sub_ch{$adapter}{lic} = get_line("lic_version"); - $sub_ch{$adapter}{gen} = get_line("card_version"); -+ $sub_ch{$adapter}{state} = get_line("online") == 1 ? "Online" : -+ "Offline"; - $c_src = catdir($base_dir, S_DIR2, $sub_ch); - $sub_ch{$adapter}{chpid} = substr(get_line("chpids"), 0, 2); -- $sub_ch{$adapter}{state} = get_line("port_state"); - } - } - -@@ -220,7 +221,7 @@ sub adapter_report - my @adapters = @_; - - foreach my $a (sort keys %sub_ch) { -- next if (@adapters && "@adapters" !~ /$a/); -+ next if (@adapters && "@adapters" !~ /\b$a\b/); - my @out_str; - push @out_str, "Host: $sub_ch{$a}{host}\n"; - push @out_str, "CHPID: $sub_ch{$a}{chpid}\n"; -@@ -252,11 +253,11 @@ sub device_report - "===============================================\n"; - } - foreach my $hctl (sort keys %devices) { -- next if (@$adapters && "@$adapters" !~ /$devices{$hctl}{hba_id}/); -- next if (@$ports && "@$ports" !~ /$devices{$hctl}{wwpn}/); -- next if (@$luns && "@$luns" !~ /$devices{$hctl}{lun}/); -- next if (@$s_devs && "@$s_devs" !~ /$devices{$hctl}{dev}/); -- next if (@$hosts && "@$hosts" !~ /$sub_ch{$devices{$hctl}{hba_id}}{host}/); -+ next if (@$adapters && "@$adapters" !~ /\b$devices{$hctl}{hba_id}\b/); -+ next if (@$ports && "@$ports" !~ /\b$devices{$hctl}{wwpn}\b/); -+ next if (@$luns && "@$luns" !~ /\b$devices{$hctl}{lun}\b/); -+ next if (@$s_devs && "@$s_devs" !~ /\b$devices{$hctl}{dev}\b/); -+ next if (@$hosts && "@$hosts" !~ /\b$sub_ch{$devices{$hctl}{hba_id}}{host}\b/); - my @out_str; - push @out_str, $devices{$hctl}{hba_id}; - push @out_str, $devices{$hctl}{wwpn}; -@@ -293,10 +294,10 @@ sub mapper_report - } - foreach my $hctl (sort keys %devices) { - next if (! $devices{$hctl}{mp_dev_mm}); -- next if (@$adapters && "@$adapters" !~ /$devices{$hctl}{hba_id}/); -- next if (@$ports && "@$ports" !~ /$devices{$hctl}{wwpn}/); -- next if (@$s_devs && "@$s_devs" !~ /$devices{$hctl}{dev}/); -- next if (@$m_devs && "@$m_devs" !~ /$mapper_dev{$devices{$hctl}{mp_dev_mm}}/); -+ next if (@$adapters && "@$adapters" !~ /\b$devices{$hctl}{hba_id}\b/); -+ next if (@$ports && "@$ports" !~ /\b$devices{$hctl}{wwpn}\b/); -+ next if (@$s_devs && "@$s_devs" !~ /\b$devices{$hctl}{dev}\b/); -+ next if (@$m_devs && "@$m_devs" !~ /\b$mapper_dev{$devices{$hctl}{mp_dev_mm}}\b/); - my @line_str; - push @line_str, $devices{$hctl}{hba_id}; - push @line_str, $devices{$hctl}{wwpn}; -diff --git a/ziomon/ziorep_traffic.cpp b/ziomon/ziorep_traffic.cpp -index 40cbf47..1461e55 100644 ---- a/ziomon/ziorep_traffic.cpp -+++ b/ziomon/ziorep_traffic.cpp -@@ -121,6 +121,7 @@ static int parse_params(int argc, char **argv, struct options *opts) - __u32 tmp32; - long long unsigned int tmp64; - long tmpl; -+ char mychar; - static struct option long_options[] = { - { "version", no_argument, NULL, 'v'}, - { "help", no_argument, NULL, 'h'}, -@@ -188,18 +189,22 @@ static int parse_params(int argc, char **argv, struct options *opts) - opts->print_summary = true; - break; - case 'c': -- rc = sscanf(optarg, "%x", &tmp32); -- if (rc != 1) { -- fprintf(stdout, "%s: Could" -+ rc = sscanf(optarg, "%x%c", &tmp32, &mychar); -+ if (rc < 1) { -+ fprintf(stderr, "%s: Could" - " not read chpid %s\n", toolname, optarg); - return -1; - } -+ if (rc > 1) { -+ fprintf(stderr, "%s: %s is not a valid chpid\n", toolname, optarg); -+ return -1; -+ } - opts->chpids.push_back(tmp32); - break; - case 'p': - rc = sscanf(optarg, "0x%Lx", &tmp64); - if (rc != 1) { -- fprintf(stdout, "%s: Could" -+ fprintf(stderr, "%s: Could" - " not read port number %s\n", toolname, optarg); - return -1; - } -@@ -208,7 +213,7 @@ static int parse_params(int argc, char **argv, struct options *opts) - case 'l': - rc = sscanf(optarg, "0x%Lx", &tmp64); - if (rc != 1) { -- fprintf(stdout, "%s: Could" -+ fprintf(stderr, "%s: Could" - " not read lun %s\n", toolname, optarg); - return -1; - } -@@ -217,11 +222,11 @@ static int parse_params(int argc, char **argv, struct options *opts) - case 'u': - rc = sscanf(optarg, "0.0.%x", &tmp32); - if (rc != 1) { -- fprintf(stdout, "%s: Could not read bus-ID" -+ fprintf(stderr, "%s: Could not read bus-ID" - " %s\n", toolname, optarg); - return -1; - } -- opts->wwpns.push_back(tmp32); -+ opts->devnos.push_back(tmp32); - break; - case 'd': - opts->devices.push_back(optarg); -@@ -313,7 +318,7 @@ static int check_opts(struct options *opts, ConfigReader **cfg) - for (list<__u32>::const_iterator i = opts->chpids.begin(); - i != opts->chpids.end(); ++i) { - if (!(*cfg)->verify_chpid(*i)) { -- fprintf(stdout, "Error: Could not find chpid 0.0.%04x in" -+ fprintf(stderr, "Error: Could not find chpid %x in" - " configuration.\n", *i); - rc = -2; - } -@@ -321,7 +326,7 @@ static int check_opts(struct options *opts, ConfigReader **cfg) - for (list<__u32>::const_iterator i = opts->devnos.begin(); - i != opts->devnos.end(); ++i) { - if (!(*cfg)->verify_devno(*i)) { -- fprintf(stdout, "Error: Could not find bus-ID 0.0.%04x in" -+ fprintf(stderr, "Error: Could not find bus-ID 0.0.%04x in" - " configuration.\n", *i); - rc = -3; - } -@@ -329,7 +334,7 @@ static int check_opts(struct options *opts, ConfigReader **cfg) - for (list<__u64>::const_iterator i = opts->wwpns.begin(); - i != opts->wwpns.end(); ++i) { - if (!(*cfg)->verify_wwpn(*i)) { -- fprintf(stdout, "Error: Could not find WWPN %016Lx in" -+ fprintf(stderr, "Error: Could not find WWPN %016Lx in" - " configuration.\n", (long long unsigned int)*i); - rc = -4; - } -@@ -337,7 +342,7 @@ static int check_opts(struct options *opts, ConfigReader **cfg) - for (list<__u64>::const_iterator i = opts->luns.begin(); - i != opts->luns.end(); ++i) { - if (!(*cfg)->verify_lun(*i)) { -- fprintf(stdout, "Error: Could not find LUN %016Lx in" -+ fprintf(stderr, "Error: Could not find LUN %016Lx in" - " configuration.\n", (long long unsigned int)*i); - rc = -5; - } -@@ -345,7 +350,7 @@ static int check_opts(struct options *opts, ConfigReader **cfg) - for (list::iterator i = opts->devices.begin(); - i != opts->devices.end(); ++i) { - if (!(*cfg)->verify_device(*i)) { -- fprintf(stdout, "Error: Could not find device %s in" -+ fprintf(stderr, "Error: Could not find device %s in" - " configuration.\n", *i); - rc = -6; - } -@@ -353,7 +358,7 @@ static int check_opts(struct options *opts, ConfigReader **cfg) - for (list::iterator i = opts->mp_devices.begin(); - i != opts->mp_devices.end(); ++i) { - if (!(*cfg)->verify_mp_device(*i)) { -- fprintf(stdout, "Error: Could not find multipath" -+ fprintf(stderr, "Error: Could not find multipath" - " device %s in configuration.\n", *i); - rc = -7; - } -diff --git a/ziomon/ziorep_utilization.cpp b/ziomon/ziorep_utilization.cpp -index a036a03..3f57a47 100644 ---- a/ziomon/ziorep_utilization.cpp -+++ b/ziomon/ziorep_utilization.cpp -@@ -167,7 +167,7 @@ static int parse_params(int argc, char **argv, struct options *opts) - case 'c': - rc = sscanf(optarg, "%x", &tmp); - if (rc != 1) { -- fprintf(stdout, "Error: Could not read chpid" -+ fprintf(stderr, "Error: Could not read chpid" - " %s\n", optarg); - return -1; - } -@@ -237,7 +237,7 @@ static int check_opts(struct options *opts, ConfigReader **cfg) - for (list<__u32>::const_iterator i = opts->chpids.begin(); - i != opts->chpids.end(); ++i) { - if (!(*cfg)->verify_chpid(*i)) { -- fprintf(stdout, "Error: Could not find chpid %x in" -+ fprintf(stderr, "Error: Could not find chpid %x in" - " configuration.\n", *i); - rc = -2; - } -diff --git a/ziomon/ziorep_utils.cpp b/ziomon/ziorep_utils.cpp -index 75a9578..715115e 100644 ---- a/ziomon/ziorep_utils.cpp -+++ b/ziomon/ziorep_utils.cpp -@@ -303,8 +303,17 @@ int adjust_timeframe(const char *filename, __u64 *begin, __u64 *end, - verbose_msg("using original interval length: %lus\n", - (long unsigned int)*interval); - } -- // now check if the interval is correct -- if (*interval != UINT32_MAX && *interval % f_hdr.interval_length) { -+ /* the exact frame boundaries don't include the length of the very -+ first interval, so we have to add one more to our calculations */ -+ if (*interval && (*end - *begin + f_hdr.interval_length) % *interval != 0) { -+ // cut off rest in case of user-set interval -+ *end -= (*end - *begin) % *interval + f_hdr.interval_length; -+ t = *end; -+ verbose_msg(" cut off at : %s", ctime(&t)); -+ } -+ -+ // check if the interval is correct -+ if (*interval % f_hdr.interval_length) { - fprintf(stderr, "%s: Data aggregation interval %lu" - " is incompatible with source data. Please use" - " a multiple of %lu and try again.\n", toolname, -@@ -392,7 +401,7 @@ int print_summary_report(FILE *fp, char *filename, ConfigReader &cfg) - rc += fprintf(fp, "Aggregated range: "); - if (a_hdr) { - rc += fprintf(fp, "%s to ", -- print_time_formatted(a_hdr->begin_time)); -+ print_time_formatted(a_hdr->begin_time - f_hdr.interval_length)); - rc += fprintf(fp, "%s\n", - print_time_formatted(a_hdr->end_time)); - } -@@ -404,7 +413,7 @@ int print_summary_report(FILE *fp, char *filename, ConfigReader &cfg) - a_hdr = NULL; - - rc += fprintf(fp, "Detailed range: %s to ", -- print_time_formatted(f_hdr.begin_time)); -+ print_time_formatted(f_hdr.begin_time - f_hdr.interval_length)); - rc += fprintf(fp, "%s\n", print_time_formatted(f_hdr.end_time)); - rc += fprintf(fp, "Interval length: %d seconds\n", - f_hdr.interval_length); -@@ -446,16 +455,32 @@ int print_summary_report(FILE *fp, char *filename, ConfigReader &cfg) - return rc; - } - -+/* Calculates seconds since 1970 _without_ caring for daylight -+ savings time (comtrary to mktime() et al). -+ It does not care for leap years and the like, which is OK, -+ since we use it in a very narrow scenario: To calculate any -+ daylight savings time related shifts. -+ Hence: Dont't use if you're not sure what you are doing... */ -+static __u64 secs_since_1970(const struct tm *t) { -+ __u64 res = 0; -+ res += t->tm_sec; -+ res += 60 * t->tm_min; -+ res += 3600 * t->tm_hour; -+ res += 86400 * t->tm_yday; -+ res += 86400 * 365 * t->tm_year; -+ -+ return res; -+} -+ - - int get_datetime_val(const char *str, __u64 *tgt) - { -- struct tm t; -+ struct tm t, t_old; - char *ret; - - // strptime only sets - memset(&t, 0, sizeof(struct tm)); - ret = strptime(str, "%Y-%m-%d %H:%M", &t); -- - if (ret == NULL || *ret != '\0') { - ret = strptime(str, "%Y-%m-%d %H:%M:%S", &t); - if (ret == NULL || *ret != '\0') { -@@ -465,7 +490,13 @@ int get_datetime_val(const char *str, __u64 *tgt) - return -1; - } - } -+ t_old = t; - *tgt = mktime(&t); -+ // if daylight savings time applies, 't' has been adjusted, -+ // so we have to correct -+ if (t_old.tm_hour != t.tm_hour) -+ *tgt -= secs_since_1970(&t) - secs_since_1970(&t_old); -+ verbose_msg("datetime value from user after translation: %s", ctime((const time_t *)tgt)); - - return 0; - } --- -1.6.0.6 - diff --git a/0023-change-default-load-address-for-ramdisk.patch b/0009-change-default-load-address-for-ramdisk.patch similarity index 86% rename from 0023-change-default-load-address-for-ramdisk.patch rename to 0009-change-default-load-address-for-ramdisk.patch index c363c81..f0b8d73 100644 --- a/0023-change-default-load-address-for-ramdisk.patch +++ b/0009-change-default-load-address-for-ramdisk.patch @@ -1,7 +1,7 @@ -From 10886e2ec85474a8b4646b725a240d388dcdccee Mon Sep 17 00:00:00 2001 +From 1697d4f40be133c78cd09fb0af14af22e8c6219e Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Dan=20Hor=C3=A1k?= Date: Sun, 4 Oct 2009 17:46:16 +0200 -Subject: [PATCH 23/25] change default load address for ramdisk +Subject: [PATCH 9/9] change default load address for ramdisk The default load address for the initial ramdisk is changed from 0x800000 to 0x2000000 to allow larger kernels to be loaded. diff --git a/0009-s390-tools-1.8.1-cflags.patch b/0009-s390-tools-1.8.1-cflags.patch deleted file mode 100644 index 9433539..0000000 --- a/0009-s390-tools-1.8.1-cflags.patch +++ /dev/null @@ -1,27 +0,0 @@ -From d2f00bb021508f8104a1d8164432e8f4d239d872 Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Dan=20Hor=C3=A1k?= -Date: Thu, 23 Apr 2009 11:47:29 +0200 -Subject: [PATCH] s390-tools-1.8.1-cflags - ---- - common.mak | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/common.mak b/common.mak -index d57b854..f0252da 100644 ---- a/common.mak -+++ b/common.mak -@@ -25,8 +25,8 @@ STRIP = $(CROSS_COMPILE)strip - OBJCOPY = $(CROSS_COMPILE)objcopy - OBJDUMP = $(CROSS_COMPILE)objdump - INSTALL = install # FIXME: We need s390-install (strip) --CFLAGS = $(OPT_FLAGS) -Wall -O3 -DS390_TOOLS_RELEASE=$(S390_TOOLS_RELEASE) --CXXFLAGS = $(OPT_FLAGS) -Wall -O3 -DS390_TOOLS_RELEASE=$(S390_TOOLS_RELEASE) -+CFLAGS = -Wall -O3 -DS390_TOOLS_RELEASE=$(S390_TOOLS_RELEASE) $(OPT_FLAGS) -+CXXFLAGS = -Wall -O3 -DS390_TOOLS_RELEASE=$(S390_TOOLS_RELEASE) $(OPT_FLAGS) - export AS LD CC CPP AR NM STRIP OBJCOPY OBJDUMP INSTALL CFLAGS - - # Support alternate install root --- -1.6.0.6 - diff --git a/0010-improve-mon_statd-init-script.patch b/0010-improve-mon_statd-init-script.patch new file mode 100644 index 0000000..0d91681 --- /dev/null +++ b/0010-improve-mon_statd-init-script.patch @@ -0,0 +1,189 @@ +From 7cd1f2254e27cae8e061d1b42fa6c78bc10a5f39 Mon Sep 17 00:00:00 2001 +From: =?utf-8?q?Dan=20Hor=C3=A1k?= +Date: Thu, 8 Oct 2009 10:29:23 +0200 +Subject: [PATCH] improve mon_statd init script + +- stop: do not print error messages if a daemon is not configured +- start: do not load module if no daemon is configured +- remove useless newlines +--- + etc/init.d/mon_statd | 113 ++++++++++++++++++++++++++++---------------------- + 1 files changed, 64 insertions(+), 49 deletions(-) + +diff --git a/etc/init.d/mon_statd b/etc/init.d/mon_statd +index 4d84b5b..60bcf00 100755 +--- a/etc/init.d/mon_statd ++++ b/etc/init.d/mon_statd +@@ -22,7 +22,6 @@ PROCD_PATH=/usr/sbin/$PROCD + CONFIG_FILE=/etc/sysconfig/$DAEMON + FSSTATD_PID_FILE=/var/run/$FSSTATD.pid + PROCD_PID_FILE=/var/run/$PROCD.pid +-RETVAL=0 + + # source function library + . /lib/lsb/init-functions +@@ -32,68 +31,81 @@ if [ -f $CONFIG_FILE ]; then + . $CONFIG_FILE + fi + +-start() ++load_kernel_module() + { + if [ ! -e /dev/monwriter ]; then + echo "Loading monwriter module..." + modprobe monwriter 2>&1 +- if [ "$?" -ne 0 ]; then ++ if [ $? -ne 0 ]; then ++ exit 1 ++ fi ++ udevsettle ++ if [ $? -ne 0 ]; then + exit 1 + fi +- while [ ! -e /dev/monwriter ]; do +- sleep 0 +- done + fi ++} + +- if [ ! -f $FSSTATD_PID_FILE -a "$FSSTAT" = "yes" ]; then +- echo -n $"Starting $FSSTATD:" +- $FSSTATD_PATH -i $FSSTAT_INTERVAL +- if [ $? == 0 ]; then ++start_daemon() ++{ ++ local daemon_name=$1 ++ local daemon_interval=$2 ++ local daemon_pid_file=$3 ++ local daemon_path=$4 ++ ++ if [ ! -f $daemon_pid_file ]; then ++ load_kernel_module ++ echo -n "Starting $daemon_name:" ++ $daemon_path -i $daemon_interval ++ if [ $? -eq 0 ]; then + touch /var/lock/subsys/mon_statd + log_success_msg + else + log_failure_msg + fi +- elif [ "$FSSTAT" = "yes" ]; then +- echo "$FSSTATD (pid $(cat $FSSTATD_PID_FILE)) is already running..." ++ else ++ echo "$daemon_name (pid $(cat $daemon_pid_file)) is already running..." ++ fi ++} ++ ++start() ++{ ++ if [ "$FSSTAT" = "yes" ]; then ++ start_daemon $FSSTATD $FSSTAT_INTERVAL $FSSTATD_PID_FILE \ ++ $FSSTATD_PATH + fi + +- if [ ! -f $PROCD_PID_FILE -a "$PROC" = "yes" ]; then +- echo -n $"Starting $PROCD:" +- $PROCD_PATH -i $PROC_INTERVAL +- if [ $? == 0 ]; then +- touch /var/lock/subsys/mon_statd +- log_success_msg +- else +- log_failure_msg +- fi +- elif [ "$PROC" = "yes" ]; then +- echo "$PROCD (pid $(cat $PROCD_PID_FILE)) is already running..." ++ if [ "$PROC" = "yes" ]; then ++ start_daemon $PROCD $PROC_INTERVAL $PROCD_PID_FILE \ ++ $PROCD_PATH + fi +- echo + } + +-stop() ++stop_daemon() + { +- echo -n $"Stopping $FSSTATD:" +- if [ -f $FSSTATD_PID_FILE ]; then +- killproc $FSSTATD_PATH -TERM ++ local daemon_name=$1 ++ local daemon_pid_file=$2 ++ local daemon_path=$3 ++ ++ echo -n "Stopping $daemon_name:" ++ if [ -f $daemon_pid_file ]; then ++ killproc $daemon_path -TERM + log_success_msg +- rm -f $FSSTATD_PID_FILE ++ rm -f $daemon_pid_file + else + log_failure_msg + fi ++} + +- echo -n $"Stopping $PROCD:" +- if [ -f $PROCD_PID_FILE ]; then +- killproc $PROCD_PATH -TERM +- log_success_msg +- rm -f $PROCD_PID_FILE +- else +- log_failure_msg ++stop() ++{ ++ if [ "$FSSTAT" = "yes" ]; then ++ stop_daemon $FSSTATD $FSSTATD_PID_FILE $FSSTATD_PATH ++ fi ++ if [ "$PROC" = "yes" ]; then ++ stop_daemon $PROCD $PROCD_PID_FILE $PROCD_PATH + fi + rm -f /var/lock/subsys/mon_statd +- echo + } + + restart() { +@@ -101,20 +113,23 @@ restart() { + start + } + +-status() ++status_daemon() + { +- if [ ! -f $FSSTATD_PID_FILE ]; then +- echo "$FSSTATD is not running." +- else +- echo "$FSSTATD (pid $(cat $FSSTATD_PID_FILE), interval: $FSSTAT_INTERVAL) is running." +- fi ++ local daemon_name=$1 ++ local daemon_pid_file=$2 ++ local daemon_interval=$3 + +- if [ ! -f $PROCD_PID_FILE ]; then +- echo "$PROCD is not running." ++ if [ ! -f $daemon_pid_file ]; then ++ echo "$daemon_name is not running." + else +- echo "$PROCD (pid $(cat $PROCD_PID_FILE), interval: $PROC_INTERVAL) is running." ++ echo "$daemon_name (pid $(cat $daemon_pid_file), interval: $daemon_interval) is running." + fi +- echo ++} ++ ++status() ++{ ++ status_daemon $FSSTATD $FSSTATD_PID_FILE $FSSTAT_INTERVAL ++ status_daemon $PROCD $PROCD_PID_FILE $PROC_INTERVAL + } + + # How are we called? +@@ -133,7 +148,7 @@ case "$1" in + ;; + *) + echo "Usage: $DAEMON {start|stop|status|restart|reload}" +- RETVAL=1 ++ exit 1 + esac + +-exit $RETVAL ++exit 0 +-- +1.6.3.3 + diff --git a/0011-s390-tools-1.8.1-execstack.patch b/0011-s390-tools-1.8.1-execstack.patch deleted file mode 100644 index e4370bf..0000000 --- a/0011-s390-tools-1.8.1-execstack.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 77f053260b9d2b4d683edfbed50a528d74620d4b Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Dan=20Hor=C3=A1k?= -Date: Fri, 24 Apr 2009 14:05:29 +0200 -Subject: [PATCH] remove the executable stack flag - ---- - zipl/src/Makefile | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/zipl/src/Makefile b/zipl/src/Makefile -index 16d5276..07b3b74 100644 ---- a/zipl/src/Makefile -+++ b/zipl/src/Makefile -@@ -12,7 +12,7 @@ includes = $(wildcard ../include/*.h) - all: zipl - - zipl: $(objects) -- $(CC) $(objects) ../boot/data.o -o zipl -+ $(CC) -Wl,-z,noexecstack $(objects) ../boot/data.o -o zipl - - %.o: %.c $(includes) Makefile - $(CC) $(CFLAGS) -c -o $@ $< --- -1.6.0.6 - diff --git a/0012-s390-tools-1.8.1-ziomon-fixes.patch b/0012-s390-tools-1.8.1-ziomon-fixes.patch deleted file mode 100644 index 2acd6dc..0000000 --- a/0012-s390-tools-1.8.1-ziomon-fixes.patch +++ /dev/null @@ -1,197 +0,0 @@ -From 1833f9dae371a48e3f52891262ad2d5fd75fc205 Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Dan=20Hor=C3=A1k?= -Date: Fri, 5 Jun 2009 14:12:52 +0200 -Subject: [PATCH] s390-tools-1.8.1-ziomon-fixes - ---- - ziomon/stats.h | 2 +- - ziomon/ziomon | 84 ++++++++++++++++++++++++++++++++++++++++++++----- - ziomon/ziomon_util.c | 2 +- - 3 files changed, 77 insertions(+), 11 deletions(-) - -diff --git a/ziomon/stats.h b/ziomon/stats.h -index a28d436..0920b27 100644 ---- a/ziomon/stats.h -+++ b/ziomon/stats.h -@@ -142,7 +142,7 @@ static inline void histlog2_print(const char *s, const __u32 a[], - int i; - - printf("%s:\n", s); -- for (i = 0; i < h->num; i++) { -+ for (i = 0; i < h->num - 1; i++) { - printf(" %10ld:%6d", - (unsigned long)(histlog2_upper_limit(i, h)), a[i]); - if (!((i + 1) % 4)) -diff --git a/ziomon/ziomon b/ziomon/ziomon -index aa1cf78..fe4d8ec 100755 ---- a/ziomon/ziomon -+++ b/ziomon/ziomon -@@ -32,7 +32,7 @@ WRP_DEVICES=(); - WRP_LUNS=(); - WRP_LOGFILE=""; - # limit of actual data in percent that need space on disk --WRP_SIZE_THRESHOLD="25"; -+WRP_SIZE_THRESHOLD="10"; - WRP_FORCE=0; - - function debug() { -@@ -234,6 +234,7 @@ function start_trace() { - local hosts_param; - local luns_param; - local i; -+ local len; - - if [ $WRP_DEBUG -ne 0 ]; then - verbose="-V"; -@@ -276,7 +277,7 @@ function start_trace() { - blkiomon_command="blkiomon --interval=$WRP_INTERVAL -Q $WRP_MSG_Q_PATH -q $WRP_MSG_Q_ID -m $WRP_MSG_Q_BLKIOMON_ID $verbose_blk -d -"; - zfcpdd_command="ziomon_zfcpdd -Q $WRP_MSG_Q_PATH -q $WRP_MSG_Q_ID -m $WRP_MSG_Q_ZIOMON_ZFCPDD_ID -i $WRP_INTERVAL"; - debug "starting blktrace: $blktrace_command | $blkiomon_command | $zfcpdd_command"; -- $blktrace_command | $blkiomon_command | $zfcpdd_command > $WRP_MSG_Q_PATH/blktrace.log & -+ $blktrace_command 2>$WRP_MSG_Q_PATH/blktrace.err | $blkiomon_command | $zfcpdd_command > $WRP_MSG_Q_PATH/blktrace.log & - i=0; - # might take a moment to start all processes in the pipe if system under load - while [ $i -lt 60 ]; do -@@ -303,7 +304,17 @@ function start_trace() { - echo "done"; - echo -n "Collecting data..."; - -- sleep $WRP_DURATION; -+ # pay extra attention to blktrace -+ for (( i=0; i<$WRP_DURATION; ++i )); do -+ len=`cat $WRP_MSG_Q_PATH/blktrace.err | wc -l`; -+ if [ $len -ne 0 ]; then -+ cat $WRP_MSG_Q_PATH/blktrace.err; -+ echo "Error: blktrace has errors, aborting"; -+ return; -+ fi -+ sleep 1; -+ done -+ - echo "done"; - } - -@@ -358,6 +369,58 @@ function emergency_shutdown() { - } - - -+function check_cpuplugd { -+ # check if cpuplugd is running -+ # If so, the whole per-cpu mechanism of blktrace gets corrupted, which -+ # results in the infamous 'bad trace magic' message -+ if [ -e /var/run/cpuplugd.pid ]; then -+ echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; -+ echo "ziomon: Warning: cpuplugd is running which can corrupt the traces."; -+ echo " It is recommended to stop cpuplugd for the duration of the"; -+ echo " trace using 'service cpuplugd stop'."; -+ echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; -+ fi -+} -+ -+ -+# we need 2MB per device and CPU -+function check_vmalloc_space() { -+ local total; -+ local used; -+ local free; -+ local num_cpus; -+ local required; -+ local result; -+ -+ num_cpus=`cat /proc/cpuinfo | grep processors | awk '{print $4}'`; -+ total=`cat /proc/meminfo | grep VmallocTotal | awk '{print $2}'`; -+ used=`cat /proc/meminfo | grep VmallocUsed | awk '{print $2}'`; -+ -+ (( free=$total-$used )); -+ (( required=$num_cpus*${#WRP_DEVICES[@]}*2048 )); -+ (( result=$free-$required )); -+ debug "Required Vmalloc space: $required KBytes"; -+ if [ $result -lt 0 ]; then -+ echo "$WRP_TOOLNAME: Not enough free Vmalloc space:"; -+ echo " Required: $required KBytes"; -+ echo " Free: $free KBytes"; -+ exit 1; -+ fi -+ -+ return 0; -+} -+ -+ -+function check_blkiomon() { -+ # check blkiomon version -+ ver=`blkiomon -V | awk '{print $3}'`; -+ if [ "$ver" != "0.2" ]; then -+ echo "$WRP_TOOLNAME: Unsupported blkiomon version $ver detected, aborting"; -+ exit 1; -+ fi -+} -+ -+ - function setup() { - while [ -e $WRP_MSG_Q_PATH ]; do - WRP_MSG_Q_PATH="$WRP_MSG_Q_PATH$RANDOM"; -@@ -476,7 +539,7 @@ function determine_host_adapters() { - local num_s_devs; - local s_dev_ratio; - -- echo -n "check devices..."; -+ echo -n "Check devices..."; - - # Estimate fraction of /dev/s* devices - if >50%, start with check for regular devices - num_s_devs=`echo ${WRP_DEVICES[@]} | sed "s/ /\n/g" | grep /dev/s | wc -l`; -@@ -599,7 +662,6 @@ function check_size_requirements() { - local estimated_size; - local free_space; - local logpath=`dirname $WRP_LOGFILE`; -- local num_uniq_devs; - - set `ziomon_mgr -e`; - util_base_sz=$1; -@@ -611,12 +673,10 @@ function check_size_requirements() { - - # NOTE: Since blktrace and ziomon_zfcpdd write messages only when there is - # traffic, the estimate is an upper boundary only -- num_uniq_devs=`echo ${WRP_LUNS[@]} | sed 's/ /\n/g' | cut -d : -f 4 | sort | uniq | wc -l`; -- debug "number of unique devices: $num_uniq_devs"; - debug "disk space requirements:"; - (( size_per_record = $util_base_sz + ${#WRP_HOST_ADAPTERS[@]} * $util_variable_sz + $ioerr_base_sz -- + $num_uniq_devs * ( $ioerr_variable_sz + $blkiotrace_sz + $zfcpiotrace_sz ) -- + ( 2 + $num_uniq_devs) * 8 )); -+ + ${#WRP_DEVICES[@]} * ( $ioerr_variable_sz + $blkiotrace_sz + $zfcpiotrace_sz ) -+ + ( 2 + ${#WRP_DEVICES[@]}) * 8 )); - debug " size per interval: $size_per_record Bytes"; - (( total_num_records = $WRP_DURATION / $WRP_INTERVAL )); - debug " total number of intervals: $total_num_records"; -@@ -653,10 +713,16 @@ setup; - - parse_params $@; - -+check_cpuplugd; -+ -+check_blkiomon; -+ - check_for_existing_output; - - determine_host_adapters; - -+check_vmalloc_space; -+ - check_size_requirements; - - [ $? -eq 0 ] && start_trace; -diff --git a/ziomon/ziomon_util.c b/ziomon/ziomon_util.c -index e3e0762..043d3d1 100644 ---- a/ziomon/ziomon_util.c -+++ b/ziomon/ziomon_util.c -@@ -597,7 +597,7 @@ static int poll_ioerr_cnt(int init, struct ioerr_data *data, - for (i=0; inum_luns; ++i) { - /* read ioerr_cnt attribute */ - if (read_attribute(opts->luns[i], line, NULL)) { -- fprintf(stderr, "%s: Warning: Could read %s\n", -+ fprintf(stderr, "%s: Warning: Could not read %s\n", - toolname, opts->luns[i]); - grc++; - continue; --- -1.6.0.6 - diff --git a/0013-s390-tools-1.8.1-zipl-fix-unsupported-device.patch b/0013-s390-tools-1.8.1-zipl-fix-unsupported-device.patch deleted file mode 100644 index 2d50dc9..0000000 --- a/0013-s390-tools-1.8.1-zipl-fix-unsupported-device.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 38dfbc2642350aba44df80b41c91ab78891ba818 Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Dan=20Hor=C3=A1k?= -Date: Tue, 16 Jun 2009 11:10:47 +0200 -Subject: [PATCH] s390-tools-1.8.1-zipl-fix-unsupported-device - -Description: zipl: zipl does not exit for an unsupported device driver. -Symptom: zipl does not exit with an error when it is run against a - target device which is provided by an unsupported device driver - (e.g. device-mapper). The resulting IPL records might be - incorrect and filesystem corruption may occur. -Problem: The device driver name check does not cause an error when the - device driver name is unknown and the device is not a - partition. -Solution: Change the device driver name check to write an error message - and to exit when it finds an unknown device driver name. -Problem-ID: 53660 ---- - zipl/src/disk.c | 20 ++------------------ - 1 files changed, 2 insertions(+), 18 deletions(-) - -diff --git a/zipl/src/disk.c b/zipl/src/disk.c -index 3a48e44..f1b98a7 100644 ---- a/zipl/src/disk.c -+++ b/zipl/src/disk.c -@@ -190,24 +190,8 @@ disk_get_info(const char* device, struct disk_info** info) - data->device = stats.st_rdev & ~SCSI_PARTN_MASK; - } else { - /* Driver name is unknown */ -- if (data->devno == -1) { -- if (data->geo.start) { -- /* Writing to the parent device of this -- * partition may not be safe so stop here. */ -- error_reason("Unsupported device driver '%s'", -- data->drv_name); -- goto out_close; -- } -- /* Assume that the first block can be overwritten -- * even if we don't now the exact device type. */ -- data->type = disk_type_scsi; -- data->partnum = 0; -- data->device = stats.st_rdev; -- } else { -- error_reason("Unsupported device driver '%s' " -- "for disk type DASD", data->drv_name); -- goto out_close; -- } -+ error_reason("Unsupported device driver '%s'", data->drv_name); -+ goto out_close; - } - - /* Convert device size to size in physical blocks */ --- -1.6.0.6 - diff --git a/0015-s390-tools-1.8.1-iucvterm-getlogin-to-getpwuid.patch b/0015-s390-tools-1.8.1-iucvterm-getlogin-to-getpwuid.patch deleted file mode 100644 index a8b258d..0000000 --- a/0015-s390-tools-1.8.1-iucvterm-getlogin-to-getpwuid.patch +++ /dev/null @@ -1,70 +0,0 @@ -From b76deacff693b951c2e5a01ed17e058379b9e00a Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Dan=20Hor=C3=A1k?= -Date: Mon, 22 Jun 2009 12:47:02 +0200 -Subject: [PATCH] s390-tools-1.8.1-iucvterm-getlogin-to-getpwuid - -Description: iucvconn: Replace getlogin() with getpwuid(geteuid()) -Symptom: The user name is not always logged to syslog. -Problem: The getlogin() function returns the name of the user that - is logged in. This user name is used to write syslog records. - getlogin() retrieves the user information from the utmp - database. However, the user information might not always be - available, for example, the screen program can remove utmp - records (logoff function). -Solution: The getpwuid() function is used to get the user name from the - passwd file (or any other NSS source, i.e. LDAP etc.). -Problem-ID: 54225 ---- - iucvterm/src/iucvconn.c | 11 +++++++++-- - 1 files changed, 9 insertions(+), 2 deletions(-) - -diff --git a/iucvterm/src/iucvconn.c b/iucvterm/src/iucvconn.c -index 61f536e..da7d08a 100644 ---- a/iucvterm/src/iucvconn.c -+++ b/iucvterm/src/iucvconn.c -@@ -7,6 +7,7 @@ - * Author(s): Hendrik Brueckner - */ - #include -+#include - #include - #include - #include -@@ -237,6 +238,7 @@ int main(int argc, char *argv[]) - struct sockaddr_iucv addr; - struct termios ios; - struct sigaction sigact; -+ struct passwd *passwd; - struct iucvtty_cfg conf; - - -@@ -266,6 +268,9 @@ int main(int argc, char *argv[]) - /* syslog */ - openlog(SYSLOG_IDENT, LOG_PID, LOG_AUTHPRIV); - -+ /* get user information for syslog */ -+ passwd = getpwuid(geteuid()); -+ - if (connect(server, (struct sockaddr *) &addr, sizeof(addr)) == -1) { - switch (errno) { - case EAGAIN: -@@ -286,12 +291,14 @@ int main(int argc, char *argv[]) - break; - } - AUDIT("Connection to %s/%s failed for user %s (uid=%i)", -- conf.host, conf.service, getlogin(), geteuid()); -+ conf.host, conf.service, -+ (passwd != NULL) ? passwd->pw_name : "n/a", geteuid()); - rc = 2; - goto return_on_error; - } - AUDIT("Established connection to %s/%s for user %s (uid=%i)", -- conf.host, conf.service, getlogin(), geteuid()); -+ conf.host, conf.service, -+ (passwd != NULL) ? passwd->pw_name : "n/a", geteuid()); - - /* send client params */ - iucvtty_tx_termenv(server, DEFAULT_TERM); --- -1.6.0.6 - diff --git a/0016-s390-tools-1.8.1-dumpconf-improve-error-checking.patch b/0016-s390-tools-1.8.1-dumpconf-improve-error-checking.patch deleted file mode 100644 index 3f2ce4a..0000000 --- a/0016-s390-tools-1.8.1-dumpconf-improve-error-checking.patch +++ /dev/null @@ -1,184 +0,0 @@ -From 263c0e5646ea3c81e570ec7e53c214cac8cb4412 Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Dan=20Hor=C3=A1k?= -Date: Mon, 22 Jun 2009 12:50:08 +0200 -Subject: [PATCH] s390-tools-1.8.1-dumpconf-improve-error-checking - -Description: dumpconf: Improve parameter checking and error messages. -Symptom: Ugly and confusing error messages on systems which do not support - the dump_reipl shutdown action. -Problem: Error handling is incomplete. -Solution: The dumpconf init script now validates the syntax of the device - specified in the config file. ---- - etc/init.d/dumpconf | 98 +++++++++++++++++++++++++++++++++++---------------- - 1 files changed, 67 insertions(+), 31 deletions(-) - -diff --git a/etc/init.d/dumpconf b/etc/init.d/dumpconf -index e97f76c..42a2242 100755 ---- a/etc/init.d/dumpconf -+++ b/etc/init.d/dumpconf -@@ -119,18 +119,60 @@ verify_ccw_dump_device() - fi - } - --setup_ccw_device() --{ -- echo $DEVICE > $1/ccw/device || RETVAL=1 -+#------------------------------------------------------------------------------ -+# Helper function to check a device string. -+#------------------------------------------------------------------------------ -+function CheckDeviceString() { -+ local X -+ -+ X=$( -+ echo "$1" | -+ awk --posix -F. ' -+ function PrintBusID(css, grp, devno) { -+ while(length(devno) < 4) -+ devno = "0" devno -+ print css "." grp "." devno -+ } -+ NF == 1 && $1 ~ /^[0-9a-fA-F]{1,4}$/ { -+ PrintBusID("0","0", $1) -+ next -+ } -+ NF != 3 || $1 !~ /^[0-9a-fA-F]{1,2}$/ { -+ next -+ } -+ $2 !~ /^[0-9a-fA-F]{1,2}$/ { -+ next -+ } -+ $3 !~ /^[0-9a-fA-F]{1,4}$/ { -+ next -+ } -+ { -+ PrintBusID($1, $2, $3) -+ } -+ ' -+ ) -+ -+ if [ "$X" != "" ]; then -+ echo $X -+ return 0 -+ fi - } - --setup_fcp_device() -+setup_device() - { -- echo $DEVICE > $1/fcp/device || RETVAL=1 -- echo $WWPN > $1/fcp/wwpn || RETVAL=1 -- echo $LUN > $1/fcp/lun || RETVAL=1 -- echo $BOOTPROG > $1/fcp/bootprog || RETVAL=1 -- echo $BR_LBA > $1/fcp/br_lba || RETVAL=1 -+ DEV="$(CheckDeviceString $DEVICE)" -+ if [ "$DEV" != "" ]; then -+ echo $DEV > $1/$DUMP_TYPE/device || RETVAL=1 -+ else -+ RETVAL=1 -+ echo "ERROR: Invalid device '$DEVICE'" >&2 -+ fi -+ if [ $DUMP_TYPE == "fcp" ] && [ $RETVAL -eq 0 ]; then -+ echo $WWPN > $1/fcp/wwpn || RETVAL=1 -+ echo $LUN > $1/fcp/lun || RETVAL=1 -+ echo $BOOTPROG > $1/fcp/bootprog || RETVAL=1 -+ echo $BR_LBA > $1/fcp/br_lba || RETVAL=1 -+ fi - } - - setup_nss_device() -@@ -145,10 +187,8 @@ setup_reipl() - return - fi - -- if [ "$REIPL_TYPE" == "ccw" ]; then -- setup_ccw_device $REIPL_CONFIG_DIR -- elif [ "$REIPL_TYPE" == "fcp" ]; then -- setup_fcp_device $REIPL_CONFIG_DIR -+ if [ "$REIPL_TYPE" == "ccw" ] || [ "$REIPL_TYPE" == "fcp" ]; then -+ setup_device $REIPL_CONFIG_DIR - elif [ "$REIPL_TYPE" == "nss" ]; then - setup_nss_device $REIPL_CONFIG_DIR - else -@@ -169,28 +209,23 @@ setup_reipl() - - setup_dump() - { -- if [ "$DUMP_TYPE" == "ccw" ]; then -- setup_ccw_device $DUMP_CONFIG_DIR -- elif [ "$DUMP_TYPE" == "fcp" ]; then -- setup_fcp_device $DUMP_CONFIG_DIR -+ if [ "$DUMP_TYPE" == "ccw" ] || [ "$DUMP_TYPE" == "fcp" ]; then -+ setup_device $DUMP_CONFIG_DIR - elif [ "$DUMP_TYPE" != "none" ]; then - echo "ERROR: Unknown dump type '$DUMP_TYPE'" >&2 - RETVAL=1 - fi - -- echo $DUMP_TYPE > $DUMP_CONFIG_DIR/dump_type || RETVAL=1 -+ if [ $RETVAL -eq 0 ]; then -+ echo $DUMP_TYPE > $DUMP_CONFIG_DIR/dump_type || RETVAL=1 -+ fi - - if [ $RETVAL -eq 1 ]; then -- echo "ERROR: Setup of $DUMP_TYPE dump device failed." >&2 - echo none > $DUMP_CONFIG_DIR/dump_type - return $RETVAL - fi - -- if [ "$CONF_DUMP_TYPE" == "none" ]; then -- echo "No dump device configured. " -- else -- echo "$ON_PANIC on panic configured: Using $DUMP_TYPE dump device." -- fi -+ echo "Configuring $ON_PANIC on panic: Using $DUMP_TYPE dump device." - } - - setup_on_panic_vmcmd() -@@ -260,7 +295,7 @@ status_dump() - echo "type....: fcp" - print_fcp_device $DUMP_CONFIG_DIR - else -- echo "ERROR: Unknown dump device type '$TYPE'!" >&2 -+ echo "ERROR: Unknown dump device type '$CONF_DUMP_TYPE'!" >&2 - echo " Please check if you have the latest dumpconf package!" >&2 - fi - } -@@ -316,27 +351,28 @@ start() - - if [ "$ON_PANIC" == "reipl" ]; then - setup_reipl -- elif [ "$ON_PANIC" == "dump" ]; then -+ elif [ "$ON_PANIC" == "dump" ] || [ "$ON_PANIC" == "dump_reipl" ]; then - setup_dump - elif [ "$ON_PANIC" == "vmcmd" ]; then - setup_on_panic_vmcmd -- elif [ "$ON_PANIC" == "dump_reipl" ]; then -- setup_dump - elif [ "$ON_PANIC" == "stop" ]; then - echo "stop on panic configured." - else - echo "ERROR: Unknown 'on panic' type '$ON_PANIC'" >&2 - RETVAL=1 - fi -+ if [ $RETVAL -eq 1 ]; then -+ echo "ERROR: Setup of $DUMP_TYPE dump device failed." >&2 -+ return $RETVAL -+ fi - -- echo $ON_PANIC > $ON_PANIC_CONFIG_FILE || RETVAL=1 -+ echo $ON_PANIC > $ON_PANIC_CONFIG_FILE 2> /dev/null || RETVAL=1 - - # check for errors - - if [ $RETVAL -eq 1 ]; then -- ERRMSG="\"on panic action\" configuration failed!" - echo stop > $ON_PANIC_CONFIG_FILE -- echo "ERROR: $ERRMSG Check $DUMP_CONFIG_FILE!" >&2 -+ echo "ERROR: $ON_PANIC not supported by hardware!" >&2 - return $RETVAL - fi - --- -1.6.0.6 - diff --git a/0017-s390-tools-1.8.1-cpuplugd-memplug.patch b/0017-s390-tools-1.8.1-cpuplugd-memplug.patch deleted file mode 100644 index 97d36c6..0000000 --- a/0017-s390-tools-1.8.1-cpuplugd-memplug.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 277fbeaa8cdd27e586d1d3d0f58242a0a40b3a48 Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Dan=20Hor=C3=A1k?= -Date: Mon, 22 Jun 2009 12:51:44 +0200 -Subject: [PATCH] s390-tools-1.8.1-cpuplugd-memplug - -Description: cpuplugd: Daemon does not work in an memplug only environment. -Symptom: When the cpuplugd daemon is executed with only the memory - configuration in cpuplugd.conf it does not start properly. -Problem: A bug in the configuration file parser prevents this valid - user specified setup. -Solution: Adjust the configuration file parser, to accept this type of - system configuration. ---- - cpuplugd/config.c | 6 +++--- - 1 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/cpuplugd/config.c b/cpuplugd/config.c -index 7f02c6c..93b31e5 100644 ---- a/cpuplugd/config.c -+++ b/cpuplugd/config.c -@@ -66,6 +66,7 @@ void parse_configline(struct config *cfg, char *line) - - rc = -1; - cmm_min = -1; -+ rvalue = NULL; - /* parse line by line */ - for (token = strtok_r(line, "\n", &save); - token != NULL; -@@ -318,8 +319,7 @@ void check_config(struct config *cfg) - int lpar_status, error_counter; - - lpar_status = check_lpar(); -- -- if (cfg->cpu_max <= cfg->cpu_min && cfg->cpu_max != 0) { -+ if (cfg->cpu_max <= cfg->cpu_min && cfg->cpu_max != 0 && cpu != 0) { - if (foreground == 1) - fprintf(stderr, "cpu_max below or equal cpu_min," - " aborting.\n"); -@@ -328,7 +328,6 @@ void check_config(struct config *cfg) - "aborting\n"); - clean_up(); - } -- - if (cfg->cpu_max < 0 || cfg->cpu_min < 0 || cfg->update < 0 - || cfg->hotplug == NULL || cfg->hotunplug == NULL) { - if (foreground == 1) -@@ -337,6 +336,7 @@ void check_config(struct config *cfg) - if (foreground == 0) - syslog(LOG_INFO, "No valid CPU hotplug " - "configuration detected\n"); -+ cpu = 0; - } else { - cpu = 1; - if (debug) { --- -1.6.0.6 - diff --git a/0018-s390-tools-1.8.1-ziomon-new-blkiomon.patch b/0018-s390-tools-1.8.1-ziomon-new-blkiomon.patch deleted file mode 100644 index 458e049..0000000 --- a/0018-s390-tools-1.8.1-ziomon-new-blkiomon.patch +++ /dev/null @@ -1,118 +0,0 @@ -From 65f317c463de53abf7a8bba3285a077dbaf42486 Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Dan=20Hor=C3=A1k?= -Date: Mon, 22 Jun 2009 12:53:22 +0200 -Subject: [PATCH] s390-tools-1.8.1-ziomon-new-blkiomon - -ziomon: Adjust to use blkiomon V0.3 - -Update the blkiomon header to the version packaged in RHEL 5.4, update -the version check appropriately and use the version number for .log files -to match what the proper, forthcoming version will use. ---- - ziomon/blkiomon.h | 4 ++-- - ziomon/ziomon | 2 +- - ziomon/ziomon_dacc.c | 12 ++++++------ - ziomon/ziomon_dacc.h | 2 +- - 4 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/ziomon/blkiomon.h b/ziomon/blkiomon.h -index da27d00..42b6b46 100644 ---- a/ziomon/blkiomon.h -+++ b/ziomon/blkiomon.h -@@ -25,6 +25,7 @@ struct blkiomon_stat { - /* Histogram of dispatch to completion request times in u-secs. - Step-size is 8, starting at 0. */ - __u32 d2c_hist[BLKIOMON_D2C_BUCKETS]; -+ __u32 device; /* device identifier */ - struct minmax size_r; /* stats of read request sizes in Bytes */ - struct minmax size_w; /* stats of write request sizes in Bytes */ - struct minmax d2c_r; /* stats of read request durations in u-secs */ -@@ -33,8 +34,7 @@ struct blkiomon_stat { - struct minmax thrput_w; /* stats of write throughput in Kbytes per micro-sec */ - __u64 bidir; /* number of bi-directional requests, is set exclusive - (ie. not implicitly adding 1 to rd and wrt as well) */ -- __u32 device; /* device identifier */ --} __attribute__ ((packed)); -+}; - - static struct histlog2 size_hist = {0, 1024, BLKIOMON_SIZE_BUCKETS}; - -diff --git a/ziomon/ziomon b/ziomon/ziomon -index fe4d8ec..297651c 100755 ---- a/ziomon/ziomon -+++ b/ziomon/ziomon -@@ -414,7 +414,7 @@ function check_vmalloc_space() { - function check_blkiomon() { - # check blkiomon version - ver=`blkiomon -V | awk '{print $3}'`; -- if [ "$ver" != "0.2" ]; then -+ if [ "$ver" != "0.3" ]; then - echo "$WRP_TOOLNAME: Unsupported blkiomon version $ver detected, aborting"; - exit 1; - fi -diff --git a/ziomon/ziomon_dacc.c b/ziomon/ziomon_dacc.c -index f2c34ac..0a17d9e 100644 ---- a/ziomon/ziomon_dacc.c -+++ b/ziomon/ziomon_dacc.c -@@ -426,7 +426,7 @@ int add_msg(FILE *fp, struct message *msg, struct file_header *f_hdr, - int init_file(FILE *fp, struct file_header *f_hdr) - { - f_hdr->magic = DATA_MGR_MAGIC; -- f_hdr->version = DATA_MGR_V2; -+ f_hdr->version = DATA_MGR_V3; - f_hdr->first_msg_offset = 0; - f_hdr->end_time = 0; - f_hdr->begin_time = 0; -@@ -452,11 +452,11 @@ static int get_header(FILE *fp, struct file_header *hdr) - toolname); - return -2; - } -- if (hdr->version != DATA_MGR_V2) { -+ if (hdr->version != DATA_MGR_V3) { - fprintf(stderr, "%s: Wrong version: .log data is in version %u" - " format, while this tool only supports version %u." - " Get the matching tool version and try again.\n", -- toolname, hdr->version, DATA_MGR_V2); -+ toolname, hdr->version, DATA_MGR_V3); - return -2; - } - hdr->begin_time = 0; -@@ -557,11 +557,11 @@ static int read_aggr_file(FILE *fp, struct aggr_data *data) - toolname); - return -1; - } -- if (data->version != DATA_MGR_V2) { -+ if (data->version != DATA_MGR_V3) { - fprintf(stderr, "%s: Wrong version: .agg data is in version %u" - " format, while this tool only supports version %u." - " Get the matching tool version and try again.\n", -- toolname, data->version, DATA_MGR_V2); -+ toolname, data->version, DATA_MGR_V3); - return -1; - } - -@@ -805,7 +805,7 @@ int write_aggr_file(FILE *fp, struct aggr_data *data) - void init_aggr_data_struct(struct aggr_data *data) - { - data->magic = DATA_MGR_MAGIC_AGGR; -- data->version = DATA_MGR_V2; -+ data->version = DATA_MGR_V3; - data->num_zfcpdd = 0; - data->num_blkiomon = 0; - data->end_time = 0; -diff --git a/ziomon/ziomon_dacc.h b/ziomon/ziomon_dacc.h -index f280c9b..8f301f4 100644 ---- a/ziomon/ziomon_dacc.h -+++ b/ziomon/ziomon_dacc.h -@@ -17,7 +17,7 @@ - - #define DATA_MGR_MAGIC 0x64616d67 - #define DATA_MGR_MAGIC_AGGR 0x61676772 --#define DATA_MGR_V2 2u -+#define DATA_MGR_V3 3u - - - /** --- -1.6.0.6 - diff --git a/0019-s390-tools-1.8.1-lsluns-disk-enc.patch b/0019-s390-tools-1.8.1-lsluns-disk-enc.patch deleted file mode 100644 index 2a44633..0000000 --- a/0019-s390-tools-1.8.1-lsluns-disk-enc.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 8384b80dac573a65de6610ff8dae753a0e2d6deb Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Dan=20Hor=C3=A1k?= -Date: Mon, 13 Jul 2009 10:29:52 +0200 -Subject: [PATCH] s390-tools-1.8.1-lsluns-disk-enc - -Description: lsluns: fix byte check for disk encryption check. -Symptom: Encrypted disks are never displayed as encrypted. -Problem: The check was performed on the wrong bit. -Solution: Perform the check on the correct bit. -Problem-ID: 54517 ---- - zconf/lsluns | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/zconf/lsluns b/zconf/lsluns -index 08a11ba..164282e 100755 ---- a/zconf/lsluns -+++ b/zconf/lsluns -@@ -216,8 +216,8 @@ sub show_attached_lun_info - (my $mod = substr($inq, 0x10, 0x10)) =~ s/\s*//g; - my $type = ord(substr($inq, 0x0, 0x1)); - my $enc = ($mod =~ /2107/) ? -- ord(substr($inq, 0xa2, 0x80)) : 0; -- $l .= "(X)" if ($enc & 0x8); -+ ord(substr($inq, 0xa2, 0x1)) : 0; -+ $l .= "(X)" if ($enc & 0x80); - $txt[$type] = $type if (!defined($txt[$type])); - print("\t\tlun = $l\t$sg_dev\t$txt[$type]", - "\t$vend:$mod\n"); --- -1.6.0.6 - diff --git a/0020-s390-tools-1.8.1-cpuplugd-cmminit.patch b/0020-s390-tools-1.8.1-cpuplugd-cmminit.patch deleted file mode 100644 index 6b28d93..0000000 --- a/0020-s390-tools-1.8.1-cpuplugd-cmminit.patch +++ /dev/null @@ -1,25 +0,0 @@ -From af1d22ef04368fd201480959ad6647853d82a25e Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Dan=20Hor=C3=A1k?= -Date: Wed, 26 Aug 2009 14:20:50 +0200 -Subject: [PATCH 20/21] s390-tools-1.8.1-cpuplugd-cmminit - ---- - cpuplugd/config.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/cpuplugd/config.c b/cpuplugd/config.c -index 93b31e5..c013a65 100644 ---- a/cpuplugd/config.c -+++ b/cpuplugd/config.c -@@ -348,7 +348,7 @@ void check_config(struct config *cfg) - "configuration detected\n"); - } - } -- if (cfg->cmm_max < 0 || cfg->cmm_min < -1 -+ if (cfg->cmm_max < 0 || cfg->cmm_min < 0 - || cfg->cmm_inc < 0 || cfg->memplug == NULL || cfg->update < 0 - || cfg->memunplug == NULL) { - if (foreground == 1) --- -1.6.3.3 - diff --git a/0024-s390-tools-1.8.1-cpuplugd-limits.patch b/0024-s390-tools-1.8.1-cpuplugd-limits.patch deleted file mode 100644 index 104c504..0000000 --- a/0024-s390-tools-1.8.1-cpuplugd-limits.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 0b02dbdbd248ca51583e9dce3bd57025b965534d Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Dan=20Hor=C3=A1k?= -Date: Wed, 30 Sep 2009 18:22:15 +0200 -Subject: [PATCH 24/25] s390-tools-1.8.1-cpuplugd-limits - -Description: cpuplugd: fix cmm_pages allocation outside min and max range -Symptom: cpuplugd might instruct CMM to operated outside the predefined limits -Problem: This problem is basically caused by a missing new line separator at - the interface between the daemon and the proc file. -Solution: Add newline to the end of each line when writing to /proc/sys/vm/cmm_pages -Problem-ID: 55472 ---- - cpuplugd/config.c | 15 +++++++++++++-- - cpuplugd/daemon.c | 11 ----------- - cpuplugd/mem.c | 6 +++--- - 3 files changed, 16 insertions(+), 16 deletions(-) - -diff --git a/cpuplugd/config.c b/cpuplugd/config.c -index c013a65..bd3cb43 100644 ---- a/cpuplugd/config.c -+++ b/cpuplugd/config.c -@@ -494,7 +494,7 @@ void check_config(struct config *cfg) - if (memory == 1) { - /* - * check that the initial value of cmm_pages is not below -- * cmm_min -+ * cmm_min or above cmm_max - */ - cmm_pagesize_start = get_cmmpages_size(); - if (cmm_pagesize_start < cfg->cmm_min) { -@@ -506,7 +506,18 @@ void check_config(struct config *cfg) - syslog(LOG_INFO, "cmm_pages is below minimum " - "and will be increased\n"); - } -- memunplug(cfg->cmm_min); -+ set_cmm_pages(cfg->cmm_min); -+ } -+ if (cmm_pagesize_start > cfg->cmm_max) { -+ if (debug && foreground == 1) { -+ printf("cmm_pages is above the maximum and will " -+ "be decreased.\n"); -+ } -+ if (debug && foreground == 0) { -+ syslog(LOG_INFO, "cmm_pages is above the maximum " -+ "and will be decreased\n"); -+ } -+ set_cmm_pages(cfg->cmm_max); - } - } - } -diff --git a/cpuplugd/daemon.c b/cpuplugd/daemon.c -index d0769f3..e1ef623 100644 ---- a/cpuplugd/daemon.c -+++ b/cpuplugd/daemon.c -@@ -260,17 +260,6 @@ void check_max(struct config *cfg) - cpuid++; - } - } -- if (memory && get_cmmpages_size() > cfg->cmm_max) { -- if (debug && foreground == 1) { -- printf("cmm_pages is above the maximum and will " -- "be decreased.\n"); -- } -- if (debug && foreground == 0) { -- syslog(LOG_INFO, "cmm_pages is above the maximum " -- "and will be decreased\n"); -- } -- set_cmm_pages(cfg->cmm_max); -- } - } - - /* check if we are running in an LPAR environment. -diff --git a/cpuplugd/mem.c b/cpuplugd/mem.c -index 2f3d219..6200904 100644 ---- a/cpuplugd/mem.c -+++ b/cpuplugd/mem.c -@@ -138,7 +138,7 @@ int memunplug(int size) - ":%s\n", strerror(errno)); - return -1; - } -- fprintf(filp, "%d", new_size); -+ fprintf(filp, "%d\n", new_size); - if (debug && foreground == 1) - printf("changed number of pages permanently reserved " - "to %d \n", new_size); -@@ -173,7 +173,7 @@ int memplug(int size) - ":%s\n", strerror(errno)); - return -1; - } -- fprintf(filp, "%d", new_size); -+ fprintf(filp, "%d\n", new_size); - if (debug && foreground == 1) - printf("changed number of pages permanently reserved " - "to %d \n", new_size); -@@ -200,7 +200,7 @@ int set_cmm_pages(int size) - ":%s\n", strerror(errno)); - return -1; - } -- fprintf(filp, "%d", size); -+ fprintf(filp, "%d\n", size); - if (debug && foreground == 1) - printf("changed number of pages permanently reserved " - "to %d \n", size); --- -1.6.3.3 - diff --git a/0025-s390-tools-1.8.1-misc-bugfixes.patch b/0025-s390-tools-1.8.1-misc-bugfixes.patch deleted file mode 100644 index 7b80e58..0000000 --- a/0025-s390-tools-1.8.1-misc-bugfixes.patch +++ /dev/null @@ -1,363 +0,0 @@ -From 60a3bf1df6d7039f75d889f15d7839f8482c2889 Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Dan=20Hor=C3=A1k?= -Date: Wed, 30 Sep 2009 18:24:52 +0200 -Subject: [PATCH 25/25] s390-tools-1.8.1-misc-bugfixes - -Miscellaneous minor bufgixes for s390-tools RHEL5.5: -* lsshut: Fix printing of vmcmd shutdown action: Also print CP commands - that have more than one word. -* af_iucv: Doc update for connection-oriented datagram sockets. ---- - ipl_tools/system.c | 13 +++-- - man/af_iucv.7 | 174 +++++++++++++++++++++++++++++++++++++++++++++++----- - 2 files changed, 166 insertions(+), 21 deletions(-) - -diff --git a/ipl_tools/system.c b/ipl_tools/system.c -index 8294db0..fd5b76b 100644 ---- a/ipl_tools/system.c -+++ b/ipl_tools/system.c -@@ -74,7 +74,7 @@ out: - char *substring(size_t start, size_t stop, const char *src, char *dst, - size_t size) - { -- int count; -+ unsigned int count; - - count = stop - start; - if (count >= --size) -@@ -102,7 +102,7 @@ int check_for_root(void) - int ishex(char *cp) - { - -- int i; -+ unsigned int i; - char c; - - for (i = 0; i <= strlen(cp); i++) { -@@ -168,13 +168,13 @@ int strrd(char *string, char *file) - - strncpy(path, file, sizeof(path)); - if (access(path, R_OK) == 0) { -- filp = fopen(path, "r"); -+ filp = fopen(path, "rb"); - if (!filp) { - fprintf(stderr, "%s: Can not open %s: ", name, file); - fprintf(stderr, "%s\n", strerror(errno)); - exit(1); - } -- rc = fscanf(filp, "%s", string); -+ rc = fread(string, 4096, 1, filp); - fclose(filp); - /* - * special handling is required for -@@ -192,8 +192,11 @@ int strrd(char *string, char *file) - file); - fprintf(stderr, "%s\n", strerror(errno)); - return -1; -- } else -+ } else { -+ if (string[strlen(string) - 1] == '\n') -+ string[strlen(string) - 1] = 0; - return 0; -+ } - } else { - fprintf(stderr, "%s: Can not open %s: ", name, file); - fprintf(stderr, "%s\n", strerror(errno)); -diff --git a/man/af_iucv.7 b/man/af_iucv.7 -index cdd2691..9d56640 100644 ---- a/man/af_iucv.7 -+++ b/man/af_iucv.7 -@@ -4,7 +4,7 @@ - .\" Copyright IBM Corp. 2008, 2009. - .\" Author(s): Hendrik Brueckner - .\" ---------------------------------------------------------------------- --.TH AF_IUCV 7 "March 2009" "s390-tools" "Linux Programmer's Manual" -+.TH AF_IUCV 7 "September 2009" "s390-tools" "Linux Programmer's Manual" - .SH NAME - iucv, AF_IUCV \- Sockets for z/VM IUCV communication - . -@@ -13,15 +13,17 @@ iucv, AF_IUCV \- Sockets for z/VM IUCV communication - .SH SYNOPSIS - .B #include - --.IB iucv_socket " = socket(AF_IUCV, SOCK_STREAM, 0);" -+.IB iucv_stream_socket " = socket(AF_IUCV, SOCK_STREAM, 0);" -+.br -+.IB iucv_packet_socket " = socket(AF_IUCV, SOCK_SEQPACKET, 0);" - . - . - . - .SH DESCRIPTION - The Inter-User Communication Vehicle (IUCV) is a z/VM communication facility - that enables a program running in one z/VM guest virtual machine to communicate --with another z/VM guest virtual machine, or with a control program, or even --with itself. -+with another z/VM guest virtual machine, or with the control program (CP), or -+even with itself. - - The AF_IUCV address family provides communication and addressing in the IUCV - domain. In the IUCV domain, address spaces or virtual machines can use the -@@ -32,7 +34,11 @@ AF_IUCV connects socket applications running on different Linux guest operating - systems, or it connects a Linux application to another socket application - running in another z/VM guest operating system (like z/VM CMS). - --The AF_IUCV address family supports stream sockets only. -+The AF_IUCV address family supports stream-oriented sockets -+(\f(CWSOCK_STREAM\fP) and connection-oriented datagram sockets -+(\f(CWSOCK_SEQPACKET\fP). Stream-oriented sockets fragment data over several -+native IUCV messages, whereas sockets of type SOCK_SEQPACKET map a particular -+socket write or read operation to a single native IUCV message. - - .SS Features - The AF_IUCV address family provides: -@@ -78,28 +84,106 @@ are reserved for future use. The - .B siucv_port - and - .B siucv_addr --fields must be zero. The -+fields must be zero. The - .B siucv_nodeid - field must be set to exactly eight blank characters. - . - .TP - .B siucv_userid - is set to the z/VM user ID of the Linux guest virtual machine running the --application which owns the address. The field must be eight characters long, -+application that owns the address. The field must be eight characters long, - padded with blanks on the right. - - For - .BR bind "(2), " siucv_userid --must contain blanks only, because AF_IUCV sets the correct z/VM user ID. -+must contain blanks only to allow AF_IUCV to set the z/VM user ID of the Linux -+guest operating system. - . - .TP - .B siucv_name --is set to the application name by which the socket is known. Servers advertises -+is set to the application name by which the socket is known. Servers advertise - application names and clients use these application names to connect to servers. - This field must be eight characters long, padded with blanks on the right. - . - . - . -+.SH "SOCKET OPTIONS" -+Socket options can be set with -+.BR setsockopt (2) -+and read with -+.BR getsockopt (2) -+by specifying \f(CWSOL_IUCV\fP as the socket level. -+ -+.TP -+.B SO_IPRMDATA_MSG -+Enables the application to send up to seven bytes of socket data in the -+parameter list of an IUCV message. Use this option to increase performance -+when transferring small amounts of data. -+ -+To send data in the parameter list, specify a non-zero integer value. -+ -+.RS -+.TP -+.B Note: -+Use this option with care, older AF_IUCV versions do not support receiving -+socket data in the parameter list and shut down the socket on which -+a parameter list message has been received. -+.RE -+. -+.TP -+.B SO_MSGLIMIT -+Modifies the message limit for new IUCV communication paths. The message -+limit specifies the maximum number of outstanding messages that are allowed -+for established connections. This setting can be lowered by z/VM when an IUCV -+connection is established. -+ -+The message limit is an integer value in range 1 to 65535. -+The default value is 65535. -+ -+The message limit must be set before -+.BR connect "(2) or " listen (2) -+is called for sockets. -+.br -+For sockets that are already connected or listening for connections, -+the message limit cannot be changed. -+.br -+New sockets created by -+.BR accept (2) -+inherit the message limit that has been set for the listening socket. -+ -+.BR getsockopt (2) -+returns the default message limit or the limit that has been set. -+For connected sockets, the current message limit is returned. The current -+message limit is assigned by z/VM for each connection and it depends -+on the IUCV MSGLIMIT statement specified for the z/VM guest virtual machine. -+The current message limit is the lower value of the socket option and the -+value specified for the IUCV MSGLIMIT statement. -+ -+See the SECURITY section below for setting IUCV MSGLIMIT authorizations. -+. -+. -+. -+.SH "ANCILLARY DATA" -+Ancillary data is sent and received using the -+.BR sendmsg (2) -+and -+.BR recvmsg (2)\fR.\fP -+To send ancillary data, set the \fBcmsg_level\fP field of struct \fBcmsghdr\fP -+to \f(CWSOL_IUCV\fP and the \fBcmsg_type\fP field to the type. -+.br -+For more information see -+.BR cmsg (3). -+ -+.TP -+.B SCM_IUCV_TRGCLS -+Send or receive IUCV target class information. The IUCV target class can be used -+to classify and identify an IUCV message at IUCV protocol level. If the target -+class is not specified as ancillary data, it is set to zero. -+ -+The target class is a number of type \fBuint32_t\fP. -+. -+. -+. - . - .SH SECURITY - This section provides an overview of the required IUCV statements for your z/VM -@@ -129,20 +213,20 @@ any other z/VM guest virtual machine. - .TP - .B IUCV \fIuser_ID\fP - allows this z/VM guest virtual machine to establish a communication path to the --z/VM guest virtual machine with the z/VM user ID \fIuser_ID\fP. -+z/VM guest virtual machine with the z/VM user ID \fIuser_ID\fP. - .PP - You can specify multiple IUCV statements. To any of these IUCV statements you - can append the - .B MSGLIMIT \fIlimit\fP - parameter. - \fIlimit\fP specifies the maximum number of outstanding messages that are --allowed for each connection authorized by this entry. -+allowed for each connection authorized by this statement. - If no value is specified for \fBMSGLIMIT\fP, AF_IUCV requests 65535, - which is the maximum supported by IUCV. - . - . - .SS "Setting a connection limit" --Use the \fBOPTION\fP statement to limit the number of concurrent connections. -+Use the \fBOPTION\fP statement to limit the number of concurrent connections. - .TP - .B OPTION MAXCONN \fImaxno\fP - \fImaxno\fP specifies the maximum number of IUCV connections allowed for this -@@ -151,7 +235,7 @@ virtual machine. The default is 64. The maximum is 65535. - . - .SS "Example" - These sample statements allow any z/VM guest virtual machine to connect to your --z/VM guest virtual machine with a maximum of 10000 outstanding messages for each -+z/VM guest virtual machine with a maximum of 10\^000 outstanding messages for each - incoming connection. Your z/VM guest virtual machine is permitted to connect to - all other z/VM guest virtual machines. The total number of connections for your - z/VM guest virtual machine cannot exceed 100. -@@ -200,6 +284,14 @@ This error can be temporary and the application may try again after some time. - If the error occurs repeatedly, try to increase the maximum number of - connections (for one or both z/VM guest virtual machines). - See the SECURITY section about the required authorization statement. -+ -+.B sendmsg (2) -+called but the maximum number of outstanding IUCV messages for the socket -+connection is reached; i.e. there are data available that has not yet been -+received by the communication partner. -+.br -+If necessary, change the IUCV message limit as explained in section -+"IUCV AUTHORIZATIONS". - . - .TP - .B EACCES -@@ -217,10 +309,22 @@ called but the AF_IUCV setting in the - field of the passed address is missing. - - .BR listen (2) --called but the AF_IUCV socket has not yet been bound to an address. Always call -+called but the AF_IUCV socket has not yet been bound to an address. -+Always call - .BR bind (2) - before - .BR listen (2). -+ -+.BR setsockopt (2) -+called with option \fBSO_MSGLIMIT\fP for sockets that are already connected. -+. -+.TP -+.B ENOPROTOOPT -+.BR setsockopt (2), -+or -+.BR getsockopt (2) -+called but the socket level has not been set to \f(CWSOL_IUCV\fP, or the -+specified socket option is not supported. - . - .TP - .B EOPNOTSUPP -@@ -232,13 +336,27 @@ might be called with the - flag set. - AF_IUCV does not support sending or receiving \fIout-of-band\fP data on its - sockets. -+ -+For \f(CWSOCK_SEQPACKET\fP sockets, -+.BR sendmsg (2) -+called without the -+.I MSG_EOR -+flag set. -+AF_IUCV does not support segmentation, and thus, the "end-of-record" -+(\fIMSG_EOR\fP) flag must always be set. -+. -+.TP -+.B EPROTONOSUPPORT -+.BR socket (2) -+called with a protocol that is not supported. The socket protocol parameter -+must be either zero or \f(CWPF_IUCV\fP. - . - .TP - .B EAFNOSUPPORT - .BR socket (2) --called with \fIAF_IUCV\fP but the AF_IUCV protocol / addressing family is not -+called with \f(CWAF_IUCV\fP but the AF_IUCV address family is not - supported by the current Linux kernel. Ensure that your Linux kernel has been --compiled with support for the AF_IUCV addressing family. -+compiled with support for the AF_IUCV address family. - . - .PP - Other errors can be generated by the generic socket layer. See the respective -@@ -251,6 +369,9 @@ manual pages for more information. - .BR recvmsg (2), - .BR sendmsg (2), - .BR socket (2), -+.BR setsockopt (2), -+.BR getsockopt (2), -+.BR cmsg (3), - .BR socket (7) - - .I "Linux on System z - Device Drivers, Features, and Commands" -@@ -258,3 +379,24 @@ manual pages for more information. - .I "z/VM CP Planning and Administration" - .br - .I "z/VM CP Programming Services" -+. -+. -+. -+.SH "HISTORY" -+.TP -+.B AF_IUCV, version 1.0 -+Initial version. -+.TP -+.B AF_IUCV, version 1.1 -+.RS 4 -+.IP "\(bu" 4 -+Support for sending socket data in the parameter list of an IUCV message -+(\f(CWSO_IPRMDATA_MSG\fP). -+.IP "\(bu" 4 -+Access the target class of an IUCV message as ancillary data using -+.BR sendmsg "(2) and " recvmsg (2). -+.IP "\(bu" 4 -+Support for \f(CWSOCK_SEQPACKET\fP sockets to facilitate development of native -+IUCV applications that interact with AF_IUCV. -+.RE -+ --- -1.6.3.3 - diff --git a/s390utils.spec b/s390utils.spec index d8aa6e1..50714da 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -7,8 +7,8 @@ Name: s390utils Summary: Utilities and daemons for IBM System/z Group: System Environment/Base -Version: 1.8.1 -Release: 8%{?dist} +Version: 1.8.2 +Release: 1%{?dist} Epoch: 2 License: GPLv2 and GPLv2+ and CPL Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -27,28 +27,16 @@ Source8: dasd.udev # http://www.ibm.com/developerworks/linux/linux390/zfcp-hbaapi-%{hbaapiver}.html Source9: http://download.boulder.ibm.com/ibmdl/pub/software/dw/linux390/ht_src/lib-zfcp-hbaapi-%{hbaapiver}.tar.gz -Patch1: 0001-s390-tools-1.8.1-common-mak.patch -Patch4: 0004-s390-tools-1.8.1-zipl-automenu.patch -Patch5: 0005-s390-tools-1.8.1-fdasd-su.patch -Patch6: 0006-s390-tools-1.8.1-fdasd-raid-lvm.patch -Patch8: 0008-s390-tools-1.8.1-ziorep-fixes.patch -Patch9: 0009-s390-tools-1.8.1-cflags.patch -Patch10: 0010-s390-tools-1.8.1-defaultmenu.patch -Patch11: 0011-s390-tools-1.8.1-execstack.patch -Patch12: 0012-s390-tools-1.8.1-ziomon-fixes.patch -Patch13: 0013-s390-tools-1.8.1-zipl-fix-unsupported-device.patch -Patch14: 0014-s390-tools-1.8.1-zipl-kdump-man.patch -Patch15: 0015-s390-tools-1.8.1-iucvterm-getlogin-to-getpwuid.patch -Patch16: 0016-s390-tools-1.8.1-dumpconf-improve-error-checking.patch -Patch17: 0017-s390-tools-1.8.1-cpuplugd-memplug.patch -Patch18: 0018-s390-tools-1.8.1-ziomon-new-blkiomon.patch -Patch19: 0019-s390-tools-1.8.1-lsluns-disk-enc.patch -Patch20: 0020-s390-tools-1.8.1-cpuplugd-cmminit.patch -Patch21: 0021-s390-tools-1.8.1-lszfcp-perf.patch -Patch22: 0022-fix-string-overflow-in-vtoc_volume_label_init.patch -Patch23: 0023-change-default-load-address-for-ramdisk.patch -Patch24: 0024-s390-tools-1.8.1-cpuplugd-limits.patch -Patch25: 0025-s390-tools-1.8.1-misc-bugfixes.patch +Patch1: 0001-s390-tools-1.5.3-zipl-zfcpdump-2.patch +Patch2: 0002-s390-tools-1.8.1-zipl-automenu.patch +Patch3: 0003-s390-tools-1.8.1-fdasd-su.patch +Patch4: 0004-s390-tools-1.8.1-fdasd-raid-lvm.patch +Patch5: 0005-don-t-create-automenu-when-default-menu-exists.patch +Patch6: 0006-s390-tools-1.8.1-zipl-kdump-man.patch +Patch7: 0007-s390-tools-1.8.1-lszfcp-perf.patch +Patch8: 0008-fix-string-overflow-in-vtoc_volume_label_init.patch +Patch9: 0009-change-default-load-address-for-ramdisk.patch +Patch10: 0010-improve-mon_statd-init-script.patch Patch100: cmsfs-1.1.8-warnings.patch Patch101: cmsfs-1.1.8-kernel26.patch @@ -67,8 +55,8 @@ Requires: s390utils-cmsfs = %{epoch}:%{version}-%{release} %description -This is a meta package for installing all s390-tools sub packages. -If you do not need all sub packages, it is recommended to install the +This is a meta package for installing the default s390-tools sub packages. +If you do not need all default sub packages, it is recommended to install the required sub packages separately. The s390utils packages contain a set of user space utilities that should to @@ -81,63 +69,31 @@ be used together with the zSeries (s390) Linux kernel and device drivers. %patch1 -p1 -b .common-mak # Patch to maintain backwards compatibility with older zipl multiboot feature -%patch4 -p1 -b .zipl-automenu +%patch2 -p1 -b .zipl-automenu # Fix to honor the silent flag for wrongly formated disks -%patch5 -p1 -b .fdasd-su +%patch3 -p1 -b .fdasd-su # Enhancement to add raid partiton support to dasds -%patch6 -p1 -b .fdasd-raid-lvm - -# Post 1.8.1 fixes for ziorep -%patch8 -p1 -b .ziorep - -# Allow override of optimization level in CFLAGS -%patch9 -p1 -b .cflags +%patch4 -p1 -b .fdasd-raid-lvm # Don't build automenu iff default menu exists (#486444) -%patch10 -p1 -b .defaultmenu - -# Remove the execuatble stack flag from zipl -%patch11 -p1 -b .execstack - -# Post 1.8.1 fixes for ziomon -%patch12 -p1 -b .ziomon - -# Post 1.8.1 fix for zipl -%patch13 -p1 -b .zipl-device +%patch5 -p1 -b .defaultmenu # Update zipl man page -%patch14 -p1 -b .zipl-kdump-man - -# Last-minute fixes from IBM -%patch15 -p1 -b .iucvterm-getlogin-to-getpwuid -%patch16 -p1 -b .dumpconf-improve-error-checking -%patch17 -p1 -b .cpuplugd-memplug - -# Adapt ziomon to the new layout of the blkiomon_stat structure (#506966) -%patch18 -p1 -b .ziomon-new-blkiomon - -# Fix byte check for disk encryption check in lsluns (#510032) -%patch19 -p1 -b .lsluns-disk-enc - -# Fix cmm configuration file value initialization parser in cpuplugd (#511379) -%patch20 -p1 -b .cpuplugd-cmminit +%patch6 -p1 -b .zipl-kdump-man # Check only ZFCP devices in lszfcp (#518669) -%patch21 -p1 -b .lszfcp-perf +%patch7 -p1 -b .lszfcp-perf # Fix string overflow in vtoc_volume_label_init (#525318) -%patch22 -p1 -b .vtoc-label +%patch8 -p1 -b .vtoc-label # Change default load address for ramdisk (#526339) -%patch23 -p1 -b .ramdisk-address +%patch9 -p1 -b .ramdisk-address -# Fix cmm_pages allocation outside min and max range (#525495) -%patch24 -p1 -b .ramdisk-address - -# Miscelaneous fixes for 1.8.1 (#525495) -%patch25 -p1 -b .misc +# Improve mon_statd init script +%patch10 -p1 -b .improve-mon_statd # # cmsfs @@ -187,7 +143,7 @@ popd %build -make OPT_FLAGS="$RPM_OPT_FLAGS" DISTRELEASE=%{release} +make OPT_FLAGS="$RPM_OPT_FLAGS" DISTRELEASE=%{release} V=1 pushd cmsfs-%{cmsfsver} ./configure @@ -213,7 +169,8 @@ make install \ INSTROOT=$RPM_BUILD_ROOT \ MANDIR=$RPM_BUILD_ROOT%{_mandir} \ LIBDIR=${RPM_BUILD_ROOT}/%{_lib} \ - DISTRELEASE=%{release} + DISTRELEASE=%{release} \ + V=1 mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig mkdir -p ${RPM_BUILD_ROOT}%{_initddir} @@ -375,19 +332,23 @@ s390 base tools. This collection provides the following utilities: * zconf: Set of scripts to configure and list status information of Linux for zSeries IO devices. - - chccwdev: Modify generic attributes of channel attached devices. - - lscss: List channel subsystem devices. - - lsdasd: List channel attached direct access storage devices (DASD). - - lsqeth: List all qeth-based network devices with their corresponding - settings. - - lstape: List tape devices, both channel and FCP attached. - - lszfcp: Shows information contained in sysfs about zfcp adapters, - ports and units that are online. - - lschp: List information about available channel-paths. - - chchp: Modify channel-path state. - - lsluns: List available SCSI LUNs depending on adapter or port. - - lszcrypt: Show Information about zcrypt devices and configuration. - - chzcrypt: Modify zcrypt configuration. + - chccwdev: Modify generic attributes of channel attached devices. + - lscss: List channel subsystem devices. + - lsdasd: List channel attached direct access storage devices (DASD). + - lsqeth: List all qeth-based network devices with their corresponding + settings. + - lstape: List tape devices, both channel and FCP attached. + - lszfcp: Shows information contained in sysfs about zfcp adapters, + ports and units that are online. + - lschp: List information about available channel-paths. + - chchp: Modify channel-path state. + - lsluns: List available SCSI LUNs depending on adapter or port. + - lszcrypt: Show Information about zcrypt devices and configuration. + - chzcrypt: Modify zcrypt configuration. + - znetconf: List and configure network devices for System z network + adapters. + - cio_ignore: Query and modify the contents of the CIO device driver + blacklist. * dumpconf: Allows to configure the dump device used for system dump in case a kernel @@ -423,7 +384,6 @@ fi %defattr(-,root,root,-) %doc README %doc LICENSE -/sbin/vmur /sbin/zipl /sbin/dasdfmt /sbin/dasdinfo @@ -432,6 +392,7 @@ fi /sbin/chccwdev /sbin/chchp /sbin/chzcrypt +/sbin/cio_ignore /sbin/lschp /sbin/lscss /sbin/lsdasd @@ -449,6 +410,7 @@ fi /sbin/tunedasd /sbin/vmcp /sbin/zgetdump +/sbin/znetconf /sbin/dbginfo.sh %{_sbindir}/lsreipl %{_sbindir}/lsshut @@ -456,10 +418,12 @@ fi %{_sbindir}/chshut %{_sbindir}/ip_watcher.pl %{_sbindir}/start_hsnc.sh +%{_sbindir}/vmur %{_sbindir}/xcec-bridge %{_bindir}/vmconvert %{_initddir}/dumpconf %config(noreplace) %{_sysconfdir}/sysconfig/dumpconf +/lib/s390-tools %{_mandir}/man1/zfcpdbf.1* %{_mandir}/man4/prandom.4* %{_mandir}/man5/zipl.conf.5* @@ -468,6 +432,7 @@ fi %{_mandir}/man8/chreipl.8* %{_mandir}/man8/chshut.8* %{_mandir}/man8/chzcrypt.8* +%{_mandir}/man8/cio_ignore.8* %{_mandir}/man8/dasdfmt.8* %{_mandir}/man8/dasdinfo.8* %{_mandir}/man8/dasdview.8* @@ -492,6 +457,7 @@ fi %{_mandir}/man8/vmcp.8* %{_mandir}/man8/vmur.8* %{_mandir}/man8/zgetdump.8* +%{_mandir}/man8/znetconf.8* %{_mandir}/man8/zipl.8* # Additional Redhat specific stuff @@ -615,18 +581,18 @@ Group: Applications/System Requires: perl lsscsi coreutils blktrace >= 1.0.1 %description ziomon -Tool set to collect data for zfcp performance analysis. +Tool set to collect data for zfcp performance analysis and report. %files ziomon %defattr(-,root,root,-) -/sbin/ziomon -/sbin/ziomon_fcpconf -/sbin/ziomon_mgr -/sbin/ziomon_util -/sbin/ziomon_zfcpdd -/sbin/ziorep_config -/sbin/ziorep_traffic -/sbin/ziorep_utilization +%{_sbindir}/ziomon +%{_sbindir}/ziomon_fcpconf +%{_sbindir}/ziomon_mgr +%{_sbindir}/ziomon_util +%{_sbindir}/ziomon_zfcpdd +%{_sbindir}/ziorep_config +%{_sbindir}/ziorep_traffic +%{_sbindir}/ziorep_utilization %{_mandir}/man8/ziomon.8* %{_mandir}/man8/ziomon_fcpconf.8* %{_mandir}/man8/ziomon_mgr.8* @@ -646,7 +612,14 @@ Group: Applications/System BuildRequires: gettext %description iucvterm -z/VM IUCV terminal applications. +A set of applications to provide terminal access via the z/VM Inter-User +Communication Vehicle (IUCV). The terminal access does not require an +active TCP/IP connection between two Linux guest operating systems. + +- iucvconn: Application to establish a terminal connection via z/VM IUCV. +- iucvtty: Application to provide terminal access via z/VM IUCV. +- ts-shell: Terminal server shell to authorize and control IUCV terminal + connections for individual Linux users. %pre iucvterm # check for ts-shell group and create it @@ -787,6 +760,10 @@ User-space development files for the s390/s390x architecture. %changelog +* Thu Oct 8 2009 Dan Horák 2:1.8.2-1 +- added patch for improving mon_statd behaviour +- rebased to 1.8.2 + * Fri Oct 2 2009 Dan Horák 2:1.8.1-8 - really changed ramdisk load address (#526339) - change the required and optional subpackages for the meta package diff --git a/sources b/sources index 1a818c5..ac05290 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -6a94c4655204a4ec7a2c64f42c9afed3 s390-tools-1.8.1.tar.bz2 +856ecdd42ad358433eb3fcc886b58a89 s390-tools-1.8.2.tar.bz2 71a8ee5918f2c44c385fcfe8350cdc98 cmsfs-1.1.8c.tar.gz 2cbfffca3f07c61420899f45d221d451 lib-zfcp-hbaapi-2.0.tar.gz ba42772e5b305b5e147344442cd70826 src_vipa-2.0.4.tar.gz