|
 |

Kernel 2.4 based: May 2002 stream
|
 |
|
 |




| The "May 2002
stream" is superseded by the "June 2003
stream" |
|
LINUX for S/390 31-bit distributions and LINUX for zSeries
64-bit distributions can be built using:
- kernel (including kernel-headers) 2.4.19 along with:
-
- kerntypes 2.4.19
- On-demand timer patch
- OCO modules qeth and tape_3590_mod
- The recommended 2.4.19 downloads of this page were tested with
the tool-chain, utilities, and debug tools:
-
- tool-chain:
-
- binutils 2.12.90.0.15
- gcc 3.2
- glibc 2.2.5
- utilities:
-
- modutils 2.4.7
- s390-tools 1.1.7
- debug tools:
-
- gdb 5.3 or gdb 5.2.1
- strace 4.4
Upgrades 2003-06-13:
- upgrade s390-tools 1.1.6 to 1.1.7
Changes 2003-04-16:
- new gdb 5.3 as improved alternative to gdb 5.2.1
Upgrades 2003-02-20:
- upgrade s390-tools 1.1.5 to 1.1.6
Upgrades 2003-02-03:
- upgrade s390-tools 1.1.4 to 1.1.5
Upgrades 2002-10-24:
Upgrades 2002-09-13:
- upgrade kernel 2.4.17 to 2.4.19
- upgrade "gcc 3.1.1 or 3.2 (when available)" to gcc 3.2
- upgrade binutils 2.12.90.0.14 to 2.12.90.0.15
- upgrade strace 4.2.2 to 4.4
Upgrades 2002-08-08:
- upgrade s390-tools 1.1.2 to 1.1.3
New support and enhancements 2002-07-31:
- upgrade binutils 2.12.90.0.4 to 2.12.90.0.14
- upgrade gcc 3.1 to 3.1.1 (or 3.2 when available)
- upgrade s390-tools 1.1.1 to 1.1.2
- upgrade gdb 5.1.1 to 5.2.1
- z90crypt in open-source form (was OCO module)
- Enhancements to kernel:
-
- Add support for diagnose 68 in 64 bit spinlock code to yield
the timeslice while looping on a spinlock.
- Add hotplug events for dasd and tape devices.
- Add dasd proc interface "brk <devno> <discipline>"
to break locks on reserved dasd devices ("Access boxed DASD").
- Add XRC timestamp support to the dasd driver
- Add signal quiesce support.
- Enhancements to s390-tools:
-
- dasdview: new option to print volume serial
- zgetdump: lkcd 4.1 dump format support for -i option
- zipl/tapedump: Multi Volume support for System Dump on 3590
tape devices
Major new support and enhancements 2002-05-31:
- Support for hardware features of the new IBM z900 Turbo models
(see
IBM U.S. Hardware Announcement Letter 102-123):
-
- OSA-Express Enhancements:
-
- Full VLAN (Virtual LAN) support
- IPv6 support on Gigabit and Fast Ethernet
Note: The LINUX ipv6-stack is still experimental.
- OSA SNMP (Simple Network Management Protocol) support
- Query and Purge ARP (Address Resolution Protocol) functionality
allows to control the ARP cache
- Broadcast support (on IPv4)
- Support for the new zSeries FCP (Fibre Channel Protocol)
attachment for SCSI (Small Computer Systems Interface)
If used under VM, this support requires z/VM 4.3.
- Miscellaneous tape device driver enhancements
- New 3590-tape device driver (Tape_3590_mod)
- VARY ON/OFF support
|

If you download any software from this web site please be aware of the
Warranty Disclaimer and Limitation of Liabilities.
Another useful debug utility: lkcdutils-4.1 now includes further updates and
bugfixes for the dump analysis tool lcrash. With lcrash it is
possible to analyze system dumps created with the LINUX for zSeries
dump tools. lkcdutils can be downloaded under
http://lkcd.sourceforge.net or
http://sourceforge.net/projects/lkcd.
See lkcdutils-4.1
Reduce dump size (savedump) patch to add new functions to the
lkcdutils-4.1 from sourceforge.
|
|
If you download any software from this web site please be aware of the
Warranty Disclaimer and Limitation of Liabilities.
Below are the downloads (with description) for the kernel 2.4.19
"May 2002 stream", listed in reverse chronological order. This can
be used to backtrack the "May 2002 stream".
The System Build Cross Reference shows
the most current set of downloads for the "May 2002 stream"
and ignores superseded patches and modules (which are still shown
below if not moved to the Archive).
|
|
- kernel 2.4.19 ("May 2002", 2003-06-13)
Note: In addition to the usual tarball containing one large
"accumulated" patch we now provide another tarball, containing a
set of "per-problem-patches" which when combined correspond to the
accumulated patch.
These patches contain the following linux kernel
bug fixes:
| Description: |
kernel: s390dbf - invalid call of create_proc_entry() within
spin_lock_irqsave() section. |
| Symptom: |
Kernel hang when registering a s390dbf view in low memory
situations. |
| Problem: |
It is not allowed to call kmalloc() with GFP_KERNEL when
interrupts are disabled! create_proc_entry() calls kmalloc().
create_proc_entry() is called when interrupts are disabled. |
| Solution: |
Call create_proc_entry() before critical section is entered and
before interrupts are disabled. |
| Problem-ID: |
2719 |
| Description: |
dasd: Disable DASD_DIAG for 64 bit. |
| Symptom: |
DASD_DIAG does not work for 64 bit guests with memory > 2GB.
(VM does not support it). |
| Problem: |
See Symptom! |
| Solution: |
Disable DIAG for 64 bit. Then automatically the ECKD discipline
is used by the dasd driver. |
| Problem-ID: |
n/a |
| Note: |
applicable for 64-bit Linux, only |
| Description: |
Address space switching instruction in user space does not
fault. |
| Symptom: |
System crash due to cpus entering an endless program check
loop. |
| Problem: |
A non-priviledged instruction which can change the primary
space origin is not fenched correctly. |
| Solution: |
Set control register 5 to some value unequal to zero. |
| Problem-ID: |
2893 |
| Description: |
dasd: Unable to reserve a device. |
| Symptom: |
Reserve / Release leads to an I/O error. |
| Problem: |
Reserve CP returns with subchannel status "incorrect length"
(seems that new microcode checks length). |
| Solution: |
Set correct length counter in CP. |
| Problem-ID: |
2926 |
| Description: |
dasd: Problems when echoing invalid devno to
/proc/dasd/devices. |
| Symptom: |
Linux hangs when non-existing device is 'set off'. |
| Problem: |
The spinlock was not released in error path. |
| Solution: |
Release the spinlock. |
| Problem-ID: |
2927 |
| Description: |
/proc/cio_ignore parsing. |
| Symptom: |
Piping various combinations of device ranges and device numbers
to /proc/cio_ignore leads to "illegal operation" or "Trying to
vfree() bad address". |
| Problem: |
Parser called from /proc/cio_ignore didn't work properly. |
| Solution: |
Backport working /proc/cio_ignore parser from 2.5. |
| Problem-ID: |
2934 |
| Description: |
Endless error recovery when trying to open an initiator
port. |
| Symptom: |
Lots of "Temporary port identifier (handle) not valid"
messages. |
| Problem: |
When trying to open an initiator port, the FCP microcode
returned erroneously a port handle of 0. Using this port handle to
open a LUN will result in port identifier not valid messages from
microcode and trigger endless error recovery. |
| Solution: |
Change zfcp error recovery to be able to handle changed FCP
microcode return value. |
| Problem-ID: |
3015 |
| Description: |
CTC: System hang on shutdown of remote OS/390. |
| Symptom: |
Shutting down a remotely connected OS/390 system causes a
system hang. |
| Problem: |
Receiving garbage data from remote was not properly
handled. |
| Solution: |
Added additional validation of received data. |
| Problem-ID: |
2314 |
| Description: |
Clearing of .bss section. |
| Symptom: |
Kernel compiled with gcc 3.3 doesn't work. |
| Problem: |
gcc 3.3 puts global variables with an initial value of zero to
the .bss section. gcc < 3.3 puts these variables to the .data
section. This makes a difference because the clearing of the .bss
section is done after the store of the detected memory size to
memory_size. |
| Solution: |
Move clearing of the .bss section before the memory
detection. |
| Problem-ID: |
3135 |
| Description: |
Warning machine checks disabled. |
| Symptom: |
System does not shutdown on warning machine check. |
| Problem: |
The ctl_set_bit call to enable the warnings machine checks in
control register 14 is always removed by the preprocessor because
of a typo in an #ifdef. |
| Solution: |
Fix the typo. |
| Problem-ID: |
3136 |
| Description: |
Fixed-point divide exception in boot process. |
| Symptom: |
Kernel crashes with a fixed-point device exception. |
| Problem: |
The clock comparator interrupt is enabled before the clock
comparator is set to its initial value. If the system is started
without doing a system clear first, the clock comparator may still
have an old value. The clock comparator can then interrupt too
early. |
| Solution: |
Initialise clock comparator first, then enable the clock
comparator interrupt. |
| Problem-ID: |
3137 |
| Description: |
Syscall macros and gcc 3.3. |
| Symptom: |
Errors when compiling the kernel with gcc 3.3. |
| Problem: |
The gcc 3.3 complains if you have a register in the clobber
list that is also give as the location for one of the
parameters. |
| Solution: |
Fix clobber list and optimize inline assemblies. |
| Problem-ID: |
3135 |
| Description: |
31 bit emulation of read, write, pread and pwrite. |
| Symptom: |
Return codes for invalid parameters are wrong. |
| Problem: |
The parameter checks for the read, write, pread and pwrite
system calls have to check with the 32 bit equivalents of the types
for count, poshi and poslo. |
| Solution: |
Correct parameter checks in the emulation layer. |
| Problem-ID: |
3138 |
| Note: |
applicable for 64-bit Linux, only |
| Description: |
31 bit emulation ioctls. |
| Symptom: |
31 bit programs using certain ioctls don't work when run under
a 64 bit kernel. |
| Problem: |
The emulation for the ioctls TCSBRKP, SIOCATMARK, RAW_SETBIND
and RAW_GETBIND is missing. Program calling these ioctls get
-EINVAL. |
| Solution: |
Add missing ioctls to 31 bit emulation layer. |
| Problem-ID: |
3138 |
| Note: |
applicable for 64-bit Linux, only |
| Description: |
Compiling with gcc 3.3 |
| Symptom: |
Errors when compiling the dasd driver with gcc 3.3. |
| Problem: |
The gcc 3.3 complains about the type "__u16 short". |
| Solution: |
Replace "__u16 short" with __u16. |
| Problem-ID: |
3135 |
| Description: |
chandev configuration |
| Symptom: |
Argument errors when writing to /proc/chandev. |
| Problem: |
The parsing of the auto_msck and del_auto_msck verbs is broken
because of missing breaks in a switch statement. |
| Solution: |
Add breaks. |
| Problem-ID: |
3139 |
| Description: |
Many iucv devices. |
| Symptom: |
Deadlock when starting more than 160 iucv devices. |
| Problem: |
iucv_connect allocates an iparml_control structure to do the
iucv connect. Between the allocation and the release of the
structure an iucv_setmask is done which needs a iparml_control
element too. If 160 iucv connection are started simultaneously all
iparml_control structures are allocated and iucv_setmask loops
indefinitly in grab_param. |
| Solution: |
Release iparml_control structure immediatly after connect. |
| Problem-ID: |
3140 |
| Description: |
Module loader. |
| Symptom: |
Module load fails with error messages "init_module: changed
module name ...". |
| Problem: |
There are two problem in the kernel module code. 1) A
size-check in sys_create_module is off by one byte. 2)
sys_init_module checks the module name using a buffer that might
have been overwritten. This happens if the struct module used by
insmod is larger than the one used by the kernel (e.g. modutils
with the gcov patch). |
| Solution: |
Correct the two checks. |
| Problem-ID: |
3141 |
| Description: |
noop elevator |
| Symptom: |
Performance improvement. |
| Problem: |
The dasd driver shouldn't use an elevator algorithm because the
emulation of a dasd devices in the storage subsystems removes any
potential for disk head optimization. |
| Solution: |
Enable the no-op elevator. |
| Problem-ID: |
3142 |
| Description: |
vmalloc with user specified length. |
| Symptom: |
Error message "kernel BUG at vmalloc.c" |
| Problem: |
cio_ignore_proc_write calls vmalloc with an arbitrary user
specified length. If the user passes a value that exceeds the
memory size a BUG() is triggered in vmalloc.c. |
| Solution: |
Limit user specified length to 64K. |
| Problem-ID: |
3143 |
| Description: |
memory management: dirty bit clearing. |
| Symptom: |
I/O errors on read only disks. |
| Problem: |
The dirty bit for a new page needs to get set to zero. So far
this is done in mk_pte/set_pte. The call to mk_pte for the first
user of a page sets a bit in the pte that causes set_pte to clear
the dirty bit. This is a race condition if two processes want to
access the same page simultaneously. |
| Solution: |
Move dirty bit clearing from mk_pte() to
SetPageUptodate(). |
| Problem-ID: |
3144 |
Everybody should apply this patch.
To create the complete linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.19.tar.gz (see www.kernel.org)
+ linux-2.4.19-s390-may2002.diff (IBM)
+ linux-2.4.19-s390-1-may2002.diff (IBM)
+ linux-2.4.19-s390-2-may2002.diff (IBM)
+ linux-2.4.19-s390-3-may2002.diff (IBM)
+ linux-2.4.19-s390-4-may2002.diff (IBM)
+ linux-2.4.19-s390-5-may2002.diff (IBM)
+ linux-2.4.19-s390-6-may2002.diff (IBM)
Note: If On-demand timer
is required, apply as last patch:
+ linux-2.4.19-timer-2-may2002.diff (IBM)
-
- On-demand timer patch kernel 2.4.19 ("May 2002",
2003-06-13)
linux-2.4.19-timer-2-may2002.tar.gz
MD5
recommended (2003-06-13)
On demand timer patch:
Contains a patch for the linux kernel 2.4.19 that changes the
timing method from the regular 100 hz interrupts to on demand timer
interrupts. This saves some cpu cycles in an idle linux image. The
drawback is that a busy linux image will do a small amount of
additional work every time the switch between user mode and kernel
mode is done. In short if you are running many images under VM the
on demand timers are useful but you probably don't want to use it
running under LPAR or native. The patch introduces a configuration
option CONFIG_NO_IDLE_HZ_TIMER that lets you choose between the old
and the new behavior.
To create the complete kernel sources, apply
all IBM kernel 2.4.19 patches on top of linux-2.4.19.tar.gz (see
www.kernel.org)
and as last patch
+ linux-2.4.19-timer-2-may2002.diff (IBM)
|
- The qeth 31-bit and 64-bit
OCO-modules of 2003-06-13 are replacements for the 2002-12-19
recommended qeth modules.
It is recommended to use s390-tools 1.1.7 with these modules.
- qeth kernel 2.4.19 ("May 2002", 2003-06-13)
31-bit:
qeth-2.4.19-s390-2-may2002.tar.gz
MD5
(2003-06-13)
64-bit:
qeth-2.4.19-s390x-2-may2002.tar.gz
MD5
(2003-06-13)
| Description: |
qeth memory referenced after module removal. |
| Symptom: |
Oops after rmmod qeth |
| Problem-ID: |
3064 |
| Description: |
osasnmpd failed with several SNMP replies from qeth |
| Symptom: |
osasnmpd terminates with bad return code |
| Problem-ID: |
2834 |
| Description: |
high percentage of dropped packets using UDP |
| Symptom: |
qeth had high percentage of dropped UDP packets running on VM
in V=V mode and also in V=R mode |
| Problem-ID: |
2574 |
| Description: |
qeth sent wrong command when doing ioctl |
| Symptom: |
When issueing SIOCDEVPRIVATE+2, a wrong command code was sent
to the card |
| Problem-ID: |
2545 |
| Description: |
improper multicast IP housekeeping. |
| Symptom: |
Msg on interface shutdown, cannot delete multicast IP |
| Problem-ID: |
2090 |
| Description: |
IFF_BROADCAST flag not set |
| Symptom: |
ifconfig does not show broadcast-ability of devices |
| Problem-ID: |
1833 |
- tape_3590_mod kernel 2.4.19 ("May 2002", 2003-06-13)
The
tape_3590 31-bit and 64-bit OCO-modules of 2003-06-13
are replacements for the 2002-09-13 recommended tape_3590 modules
without changes.
31-bit:
tape3590-2.4.19-s390-1-may2002.tar.gz
MD5
(2003-06-13)
64-bit:
tape3590-2.4.19-s390x-1-may2002.tar.gz
MD5
(2003-06-13)
|
- kernel 2.4.19 ("May 2002", 2003-04-16)
Note: In addition to the usual tarball containing one large
"accumulated" patch we now provide another tarball, containing a
set of "per-problem-patches" which when combined correspond to the
accumulated patch.
These patches contain the following linux kernel
bug fixes:
| Description: |
SCSI stack sets devices to blocked during ESS error injection
tests |
| Symptom: |
I/O on scsi devices became stalled when PPRC tests on ESS
during FCP workload |
| Problem: |
Devices are marked as blocked after QUEUE_FULL status code is
return for the last scsi command, because no command is pending
device cannot be unblocked anymore |
| Solution: |
If QUEUE_FULL is returned for the last pending command of an
adapter or device, the command will now be requeued, device resp.
adapter is not marked as blocked |
| Problem-ID: |
2259 |
| Description: |
dasd: discipline load order problem (with DIAG) |
| Symptom: |
CMS RESERVED minidisks are accessed via ECKD discipline even if
dasd_diag module was loaded. |
| Problem: |
The discipline load order is responsible for the decision which
discipline (ECKD or DIAG) is used to access CMS RESERVED
minidisks. |
| Solution: |
Load DIAG always to the beginning. This means that DIAG is used
as soon as the module is loaded. |
| Problem-ID: |
2256 |
| Note: |
applicable for 31-bit Linux, only |
| Description: |
cio: Handling of not operational paths. |
| Symptom: |
Devices for which a path is not operational are not
recognized. |
| Problem: |
Only deferred cc=3 was handled correcty; cc=3 on ssch() with a
specified lpm was always treated as device not operational (this
only happens on some models). |
| Solution: |
Make SensePGID and SetPGID handle cc=3 on ssch() correctly
(switch off path and not device). |
| Problem-ID: |
2406 |
| Description: |
cio: oopses from debug feature. |
| Symptom: |
Oops when looking at cio_msg dbf. |
| Problem: |
s390_displayhex2, which was supposed to dump data into sprintf
feature, didn't work. |
| Solution: |
Replace s390_displayhex2 with directly dumping into cio_trace
hex_ascii view. |
| Problem-ID: |
2409 |
| Description: |
SCSI commands queue full causes kernel panic |
| Symptom: |
in scsi_free() a panic occurred (Panic: Bad offset) |
| Problem: |
field cmd in struct request is not reset from SPECIAL to
original value for partially fulfilled requests |
| Solution: |
set field cmd in struct request for partially fulfilled
requests from SPECIAL to original value (READ or WRITE) |
| Problem-ID: |
2260 (and refer to 1586) |
Everybody should apply this patch.
To create the complete linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.19.tar.gz (see www.kernel.org)
+ linux-2.4.19-s390-may2002.diff (IBM)
+ linux-2.4.19-s390-1-may2002.diff (IBM)
+ linux-2.4.19-s390-2-may2002.diff (IBM)
+ linux-2.4.19-s390-3-may2002.diff (IBM)
+ linux-2.4.19-s390-4-may2002.diff (IBM)
+ linux-2.4.19-s390-5-may2002.diff (IBM)
Note: If On-demand timer
is required, apply as last patch:
+ linux-2.4.19-timer-1-may2002.diff (IBM)
|
- gdb 5.3 ("May 2002", 2003-04-16)
Category application development tool. Contains the GNU debugger.
It can be used as an interactive symbolic debugger as well as a
post-mortem debugger.
gdb 5.3 is an improved alternative to gdb 5.2.1 in the "May 2002
stream".
gdb-5.3-s390-may2002.tar.gz
MD5
recommended (2003-04-16)
This patch contains the following
debugger bug fixes:
| Description: |
Backtraces do not work in gcc 3.x optimized code |
| Symptom: |
When debugging code compiled with gcc 3.x and optimization
switched on, stack backtraces do not work. |
| Problem: |
The gdb function prolog parser is confused by gcc 3.x generated
code. |
| Solution: |
Use DWARF-2 CFI data when present (gcc 3.3) to perform
backtraces; for gcc 3.2 use an improved prolog parser. |
| Description: |
The gdb commands print and call don't work properly on Linux
for zSeries. |
| Symptom: |
Several testcases for the gdb commands print and call of the
gdb regression test suite fail on Linux for zSeries. |
| Problem: |
The gdb source code does not implement the Linux for zSeries
ELF ABI correctly |
| Solution: |
Fix the ELF ABI implementation bugs. |
Note: This patch changes gdb common code in a manner that
might cause problems for other platforms. Use the debugger sources
created by appyling this patch only to build a debugger for the
s390 or s390x architectures.
To create the complete debugger
sources, the following patches need to be applied in sequence:
gdb-5.3.tar.bz2 (GNU)
+ gdb-5.3-s390-may2002.diff (IBM)
|
- kernel 2.4.19 ("May 2002", 2003-03-17)
Note: In addition to the usual tarball containing one large
"accumulated" patch we now provide another tarball, containing a
set of "per-problem-patches" which when combined correspond to the
accumulated patch.
These patches contain the following linux kernel
bug fixes:
| Description: |
Memory allocations not checked. |
| Symptom: |
Possible oopses or BUG()s (not observed yet). |
| Problem: |
Failure to check if an allocation was successful. Missing
flags. |
| Solution: |
Check if allocation worked; clean up if not. Add
GFP_ATOMIC. |
| Problem-ID: |
1892 |
| Description: |
zfcp: correction of /proc/scsi/zfcp/add_map permissions. |
| Symptom: |
/proc/scsi/zfcp/add_map is wrongly marked as readable. |
| Problem: |
Superfluous read permission bits on file creation. |
| Solution: |
Discard read permission in bit mask. |
| Problem-ID: |
1904 |
| Description: |
munmap frees pages still in use. |
| Symptom: |
User process crashes and/or kernel oops in page_alloc.c. |
| Problem: |
sys_munmap for a mapping near the end of the address space
frees pages still in use. This is caused by an address calculation
overflow in free_pgtables. |
| Solution: |
Check for the overflow in free_pgtables. |
| Problem-ID: |
1233 |
| Description: |
TLB flushes in multithreaded programs. |
| Symptom: |
Program crashes. |
| Problem: |
There is a race condition on the mm->cpu_vm_mask in
__flush_tlb_mm. A freshly created thread does not increase
mm->mm_count immediatly. It is increased when the new thread is
scheduled on a processor. This opens a window between reading
mm->mm_count and the reset of the mm->cpu_vm_mask in
__flush_tlb_mm. If another processor schedules the freshly created
thread after mm->mm_count has been read but before the
mm->cpu_vm_mask has been reset a bit in cpu_vm_mask can get
lost. |
| Solution: |
Check mm->mm_users instead of mm->mm_count. |
| Problem-ID: |
2004 |
| Description: |
DASD devices will not be set 'online' on slow/fast
systems. |
| Symptom: |
Root volume does not go online. |
| Problem: |
Bottom half raises DASDD state before main path. |
| Solution: |
Extend scope of irq_lock to include change of state. |
| Problem-ID: |
1919 |
| Description: |
Fixes for low memory emergency IDAL handling. |
| Symptom: |
Kernel might hang in low memory situations. |
| Problem: |
Possible memory overwrite during emergency idal creation. |
| Solution: |
Check if data fit into the available emergency IDAL page before
writing them. |
| Problem-ID: |
2098 |
| Note: |
applicable for 64-bit Linux, only |
| Description: |
Correction of SCSI status QUEUE_FULL handling. |
| Symptom: |
I/O errors on SCSI devices reporting QUEUE_FULL SCSI
status. |
| Problem: |
Mapped QUEUE_FULL to BUSY. |
| Solution: |
Don't touch SCSI status. |
| Problem-ID: |
2129 |
| Description: |
Boxed dasd not recognized. |
| Symptom: |
A boxed dasd shows up as "unknown" instead of boxed. |
| Problem: |
Checked for reserved status in pgid instead of tmp_pgid. |
| Solution: |
Check for reserved status in tmp_pgid. |
| Problem-ID: |
2141 |
| Description: |
Fixed channel program flag setting in XRC timestamping. |
| Symptom: |
There might be 'command rejects' and other unpredictable
behavior. |
| Problem: |
Setting of the bit was overwriting all other bits in the
flags. |
| Solution: |
Set the bit in addition. |
| Problem-ID: |
2162 |
| Note: |
applicable for 64-bit Linux, only |
| Description: |
IFCC handling fixed. |
| Symptom: |
IO errors after interface control check |
| Problem: |
dasd interrupt handler does recognize an interface control
check and triggers the error recovery mechanism but does not
provide sense data (none available) which cannot be handled by the
error recovery. |
| Solution: |
Retry the request. |
| Problem-ID: |
2167 |
| Description: |
Dead code removal. |
| Symptom: |
None. |
| Problem: |
None. |
| Solution: |
Deletion of some obsolete and unused code. |
| Problem-ID: |
2169 |
Everybody should apply this patch.
To create the complete linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.19.tar.gz (see www.kernel.org)
+ linux-2.4.19-s390-may2002.diff (IBM)
+ linux-2.4.19-s390-1-may2002.diff (IBM)
+ linux-2.4.19-s390-2-may2002.diff (IBM)
+ linux-2.4.19-s390-3-may2002.diff (IBM)
+ linux-2.4.19-s390-4-may2002.diff (IBM)
Note: If On-demand timer
is required, apply as last patch:
+ linux-2.4.19-timer-1-may2002.diff (IBM)
|
- kernel 2.4.19 ("May 2002", 2003-02-03)
Category operating system. Contains the LINUX kernel source code as
well as the S/390 and zSeries specific layers.
Note: In addition to the usual tarball containing one large
"accumulated" patch we now provide another tarball, containing a
set of "per-problem-patches" which when combined correspond to the
accumulated patch.
These patches contain the following linux kernel
bug fixes:
| Description: |
Status pending handling. |
| Symptom: |
Possibly all kinds of erratic behaviour. |
| Problem: |
Upon encountering a cc=1 (status pending) condition when trying
to start an I/O operation, Linux called the common interrupt
handler to process the pending status, but couldn't call the
registered interrupt handler. This could lead to interrupts not
reported to the device driver which contained important
information. |
| Solution: |
Only process cc=1 internally when doing sync. I/O; otherwise
return -EBUSY and process the interrupt as soon as interrupts are
enabled again. |
| Problem-ID: |
1844 |
| Description: |
Path not operational handling. |
| Symptom: |
Paths which are fine appear as not operational. |
| Problem: |
When Linux encountered a deferred condition code 3, or another
not operational situation, it considered the path designated in the
last path used mask (lpum) to be not operational and switched it
off. However, (1) the lpum shows the last *successfully* used path,
and (2) deferred cc 3 doesn't necessarily mean the path is not
operational. |
| Solution: |
Don't switch off paths for all devices, and switch off paths
for a device only according to the path not operational mask
(pnom). |
| Problem-ID: |
1614 |
| Description: |
Zero sense data. |
| Symptom: |
Device drivers get confused by non-existent sense data. |
| Problem: |
Zero sense data was obtained by the common I/O layer, but the
DEVSTAT_SENSE_AVAIL flag is set. |
| Solution: |
Reset DEVSTAT_SENSE_AVAIL if sense_count is zero. |
| Problem-ID: |
1615 |
| Description: |
Basic sense return code. |
| Symptom: |
Zero sense data, lost interrupt information. |
| Problem: |
The common I/O layer didn't check if starting the basic sense
ccw was successful and therefore didn't realise the next incoming
interrupt didn't signify the successful completion of the basic
sense operation. |
| Solution: |
Check return code of basic sense. |
| Problem-ID: |
1616 |
| Description: |
Synchronous isc not correctly set. |
| Symptom: |
Linux runs into deadlock with all cpus in
enable_cpu_sync_isc. |
| Problem: |
When msch() fails to set the sync isc in enable_cpu_sync_isc
and encounters a status pending, s390_process_IRQ() is called while
the syncio bit is set for the subchannel. I/O called from there
assumes it is synchronous and has isc 5 exclusively, which is not
true and can lead into another subchannel trying to get the
sync_isc lock. |
| Solution: |
(1) Set the syncio flag only after a successful msch().
(2) Reset sync_isc_count and give up the sync_isc lock if sync isc
is not set. |
| Problem-ID: |
1618 |
| Description: |
Backspacing more than 511 files doesn't work. |
| Symptom: |
Issuing for example 'mt bsf 600' will give an error
message. |
| Problem: |
The fix for the count >511 problem missed the bsf
command. |
| Solution: |
Add the bsf command to the list of commands that can handle a
count >511. |
| Problem-ID: |
1625 |
| Description: |
zfcp: zfcp_abt* debug feature improvements. |
| Symptom: |
n/a |
| Problem: |
n/a |
| Solution: |
Enhanced record written to the zfcp_abt* debug feature. |
| Problem-ID: |
1846 |
| Description: |
oops during dyn. addition of FCP adapter. |
| Symptom: |
The zfcp device driver causes an oops (null pointer
dereference) when an adapter gets online (machine check handler,
e.g. triggered by config on or the attach command under VM) and no
adapter is configured to be used by zfcp. |
| Problem: |
Unconditionally dereferencing a pointer which is NULL under the
described circumstances. |
| Solution: |
Check for NULL pointer added. |
| Problem-ID: |
1752 |
| Description: |
Reopening connection to non-existent FC target port. |
| Symptom: |
Message "zfcp: zfcp_erp_port_reopen: bug: No adapter specified
(null pointer)" or kernel Oops (NULL pointer dereference). |
| Problem: |
NULL pointer dereference in unsolicited status handler (type:
port closed indication). |
| Solution: |
Check for NULL pointer. (in order to improve readability and
maintainability some code has been cleaned up in doing so:
unsolicited status handling, port closed indication). |
| Problem-ID: |
1780 |
| Description: |
Improved traces for incoming ELS. |
| Symptom: |
Console might be flooded by rather useless logs for incoming
ELS (depending on logging level). |
| Problem: |
Too much logging for incoming ELS via printk. |
| Solution: |
Introduction of a debug feature area for incoming ELS, cleanup
of printk logging for incoming ELS (in order to improve readability
and maintainability some code has been cleaned up in doing so:
handling of incoming ELS, generation of debug feature areas). |
| Problem-ID: |
1847 |
| Description: |
Blocksize checking in DASD device driver. |
| Symptom: |
Possible device- or system-hang. |
| Problem: |
Request with invalid blocksize leads to BUG. |
| Solution: |
Post such request with I/O-error and continue processing. |
| Problem-ID: |
1633 |
| Description: |
Fixes for ESS DASD device support. |
| Symptom: |
Various effects (from "not visible for user" up to "system
hang"). |
| Problem: |
Error recovery problems in ESS DASD specific scenarios. |
| Solution: |
Enhanced and fixed various ERP scenarios. |
| Problem-ID: |
1838 |
| Description: |
Kernel Build fails when CONFIG_Z90CRYPT is selected instead of
CONFIG_Z90CRYPT_MODULE. |
| Symptom: |
Compile of z90main.c fails. |
| Problem: |
The variable __this_module has no meaning unless the compile
flag MODULE is defined. |
| Solution: |
Surround the code containing __this_module with #ifdef MODULE
... #endif. |
| Problem-ID: |
1836 |
Everybody should apply this patch.
To create the complete linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.19.tar.gz (see www.kernel.org)
+ linux-2.4.19-s390-may2002.diff (IBM)
+ linux-2.4.19-s390-1-may2002.diff (IBM)
+ linux-2.4.19-s390-2-may2002.diff (IBM)
+ linux-2.4.19-s390-3-may2002.diff (IBM)
|
- The qeth 31-bit and 64-bit
OCO-modules of 2002-12-19 are replacements for the 2002-09-13
recommended qeth modules.
- qeth kernel 2.4.19 ("May 2002", 2002-12-19)
(superseded)
31-bit:
qeth-2.4.19-s390-1-may2002.tar.gz
MD5
(2002-12-19)
64-bit:
qeth-2.4.19-s390x-1-may2002.tar.gz
MD5
(2002-12-19)
| Description: |
Re-enable OSA features like broadcast after cable pull. |
| Symptom: |
Broadcast doesn't work on OSD devices after cable pull. |
| Description: |
Fix MAC decoding problem for VM Guest LAN interfaces (needs PTF
UM30652, available for z/VM 4.3.0). |
| Symptom: |
MAC address could not be determined for VM Guest LAN
interfaces. |
| Description: |
Removed message "adapter is using anycast or nocast. Using
unicast instead." |
| Symptom: |
A lot of messages "adapter is using anycast or nocast. Using
unicast instead." showing up, possibly jamming the console. |
| Description: |
Fix high load in many-to-one communication scenarios. |
| Symptom: |
When multiple guests send traffic to one destination under VM
LAN, the Linux load goes to 100% |
|
- kernel 2.4.19 ("May 2002", 2002-11-25)
Category operating system. Contains the LINUX kernel source code as
well as the S/390 and zSeries specific layers.
linux-2.4.19-s390-2-may2002.tar.gz
MD5
recommended (2002-11-25)
This patch contains the following
linux kernel bug fixes:
| Description: |
Kernel: ctc recovery. |
| Symptom: |
Ctc connection doesn't come up again after a peer reset. |
| Problem: |
After a peer reset the automatic ctc restart sometimes ends
with an i/o error. |
| Solution: |
Add a timer that restarts the ctc setup after i/o errors. |
| Description: |
Kernel: TLBs not flushed under heavy swapping. |
| Symptom: |
Random memory corruption leading to program crashes or wrong
data. |
| Problem: |
The __flush_tlb_mm function sets the cpu_vm_mask to the current
cpu if it does a global flush. This is wrong in the case that the
flush is done for a different mm than the current one for the cpu.
The next flush can fail to remove the tlb which another cpu created
for this mm. |
| Solution: |
Reset cpu_vm_mask to the current cpu only if the mm is the
active mm for this cpu and the cpu is the exclusive user for the
mm. |
| Description: |
Kernel: forgotten dirty bits. |
| Symptom: |
Random crashes/data losses on a system with the ul-kernel. |
| Problem: |
One optimization in the ul-kernel uses pte_mkwrite to make an
exclusive page immeditalty writeable after the page has been
swapped back into the storage and the vm area is writeable.
pte_mkwrite fails to remove the _PAGE_ISCLEAN bit. Since the page
is writeable the _PAGE_ISCLEAN is never removed and any writes to
the page can get lost under memory pressure. |
| Solution: |
Remove the _PAGE_ISCLEAN bit in pte_mkwrite. |
| Note: |
On a vanilla kernel this problem does NOT show up since the
pte_mkwrite is always used in combination with pte_mkdirty. |
| Description: |
Kernel: dynamic attach of dasd device causes panic. |
| Symptom: |
Kernel panic after dynamic device attachment ('echo add
device') |
| Problem: |
If an interrupt appeared during device bringup, process_queues
accessed the already existing but not initialized request_queue
structure. |
| Solution: |
Access the request_queue only if it was fully initialized. |
| Description: |
Kernel: reserve/release of dasd device hangs. |
| Symptom: |
Reserve/release hangs if device was unconditional reserved by
someone else. |
| Problem: |
Reserve/release request got a busy interrupt and the resulting
ERP tried to restart the request. After the timeout expired, the
reserve/release request was cleared, but the ERP request was still
pending. |
| Solution: |
Clear the possible ERP requests together with the original
request. |
| Description: |
Kernel: improved traces for aborted SCSI commands |
| Symptom: |
n/a |
| Problem: |
Insufficient traces for timeout conditions and SCSI command
aborts in the zfcp driver. |
| Solution: |
Added debug feature entry for tracing of SCSI command aborts
(/proc/s390dbf/zfcp_abt<devno>). |
| Description: |
Kernel: removing some zfcp debugging messages. |
| Symptom: |
The zfcp driver posts some debugging messages even if
configured to be silent. |
| Problem: |
Wrong logging level applied to some messages. |
| Solution: |
Corrected logging level of those messages. |
| Description: |
Kernel: trace level confusion of zfcp debug feature
entries. |
| Symptom: |
Unexpected verbosity of
/proc/s390dbf/zfcp_cmd<devno>/hex_ascii. |
| Problem: |
Instead of setting the trace level for the
zfcp_cmd<devno> dbf the trace level of zfcp_req<devno>
was reset. |
| Solution: |
Set trace level of the intended dbf (zfcp_cmd<devno>)
instead of the wrong one (zfcp_req<devno>) |
Everybody should apply this patch.
To create the complete linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.19.tar.gz (see www.kernel.org)
+ linux-2.4.19-s390-may2002.diff (IBM)
+ linux-2.4.19-s390-1-may2002.diff (IBM)
+ linux-2.4.19-s390-2-may2002.diff (IBM)
|
- kernel 2.4.19 ("May 2002", 2002-10-24)
Category operating system. Contains the LINUX kernel source code as
well as the S/390 and zSeries specific layers.
linux-2.4.19-s390-1-may2002.tar.gz
MD5
recommended (2002-10-24)
This patch contains the following
linux kernel bug fixes:
| Description: |
Kernel: crypto operation exceptions cause kernel oops. |
| Symptom: |
Kernel oops message. |
| Problem: |
The program check handler uses a program check table with 128
entries to call the appropriate function to handle a program check.
The code did not mask the lower 7 bits before indexing the table
but the crypto operation exception has program check code 0x119.
The memory after the program check table that is indexed by 0x119
contains zeroes and the program check handler branches to
zero. |
| Solution: |
Mask lower 7 bits of program check code before indexing the
program check table. |
| Description: |
Kernel: problem in termination of /linuxrc. |
| Symptom: |
After the end of the execution of /linuxrc the systen hangs
with 100% cpu. |
| Problem: |
The kernel thread handle_initrd forks another kernel thread for
the execution of /linuxrc and then waits for its end with wait().
handle_initrd is called with access register 4 pointing to user
space (set_fs(USER_DS)). The store of the exit status of /linuxrc
in the wait system call is done with put_user(). Since access
register 4 points to user space but a kernel process does not have
a user space this causes a crash and an endless trap loop. |
| Solution: |
Start the kernel with access register 4 pointing to the kernel
space, correctly set the access register 4 for new processes in
copy_thread and correctly restore access register 4 in
chandev_read_conf. |
| Description: |
Kernel: missing SIGURG check. |
| Symptom: |
Process gets terminated if it gets a SIGURG signal and does not
have a signal handler installed for SIGURG. |
| Problem: |
A process without a signal handler for SIGURG is supposed to
ignore the signal. A check for SIGURG was missing in the signal
handler code. |
| Solution: |
Add check to ignore SIGURG. |
| Description: |
Kernel: crashes in copy_to_user. |
| Symptom: |
Kernel oops message. |
| Problem: |
The fixup routine if __copy_to_user that is called after an
unresolvable fault of the mvcle instruction accesses the program
check old psw and the translation exception address fields in the
lowcore. But the program check handler may have already called
schedule and another process may have overwritten this
information. |
| Solution: |
Don't rely on any information stored in the lowcore in the
fixup routine of __copy_to_user. |
| Description: |
Kernel: codepage conversion problem. |
| Symptom: |
Input strings with certain length are not translated
correctly. |
| Problem: |
codepage_convert for strings with n*256+1 bytes only convert
(n-1)*256+1 bytes because of an incorrect branch instruction. |
| Solution: |
Correct branch instruction. |
| Description: |
31 bit emulation: broken sys_recvmsg emulation. |
| Symptom: |
ping doesn't work in 31 bit emu layer. |
| Problem: |
Incoming and outgoing timestamps were not converted. Some
sys32_recvmsg out parameters were not set. |
| Solution: |
Timestamps are now converted. recvmsg has been partially
restructured and out parameters are set. |
| Description: |
Dasd: i/o controls work for non-dasd devices. |
| Symptom: |
On an unpartitioned SCSI disk, a partition is available. |
| Problem: |
scsi disk gets recognized by IBM partition code. |
| Solution: |
Deny dasd ioctls for non-dasd-devices with correct return
code |
| Description: |
Dasd: reserve/release hangs. |
| Symptom: |
Kernel hang during Dasd Reserve/Release in parallel with
massive IO |
| Problem: |
The same timer variable was used for different activities. |
| Solution: |
Fixed timer usage (race condition). |
| Description: |
SCSI: Improved HBA-driver-internal retry. |
| Symptom: |
Tape write or read requests may have been retried at the wrong
position. |
| Problem: |
zfcp used the same retry count adjustments for tapes and disks
allowing 5 retries in each case. No retries must be allowed for
character devices. |
| Solution: |
Retry count is modified in such a way that it only allows the
maximum original retries to happen. |
| Description: |
Kernel: Parameter parsing. |
| Symptom: |
Kernel panic in dasd_cleanup / dasd_discipline_del. |
| Problem: |
A tab in the kernel parameters confuses the parsig function of
the dasd driver. The initialization of the dasd driver fails and in
the cleanup processing the not initialized list head of a dasd
discipline leads to an oops. |
| Solution: |
Statically initialize list heads in the dasd disciplines. |
| Description: |
Dasd: /proc interface. |
| Symptom: |
Some names in /proc/dasd/devices and in the boot messages are
missing. |
| Problem: |
Processing of the dasd major list in dasd_device_name is
incorrect and fails for the last dynamically added major. |
| Solution: |
Correct list processing in dasd_device_name. |
| Description: |
Dasd: driver hijacking major 0. |
| Symptom: |
dasd driver uses major 0 for dasd devices. |
| Problem: |
The static initialization of dasd_major_info element 0 does not
contain initial values for the gendisk structure. Since it is not
specified all field are set to zero. Each full traversal of the
dasd_major_info list with list_for_each accesses this element. |
| Solution: |
Remove static initializer from dasd_major_info and do proper
list_for_each operations. |
| Description: |
Dasd: race condition for timer variable in dasd driver. |
| Symptom: |
Kernel hang during dasd reserve/release in parallel with
massive IO. |
| Problem: |
The same timer variable was used for different activities. |
| Solution: |
Use a seperate timer variable for each activity. |
| Description: |
Dasd: diagnose discipline. |
| Symptom: |
Endless loop in dasd driver. |
| Problem: |
Diagnose dasd discipline enters an endless recovery loop if the
buffer is above the 2GB line. |
| Solution: |
Fix return code of diag250() in case of a program check to
terminate the recovery. |
| Description: |
Xpram: 64 bit xpram driver. |
| Symptom: |
64 bit system only see odd numbered xpram devices. |
| Problem: |
The sizes array of the xpram driver is declared as 'unsigned
long' but the block device layer accesses the array as 'unsigned
int'. |
| Solution: |
Use the correct type for the sizes array. |
| Description: |
Common i/o layer: devices not detected. |
| Symptom: |
Devices for which the first path is not available show up with
cu type 0000/00. |
| Problem: |
Linux didn't check if a path was available before doing
SensePGID to determine the locking state of a device and received
-ENODEV. |
| Solution: |
Only try SensePGID for available paths. |
| Description: |
Common i/o layer: diag 210 calls from modules. |
| Symptom: |
Modules using diag 210 crash if they are loaded above 2GB. |
| Problem: |
The inline version of the diag 210 function is included to the
program code of modules. diag 210 calls have to be done in 31 bit
addressing mode. If the module code is loaded above 2GB the switch
to 31 bit mode make the program code unaccessible. This causes a
kernel oops. |
| Solution: |
Move diag 210 code to the kernel image to be able to switch to
31 bit addressing without loosing code accessibility. |
| Description: |
Common i/o layer: chpids proc interface. |
| Symptom: |
/proc/chpids display incorrect. |
| Problem: |
A check if a chpid is available is missing. |
| Solution: |
Check with path pim/pam/pom whether a chpid is available. In
addition reset chpid status on path failures. |
| Description: |
Common i/o layer: path link incidents. |
| Symptom: |
Dasd no longer accessible after link incident for one of
several paths. |
| Problem: |
Deadlock in SetPGID called from link incident handler. |
| Solution: |
Don't do unnecessary path grouping after link incident |
| Description: |
FCP: Debug areas in zfcp driver. |
| Symptom: |
Error message "__alloc_pages: 6-order allocation failed" trying
to add an adapter. |
| Problem: |
The zfcp tries to allocate a debug area with 64 pages. This
failes if the memory is fragmented enough and the adapter
inialization fails. |
| Solution: |
Reduce debug feature page allocation of zfcp to order 1. |
| Description: |
FCP: Debugging message appears unconditionaly on console. |
| Symptom: |
For each status read request a message is written to
console. |
| Problem: |
Wrong logging level for particular message. |
| Solution: |
Adjusted logging level of that message. |
| Description: |
FCP: Unsolicited status mechanism is dead. |
| Symptom: |
The zfcp driver is unable to receive unsolicited status, like
incoming ELS and local link conditions. |
| Problem: |
A missing initialisation caused a loop to be exited immediately
without executing statements (sending status read) within the
loop. |
| Solution: |
Variable eliminated and thus need for initialisation removed,
use correct constant instead. |
| Description: |
FCP: Problem determination after serious I/O errors. |
| Symptom: |
Host_byte!=0 frequently reported to upper layer SCSI drivers,
e.g. SCSI tape drivers. |
| Problem: |
Microcode problems which caused SCSI command failure, details
about conditions were hard to come by. |
| Solution: |
Added another debug feature entry to track SCSI command
failures and (hardware) conditions being likely connected to these
failures. |
| Description: |
FCP: race condidtion regarding access to scsi_cmnd |
| Symptom: |
unknown, not hit in test |
| Problem: |
The zfcp driver accessed scsi_cmnd after returning it to the
SCSI stack mid-layer by calling the scsi_done routine |
| Solution: |
Reordered statements in zfcp driver to avoid access to
scsi_cmnd after calling scsi_done |
| Description: |
FCP: Error handling threads (zfcp_erp*) sleep
uninterruptibly. |
| Symptom: |
Threads are accounted to system load. |
| Problem: |
Routine down() is called. |
| Solution: |
Use down_interruptible() and adjust signal handling to prevent
signals to kill interrupt handler. |
Everybody should apply this patch.
To create the complete
linux-2.4.19 kernel sources, the following patches need to be
applied in sequence:
linux-2.4.19.tar.gz (see www.kernel.org)
+ linux-2.4.19-s390-may2002.diff (IBM)
+ linux-2.4.19-s390-1-may2002.diff (IBM)
-
- On-demand timer patch kernel 2.4.19 ("May 2002",
2002-10-24) (superseded)
linux-2.4.19-timer-1-may2002.tar.gz
MD5
recommended (2002-10-24)
On demand timer patch:
Contains a patch for the linux kernel 2.4.19 that changes the
timing method from the regular 100 hz interrupts to on demand timer
interrupts. This saves some cpu cycles in an idle linux image. The
drawback is that a busy linux image will do a small amount of
additional work every time the switch between user mode and kernel
mode is done. In short if you are running many images under VM the
on demand timers are useful but you probably don't want to use it
running under LPAR or native. The patch introduces a configuration
option CONFIG_NO_IDLE_HZ_TIMER that lets you choose between the old
and the new behavior.
To create the complete kernel sources, the
following patches need to be applied in sequence:
linux-2.4.19.tar.gz (see www.kernel.org)
+ linux-2.4.19-s390-may2002.diff (IBM)
+ linux-2.4.19-s390-1-may2002.diff (IBM)
+ linux-2.4.19-timer-1-may2002.diff (IBM)
|
- binutils 2.12.90.0.15 ("May 2002", 2002-10-24)
Category application development tool.
The binutils package is a collection of various development tools
like a linker, a utility for creating, modifying and extracting
from archives, a tool that displays information from object files,
a tool to generate an index to the contents of an archive and so
on.
binutils-2.12.90.0.15-s390-may2002.tar.gz
MD5
recommended (2002-10-24)
This patch contains the following
binutils bug fixes:
| Description: |
Bi-arch compiles. |
| Symptom: |
31 bit executables build with a bi-arch compiler on a 64 bit
system crash. |
| Problem: |
The assembler option -m31 sets the s390_arch_size variable to
31 instead of 32. This causes tc_gen_reloc to emit a wrong
relocation for the symbol _GLOBAL_OFFSET_TABLE_. |
| Solution: |
Set s390_arch_size to 32 if option -m31 is given. |
Everybody should apply this patch. To create the complete linux
kernel sources, the following patches need to be applied in
sequence: binutils-2.12.90.0.15.tar.gz (see
www.kernel.org/pub/linux/devel/binutils/)
+ binutils-2.12.90.0.15-s390-may2002.diff (IBM)
|
- strace 4.4 ("May 2002", 2002-10-24)
Category application development tool. This application writes a
trace of system calls to the operating system. The following patch
contains the patches for S/390 and zSeries.
strace-4.4-1-s390-1-may2002.tar.gz
MD5
(2002-10-24)
This patch contains the following strace bug fix:
| Description: |
Wrong system call number derivation. |
| Symptom: |
Errors like e.g. segmentation faults. |
| Problem: |
strace doesn't expect that an SVC instruction gets executed via
an EXECUTE instruction. If this happens, strace derives the system
call number out of an EXECUTE opcode instead of an SVC opcode. This
results in a wrong system call number, which will be used for
further computation. |
| Solution: |
Take into account that SVC instructions get executed via
EXECUTE. |
Everybody should apply this patch.
To create the complete strace sources, the following patches need
to be applied in sequence:
Everybody should apply this patch.
strace_4.4-1.tar.gz (see
www.wi.leidenuniv.nl/~wichert/strace/)
+ strace-4.4-1-s390-may2002.diff (IBM)
+ strace-4.4-1-s390-1-may2002.diff (IBM)
|
- kernel 2.4.19 ("May 2002", 2002-09-13)
Category operating system. Contains the LINUX kernel source code as
well as the S/390 and zSeries specific layers.
linux-2.4.19-s390-may2002.tar.gz
MD5
recommended (2002-09-13)
This patch contains the initial
S/390 and zSeries patches for the linux-2.4.19 kernel.
It replaces kernel 2.4.17 in the "May 2002 stream", now in the
Archive.
Since the last kernel 2.4.17 patch (of 2002-07-31) several bugs
have been fixed and restrictions removed:
- zfcp: enable 2MB SCSI transfer size
- zfcp: enable local pull/replug
Everybody should apply this patch.
To create the complete
linux-2.4.19 kernel sources, the following patches need to be
applied in sequence:
linux-2.4.19.tar.gz (see www.kernel.org)
+ linux-2.4.19-s390-may2002.diff (IBM)
-
- On-demand timer patch kernel 2.4.19 ("May 2002",
2002-09-13) (superseded)
Category: operating system. Contains the LINUX kernel source code
as well as the S/390 and zSeries specific layer.
linux-2.4.19-timer-may2002.tar.gz
MD5
recommended (2002-09-13)
On demand timer patch:
Contains a patch for the linux kernel 2.4.19 that changes the
timing method from the regular 100 hz interrupts to on demand timer
interrupts. This saves some cpu cycles in an idle linux image. The
drawback is that a busy linux image will do a small amount of
additional work every time the switch between user mode and kernel
mode is done. In short if you are running many images under VM the
on demand timers are useful but you probably don't want to use it
running under LPAR or native. The patch introduces a configuration
option CONFIG_NO_IDLE_HZ_TIMER that lets you choose between the old
and the new behavior.
To create the complete kernel sources, the
following patches need to be applied in sequence:
linux-2.4.19.tar.gz (see www.kernel.org)
+ linux-2.4.19-s390-may2002.diff (IBM)
+ linux-2.4.19-timer-may2002.diff (IBM)
-
- kerntypes kernel 2.4.19 ("May 2002", 2002-09-13)
linux-2.4.19-s390-kerntypes-may2002.tar.gz
MD5
recommended (2002-09-13)
Release note: This patch contains a dummy module that includes
headers for all kernel types that the dump analysis tool lcrash
needs. The kernel type information is used as input by the lcrash
utility when analyzing system crash dumps or the live system. The
dummy module is built together with the kernel image or simply
with: 'make Kerntypes'.
To create the complete kernel sources, the
following patches need to be applied in sequence:
linux-2.4.19.tar.gz (see www.kernel.org)
+ linux-2.4.19-s390-may2002.diff (IBM)
+ linux-2.4.19-s390-kerntypes-may2002.diff (IBM)
|
- qeth kernel 2.4.19 ("May 2002", 2002-09-13)
(superseded)
Includes
support for OSA Express VLAN support, IPv6 enablement, OSA SNMP
(see also osasnmpd subagent in s390-tools 1.1), Purge/Query ARP
(see also qetharp tool in s390-tools 1.1), and Broadcast.
Note that qdio is now provided in source-code as part of the kernel
patch.
The 2002-09-13 recommended qeth modules contain the following
changes from the 2002-07-31 kernel 2.4.17 recommended modules:
- VLAN adaptions for 2.4.19
|
| 31-bit:
qeth-2.4.19-s390-may2002.tar.gz
MD5
(2002-09-13) |
64-bit:
qeth-2.4.19-s390x-may2002.tar.gz
MD5
(2002-09-13) |
-
- tape_3590_mod kernel 2.4.19 ("May 2002", 2002-09-13) corrected 2002-09-18
(superseded)
| Note:
This OCO 3590 discipline module implements the 3590 specific parts
of the LINUX on zSeries tape driver. It can only be used in
conjunction with the updated generic tape driver (tape390) which is
included in this shipment (Open Source). The generic tape driver
tries to automatically load the 3590 discipline module. To be able
to use this feature, the 3590 discipline module has to be named
"tape_3590_mod.o". |
| 31-bit:
tape3590-2.4.19-s390-may2002.tar.gz
MD5
(2002-09-13) |
64-bit:
tape3590-2.4.19-s390x-may2002.tar.gz
MD5
(2002-09-13) |
|
- binutils 2.12.90.0.15 ("May 2002", 2002-09-13)
Category application development tool.
The binutils package is a collection of various development tools
like a linker, a utility for creating, modifying and extracting
from archives, a tool that displays information from object files,
a tool to generate an index to the contents of an archive and so
on.
For binutils source (binutils-2.12.90.0.15.tar.gz) see
www.kernel.org/pub/linux/devel/binutils/ - No patch is
required.
-
- gcc 3.2 ("May 2002", 2002-09-13)
Category application development tool.
Contains the C Compiler front-end including architecture dependent
back-ends like the S/390 back-end that generates executables for
LINUX for S/390 and zSeries. The gcc is an application that can be
built to run on many different platforms and does not need to run
on LINUX for S/390 and zSeries.
For gcc source (gcc-3.2.tar.gz) see
gcc.gnu.org. - No s390-patch is required.
-
- glibc 2.2.5 ("May 2002", 2002-09-13)
glibc-2.2.5-s390-3-may2002.tar.gz
MD5
recommended (2002-09-13)
This patch contains the following
glibc bugfixes:
| Description: |
pread/pwrite do not conform to the single unix
specification. |
| Symptom: |
A pread/pwrite with a negative offset is accepted. |
| Problem: |
The pread/pwrite system calls take a 64 bit offset. The signed
32 bit offset of the pread/write library call is zero-extended to
64 bit instead of sign extended. |
| Solution: |
Replace the zero extention with a sign extention. |
| Description: |
Wrong wordsize.h header is installed. |
| Symptom: |
Compiling with -m31 on a 64 bit system results in malfunctional
binaries. |
| Problem: |
The wordsize.h header from sysdeps/wordsize-64 is used instead
of the s390 version from sysdeps/s390/bits. |
| Solution: |
Move wordsize.h from sysdeps/s390/bits to
sysdeps/s390/s390-32/bits and sysdeps/s390/s390-64/bits to make the
install scripts pick up the correct version. |
Everybody should apply this patch.
To create the complete glibc
sources, the following patches need to be applied in sequence:
glibc-2.2.5.tar.gz (see www.gnu.org/software/libc)
+ glibc-linuxthreads-2.2.5.tar.gz (see www.gnu.org/software/libc)
+ glibc-2.2.5-s390-may2002.diff (IBM)
+ glibc-2.2.5-s390-1-may2002.diff (IBM)
+ glibc-2.2.5-s390-2-may2002.diff (IBM)
+ glibc-2.2.5-s390-3-may2002.diff (IBM)
|
- strace 4.4 ("May 2002", 2002-09-13)
Category application development tool. This application writes a
trace of system calls to the operating system. The following patch
contains the patches for S/390 and zSeries.
strace-4.4-1-s390-may2002.tar.gz
MD5
(2002-09-13)
Everybody should apply this patch.
To create the complete strace
sources, the following patches need to be applied in sequence:
strace_4.4-1.tar.gz (see
www.wi.leidenuniv.nl/~wichert/strace/)
+ strace-4.4-1-s390-may2002.diff (IBM)
|
- glibc 2.2.5 ("May 2002", 2002-08-16)
glibc-2.2.5-s390-2-may2002.tar.gz
MD5
recommended (2002-08-16)
This patch contains the following
glibc bugfixes:
| Description: |
Adaptations for gcc 3.1.1 and later |
| Symptom: |
Error messages when trying to build glibc with gcc 3.1.1 or
later |
| Problem: |
Starting with gcc 3.1.1, some constructs glibc was using are no
longer supported. These are:
- weak and strong definitions for the same symbol
- use of the new __thread keyword as variable name
- multi-line string literals in assembly statements
|
| Solution: |
Change glibc code to avoid these constructs. |
| Description: |
Incompatibility with old binaries |
| Symptom: |
Error messages (e.g. undefined symbol __divdi2) when using
certain binaries built with gcc 2.95 together with a glibc built
with gcc 3.x |
| Problem: |
Some helper routines formerly defined in glibc are now defined
in libgcc. Old binaries will still expect them in glibc,
however. |
| Solution: |
Provide copies of the helper routines in glibc (only for use
with old binaries). |
Everybody should apply this patch.
To create the complete glibc
sources, the following patches need to be applied in sequence:
glibc-2.2.5.tar.gz (see www.gnu.org/software/libc)
+ glibc-linuxthreads-2.2.5.tar.gz (see www.gnu.org/software/libc)
+ glibc-2.2.5-s390-may2002.diff (IBM)
+ glibc-2.2.5-s390-1-may2002.diff (IBM)
+ glibc-2.2.5-s390-2-may2002.diff (IBM)
|
- glibc 2.2.5 ("May 2002", 2002-07-31)
glibc-2.2.5-s390-1-may2002.tar.gz
MD5
recommended (2002-07-31)
This patch contains the following
glibc change:
Unified 31/64 bit header files for the biarch compiler support.
Everybody should apply this patch.
To create the complete glibc
sources, the following patches need to be applied in sequence:
glibc-2.2.5.tar.gz (see www.gnu.org/software/libc)
+ glibc-linuxthreads-2.2.5.tar.gz (see www.gnu.org/software/libc)
+ glibc-2.2.5-s390-may2002.diff (IBM)
+ glibc-2.2.5-s390-1-may2002.diff (IBM)
|
- gdb 5.2.1 ("May 2002", 2002-07-31)
Category application development tool. Contains the GNU debugger.
It can be used as an interactive symbolic debugger as well as a
post-mortem debugger.
gdb 5.2.1 replaces gdb 5.1.1 of 2002-05-31 in the "May 2002
stream".
gdb-5.2.1-s390-may2002.tar.gz
MD5
recommended (2002-07-31)
This patch contains the following
debugger bug fixes:
| Description: |
The gdb commands print and call don't work properly on Linux
for zSeries. |
| Symptom: |
Several testcases for the gdb commands print and call of the
gdb regression test suite fail on Linux for zSeries. |
| Problem: |
The gdb source code does not implement the Linux for zSeries
ELF ABI correctly |
| Solution: |
Fix the ELF ABI implementation bugs. |
To create the complete debugger sources, the following patches need
to be applied in sequence:
gdb-5.2.1.tar.bz2 (see sourceware.cygnus.com/gdb)
+ gdb-5.2.1-s390-may2002.diff (IBM)
|
- glibc 2.2.5 ("May 2002", 2002-05-31)
Category application development tool. These packages contain the
GNU C Runtime library for LINUX.
glibc-2.2.5-s390-may2002.tar.gz
MD5
recommended (2002-05-31)
This patch includes bug fixes. To
create the complete glibc sources, the following patches need to be
applied in sequence:
glibc-2.2.5.tar.gz (see www.gnu.org/software/libc)
+ glibc-linuxthreads-2.2.5.tar.gz (see
www.gnu.org/software/libc)
+ glibc-2.2.5-s390-may2002.diff (IBM)
|
|
 |
|
 |
|