|
 |

Kernel 2.4 based: August 2001 stream
|
 |
|
 |




|
Linux for S/390 31-bit distributions and Linux for zSeries
64-bit distributions can be built using:
- kernel (two alternate kernel levels are available)
- kernel 2.4.17
- kernel 2.4.7
For both kernel levels separate On-demand timer and Order-2 patches
are provided.
- OCO modules for the kernel levels
- kernel 2.4.17: qdio, qeth, tape_3590_mod
- kernel 2.4.7: qdio, qeth, tape_3590_mod
- Special OCO modules for On-demand timer
No special OCO modules for Order-2
The recommended kernel 2.4.7 / 2.4.17 downloads of this page were
tested with:
- tool-chain:
- binutils 2.11.90.0.27
- gcc 2.95.3
- glibc 2.2.4
- utilities:
- modutils 2.4.7
- s390-tools 1.0.6
- debug tools:
If you download any software from this web site please be aware of the
Warranty Disclaimer and Limitation of Liabilities.
Note that most new functions introduced with the "June 2003 stream" and "May 2002 stream" are not
available on this combination of levels. For an overview of the
three parallel kernel 2.4 streams refer to Downloads for kernel 2.4 page.
|

If you download any software from this web site please be aware of the
Warranty Disclaimer and Limitation of Liabilities.
Note: lkcdutils-4.0 includes the dump analysis tool
lcrash. lkcdutils-4.0 can be downloaded at
http://lkcd.sourceforge.net or
http://sourceforge.net/projects/lkcd.
|
|
Below are the downloads (with description) for the kernel
2.4.7/17 "August 2001 stream", listed in reverse chronological
order. This can be used to backtrack the "August 2001
stream".
The System Build Cross Reference shows
the most current set of downloads for the "August 2001
stream" and ignores superseded patches and modules (which are still
shown below).
If you download any software from this web site please be aware of the
Warranty Disclaimer and Limitation of Liabilities.
|
downloads for the kernel 2.4.7/17 "August 2001 stream"
| Date |
Component |
Downloadable |
| 2004-07-14 |
kernel 2.4.17
kernel 2.4.7
|
linux-2.4.17-s390-15
linux-2.4.7-s390-20
linux-2.4.7-order2-9
|
| 2004-06-09 |
kernel 2.4.17
kernel 2.4.7
|
linux-2.4.17-s390-14
linux-2.4.7-s390-19
linux-2.4.7-order2-8
(superseded)
|
| 2004-03-24 |
kernel 2.4.17
kernel 2.4.7 |
linux-2.4.17-s390-13
linux-2.4.7-s390-18
|
| 2004-01-26 |
kernel 2.4.17
kernel 2.4.7
|
linux-2.4.17-s390-12
linux-2.4.7-s390-17
|
| 2003-12-05 |
kernel 2.4.17
OCO
modules 2.4.17
kernel 2.4.7
OCO
modules 2.4.7
|
linux-2.4.17-s390-11
linux-2.4.17-timer-7
qdio (7)
qeth (7)
linux-2.4.7-s390-16
qdio (14)
qeth (14)
|
| 2003-09-04 |
kernel 2.4.17
kernel 2.4.7
|
linux-2.4.17-s390-10
linux-2.4.17-timer-6
(superseded)
linux-2.4.7-s390-15
linux-2.4.7-timer-8
linux-2.4.7-order2-7
(superseded)
|
| 2003-07-07 |
kernel 2.4.17
OCO
modules 2.4.17
kernel 2.4.7
OCO
modules 2.4.7
|
linux-2.4.17-s390-9
linux-2.4.17-timer-5
(superseded)
qdio (6)
(superseded)
qeth (6) (superseded)
linux-2.4.7-s390-14
linux-2.4.7-timer-7
(superseded)
linux-2.4.7-order2-6
(superseded)
qdio (13) (superseded)
qeth (13) (superseded)
|
| 2003-04-16 |
kernel 2.4.17
kernel 2.4.7 |
linux-2.4.17-s390-8
linux-2.4.7-s390-13
|
| 2003-03-17 |
kernel 2.4.17
kernel 2.4.7 |
linux-2.4.17-s390-7
linux-2.4.7-s390-12
|
| 2003-02-20 |
kernel 2.4.17
OCO
modules 2.4.17
kernel 2.4.7
OCO
modules 2.4.7
utilities
|
linux-2.4.17-s390-6
linux-2.4.17-order2-2
linux-2.4.17-timer-4
(superseded)
qdio (5) (superseded)
qeth (5) (superseded)
tape_3590_mod
linux-2.4.7-s390-11
linux-2.4.7-timer-6
(superseded)
linux-2.4.7-order2-5
(superseded)
qdio (12) (superseded)
qeth (12) (superseded)
tape_3590_mod
s390-tools 1.0.6
|
| 2002-12-19 |
OCO
modules 2.4.17
OCO
modules 2.4.7 |
Recommended 2.4.17 OCO modules
31-bit (superseded)
qdio(4) and qeth(4) for standard and "on-demand" timer.
Recommended 2.4.17 OCO modules
64-bit (superseded)
qdio(4) and qeth(4) for standard and "on-demand" timer.
Recommended 2.4.7 OCO modules
31-bit (superseded)
qdio(11) and qeth(11) for standard and "on-demand" timer.
Recommended 2.4.7 OCO modules
64-bit (superseded)
qdio(11) and qeth(11) for standard and "on-demand" timer.
|
| 2002-11-25 |
kernel 2.4.17
kernel 2.4.7 |
linux-2.4.17-s390-5
linux-2.4.7-s390-10
|
| 2002-09-13 |
kernel
2.4.7
|
linux-2.4.7-s390-9-extfix
linux-2.4.7-timer-5
(superseded)
|
| 2002-08-16 |
kernel
2.4.17
OCO
modules 2.4.17
kernel
2.4.7
OCO
modules 2.4.7
|
linux-2.4.17-s390-4-iucv
(corrected 2002-09-18)
Recommended 2.4.17 OCO modules
31-bit
qdio(3) and qeth(3) for standard and "on-demand" timer.
(superseded)
Recommended 2.4.17 OCO modules
64-bit
qdio(3) and qeth(3) for standard and "on-demand" timer.
(superseded)
linux-2.4.7-s390-8-iucv
(corrected 2002-09-13)
Recommended 2.4.7 OCO modules
31-bit
qdio(10) and qeth(10) for standard and "on-demand" timer.
(superseded)
Recommended 2.4.7 OCO modules
64-bit
qdio(10) and qeth(10) for standard and "on-demand" timer.
(superseded)
|
| 2002-07-25 |
tool
chain
|
binutils 2.11.90.0.27
gcc 2.95.3
|
| 2002-07-04 |
tool
chain
|
binutils 2.11.90.0.27
|
| 2002-06-17 |
kernel
2.4.17
OCO
modules 2.4.17
OCO
modules 2.4.7
|
linux-2.4.17-timer-3
(superseded)
Recommended 2.4.17 OCO modules
31-bit
qdio(2) and qeth(2) for standard and "on-demand" timer.
(superseded)
Recommended 2.4.17 OCO modules
64-bit
qdio(2) and qeth(2) for standard and "on-demand" timer.
(superseded)
Recommended 2.4.7 OCO modules
31-bit
qdio(9) and qeth(9) for standard and "on-demand" timer.
(superseded)
Recommended 2.4.7 OCO modules
64-bit
qdio(9) and qeth(9) for standard and "on-demand" timer.
(superseded)
|
| 2002-06-12 |
kernel
2.4.17
|
linux-2.4.17-s390-3 |
| 2002-06-04 |
tool
chain
|
gcc 2.95.3 |
| 2002-04-30 |
kernel
2.4.17
|
linux-2.4.17-s390-kerntypes |
| 2002-04-15 |
kernel 2.4.17
kernel 2.4.7
|
linux-2.4.17-s390-2
linux-2.4.17-timer-2
(superseded)
linux-2.4.7-s390-7
linux-2.4.7-timer-4 (superseded)
|
| 2002-03-18 |
kernel
2.4.17
kernel 2.4.7
tool
chain
|
linux-2.4.17-order2-1
(superseded)
linux-2.4.7-order2-4
(superseded)
gcc 2.95.3
|
| 2002-03-04 |
kernel 2.4.17
kernel 2.4.7
|
linux-2.4.17-s390-1-lcs
linux-2.4.17-s390-6-lcs
|
| 2002-03-01 |
OCO
modules 2.4.7
|
Recommended OCO modules
31-bit (superseded)
qdio(8) and qeth(8) for standard and "on-demand" timer.
Recommended OCO modules
64-bit (superseded)
qdio(8) and qeth(8) for standard and "on-demand" timer.
|
| 2002-02-28 |
tool
chain
|
binutils 2.11.90.0.27
glibc 2.2.4
undef-weak-bug |
| 2002-02-27 |
tool
chain
|
glibc 2.2.4
|
| 2002-02-26 |
utilities
|
s390-tools
(superseded) |
| 2002-02-18 |
OCO modules 2.4.17
|
Recommended OCO modules
31-bit (superseded)
z90crypt(1) for standard and "on-demand" timer.
lcs(1), qdio(1), and qeth(1) for standard and "on-demand"
timer.
Recommended OCO modules
64-bit (superseded)
z90crypt(1) for standard and "on-demand" timer.
lcs(1), qdio(1), and qeth(1) for standard and "on-demand"
timer.
|
| 2002-02-05 |
kernel
2.4.17
OCO modules 2.4.17
|
linux-2.4.17-s390
linux-2.4.17-timer
(superseded)
linux-2.4.17-order2
(superseded)
Recommended OCO modules
31-bit (superseded)
lcs, qdio, qeth, and z90crypt for standard and "on-demand"
timer.
Recommended OCO modules
64-bit (superseded)
lcs, qdio, qeth, and z90crypt for standard and "on-demand"
timer.
|
| 2002-01-21 |
kernel 2.4.7
OCO
modules 2.4.7
|
linux-2.4.7-s390
linux-2.4.7-timer
(superseded)
linux-2.4.7-order2
(superseded)
Recommended OCO modules
31-bit (superseded)
z90crypt(2) for standard and "on-demand" timer.
lcs(6), qdio(7), and qeth(7)
Recommended OCO modules
64-bit (superseded)
lcs(6), qdio(7), and qeth(7) for standard and "on-demand"
timer. |
| 2001-12-12 |
utilities
OCO
modules 2.4.7
|
s390-tools
(superseded)
Recommended OCO modules
31-bit (superseded)
lcs(5), qdio(6), and qeth(6) for standard and "on-demand"
timer.
Recommended OCO modules
64-bit (superseded)
lcs(5), qdio(6), and qeth(6) for standard and "on-demand"
timer.
|
| 2001-11-23 |
kernel
2.4.7
OCO
modules 2.4.7
|
linux-2.4.7-s390
linux-2.4.7-timer
(superseded)
Recommended OCO modules
31-bit (superseded)
lcs(4), qdio(5), and qeth(5) for standard and "on-demand"
timer.
Recommended OCO modules
64-bit (superseded)
lcs(4), qdio(5), and qeth(5) for standard and "on-demand"
timer.
|
| 2001-11-09 |
kernel
2.4.7
OCO
modules 2.4.7
utilities
|
linux-2.4.7-s390
Recommended OCO modules
31-bit (superseded)
lcs(3), qdio(4), and qeth(4) for standard and "on-demand"
timer.
Recommended OCO modules
64-bit (superseded)
lcs(3), qdio(4), and qeth(4) for standard and "on-demand"
timer.
s390-tools (superseded)
|
| 2001-10-12 |
kernel 2.4.7
OCO
modules 2.4.7
tool
chain
utilities
debug
tools
|
linux-2.4.7-s390
linux-2.4.7-timer
(superseded)
Recommended OCO modules
31-bit (superseded)
lcs(2), qdio(3), and qeth(3) for standard and "on-demand"
timer.
Recommended OCO modules
64-bit (superseded)
lcs(2), qdio(3), and qeth(3) for standard and "on-demand"
timer.
binutils 2.11.90.0.27
gcc 2.95.3
glibc 2.2.4
s390-tools (superseded)
strace 4.2
|
| 2001-09-28 |
OCO
modules 2.4.7
|
Recommended OCO modules
31-bit (superseded)
qdio(2), and qeth(2) for standard and "on-demand" timer.
Recommended OCO modules
64-bit (superseded)
qdio(2), and qeth(2) for standard and "on-demand" timer.
z90crypt (superseded)
|
| 2001-09-14 |
kernel 2.4.7
OCO
modules 2.4.7
tool
chain
utilities
debug
tools
|
linux-2.4.7-s390
linux-2.4.7-timer
(superseded)
Recommended OCO modules
64-bit (superseded)
lcs(1), qdio(1), and qeth(1) for standard and "on-demand"
timer.
binutils-2.11.90.0.27-brxlq
gcc 2.95.3
s390-tools
(superseded)
gdb 5.0
|
| 2001-08-20 |
kernel 2.4.7
OCO
modules 2.4.7
tool
chain
utilities
debug
tools
|
linux-2.4.7-s390
linux-2.4.7-kerntypes
Recommended OCO modules
31-bit (superseded)
lcs, qdio, and qeth for standard and "on-demand" timer.
Recommended OCO modules
64-bit (superseded)
lcs, qdio, and qeth for standard and "on-demand" timer.
binutils 2.11.90.0.27
gcc 2.95.3
glibc 2.2.4
s390-tools
(superseded)
modutils 2.4.7
gdb 5.0
strace 4.2
|
- kernel 2.4.17 ("August 2001", 2004-07-14)
-
This patch contains the following Linux kernel bug fix:
| Description: |
Kernel: Lost dirty bits. |
| Symptom: |
Data corruption under memory pressure. |
| Problem: |
The hardware dirty bit is cleared every time SetPageUptodate
is called. The common memory management code calls the
function, even if the page already is up to date. In this
case the dirty bit may not be cleared because the page
is potentially mapped writable in some user process which
could have written to the page since the last writeback. |
| Solution: |
Add a check to arch_set_page_uptodate to skip the clearing
of the dirty bit, if the page is already up to date. |
| Problem-ID: |
8165 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
+ linux-2.4.17-s390-4-iucv.diff (IBM)
+ linux-2.4.17-s390-5.diff (IBM)
+ linux-2.4.17-order2-2.diff (IBM)
+ linux-2.4.17-s390-6.diff (IBM)
+ linux-2.4.17-s390-7.diff (IBM)
+ linux-2.4.17-s390-8.diff (IBM)
+ linux-2.4.17-s390-9.diff (IBM)
+ linux-2.4.17-s390-10.diff (IBM)
+ linux-2.4.17-s390-11.diff (IBM)
+ linux-2.4.17-s390-12.diff (IBM)
+ linux-2.4.17-s390-13.diff (IBM)
+ linux-2.4.17-s390-14.diff (IBM)
+ linux-2.4.17-s390-15.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.17-timer-7.diff (IBM)
|
-
kernel 2.4.7 ("August 2001", 2004-07-14)
-
This patch contains the following Linux kernel bug fix:
| Description: |
Kernel: Lost dirty bits. |
| Symptom: |
Data corruption under memory pressure. |
| Problem: |
The hardware dirty bit is cleared every time SetPageUptodate
is called. The common memory management code calls the
function, even if the page already is up to date. In this
case the dirty bit may not be cleared because the page
is potentially mapped writable in some user process which
could have written to the page since the last writeback. |
| Solution: |
Add a check to arch_set_page_uptodate to skip the clearing
of the dirty bit, if the page is already up to date. |
| Problem-ID: |
8165 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.diff (IBM)
+ linux-2.4.7-s390-9-extfix.diff (IBM)
+ linux-2.4.7-s390-10.diff (IBM)
+ linux-2.4.7-s390-11.diff (IBM)
+ linux-2.4.7-s390-12.diff (IBM)
+ linux-2.4.7-s390-13.diff (IBM)
+ linux-2.4.7-s390-14.diff (IBM)
+ linux-2.4.7-s390-15.diff (IBM)
+ linux-2.4.7-s390-16.diff (IBM)
+ linux-2.4.7-s390-17.diff (IBM)
+ linux-2.4.7-s390-18.diff (IBM)
+ linux-2.4.7-s390-19.diff (IBM)
+ linux-2.4.7-s390-20.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.7-timer-8.diff (IBM)
Note: If Order-2 is required,
apply as last patch (i.e. on top of On-demand timer patch if
needed):
+ linux-2.4.7-order2-9.diff (IBM)
- Order-2 ("August 2001", 2004-07-14)
linux-2.4.7-order2-9.tar.gz
MD5
recommended (2004-07-14)
The "order 2 allocation relief"
patch is a complete replacement of the recommended patch shipped on
2004-06-09. This patch is functionally equivalent to the 2004-06-09
patch.
- This patch is very s/390 specific, but does not break other
architectures.
- This patch does only work for a 64-bit Linux for zSeries
kernel, but can also be applied if you intend to build a 31-bit
kernel.
- This patch is compatible with the "On-demand timer patch" and
does not require special OCO modules.
To create the complete linux kernel sources, apply all IBM kernel
2.4.7 patches on top of linux-2.4.7.tar.gz (see www.kernel.org) and
as last patch
+ linux-2.4.7-order2-9.diff (IBM), or on top of
linux-2.4.7-timer-8.diff (IBM) if timer is required.
|
- kernel 2.4.17 ("August 2001", 2004-06-09)
-
These patches contain the following Linux kernel bug fixes:
| Description: |
cio: Deferred cc=3 on BASIC SENSE leads to data corruption. |
| Symptom: |
Data corruption after heavy I/O workload while ESS is doing
failover. |
| Problem: |
BASIC SENSE after a unit check returns with deferred cc=3. The
device driver is called with the device status for the BASIC SENSE
which it should not see. |
| Solution: |
If a deferred cc=3 after a BASIC SENSE happens, call the device
driver with the device status for the preceding unit check and
reset the w4sense flag. |
| Problem-ID: |
9055 |
| Description: |
iucv: restart of multiple IUCV connections fails. |
| Symptom: |
Further IUCV connections are only possible after
reloading of module netiucv. |
| Problem: |
When restarting IUCV connections, the old IUCV pathids are
not reused. Thus repeated restart of a single IUCV connection
resp. few restarts of multiple IUCV connections result in
reaching the maximum number limit of IUCV paths. |
| Solution: |
Handling of an IUCV connection severed by partner is changed:
No reconnect is made; instead the IUCV connection stays in
state STARTWAIT till a "Connection Pending" interrupt arrives. |
| Problem-ID: |
7640 |
| Description: |
kernel: mlock() gets stuck in get_user_pages/follow_page. |
| Symptom: |
Process doing mlock loops in the kernel with kernel locks held. |
| Problem: |
set_pte/pte_mkdirty does not cause pte_dirty to return true but
the common mm code relies on it. |
| Solution: |
Set page dirty if required but do not loop on !pte_dirty(). |
| Problem-ID: |
8210 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
+ linux-2.4.17-s390-4-iucv.diff (IBM)
+ linux-2.4.17-s390-5.diff (IBM)
+ linux-2.4.17-order2-2.diff (IBM)
+ linux-2.4.17-s390-6.diff (IBM)
+ linux-2.4.17-s390-7.diff (IBM)
+ linux-2.4.17-s390-8.diff (IBM)
+ linux-2.4.17-s390-9.diff (IBM)
+ linux-2.4.17-s390-10.diff (IBM)
+ linux-2.4.17-s390-11.diff (IBM)
+ linux-2.4.17-s390-12.diff (IBM)
+ linux-2.4.17-s390-13.diff (IBM)
+ linux-2.4.17-s390-14.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.17-timer-7.diff (IBM)
|
- kernel 2.4.7 ("August 2001", 2004-06-09)
-
These patches contain the following Linux kernel bug fixes:
| Description: |
cio: Deferred cc=3 on BASIC SENSE leads to data corruption. |
| Symptom: |
Data corruption after heavy I/O workload while ESS is doing
failover. |
| Problem: |
BASIC SENSE after a unit check returns with deferred cc=3. The
device driver is called with the device status for the BASIC SENSE
which it should not see. |
| Solution: |
If a deferred cc=3 after a BASIC SENSE happens, call the device
driver with the device status for the preceding unit check and
reset the w4sense flag. |
| Problem-ID: |
9055 |
| Description: |
iucv: restart of multiple IUCV connections fails. |
| Symptom: |
Further IUCV connections are only possible after
reloading of module netiucv. |
| Problem: |
When restarting IUCV connections, the old IUCV pathids are
not reused. Thus repeated restart of a single IUCV connection
resp. few restarts of multiple IUCV connections result in
reaching the maximum number limit of IUCV paths. |
| Solution: |
Handling of an IUCV connection severed by partner is changed:
No reconnect is made; instead the IUCV connection stays in
state STARTWAIT till a "Connection Pending" interrupt arrives. |
| Problem-ID: |
7640 |
| Description: |
kernel: mlock() gets stuck in get_user_pages/follow_page. |
| Symptom: |
Process doing mlock loops in the kernel with kernel locks held. |
| Problem: |
set_pte/pte_mkdirty does not cause pte_dirty to return true but
the common mm code relies on it. |
| Solution: |
Set page dirty if required but do not loop on !pte_dirty(). |
| Problem-ID: |
8210 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.diff (IBM)
+ linux-2.4.7-s390-9-extfix.diff (IBM)
+ linux-2.4.7-s390-10.diff (IBM)
+ linux-2.4.7-s390-11.diff (IBM)
+ linux-2.4.7-s390-12.diff (IBM)
+ linux-2.4.7-s390-13.diff (IBM)
+ linux-2.4.7-s390-14.diff (IBM)
+ linux-2.4.7-s390-15.diff (IBM)
+ linux-2.4.7-s390-16.diff (IBM)
+ linux-2.4.7-s390-17.diff (IBM)
+ linux-2.4.7-s390-18.diff (IBM)
+ linux-2.4.7-s390-19.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.7-timer-8.diff (IBM)
Note: If Order-2 is required,
apply as last patch (i.e. on top of On-demand timer patch if
needed):
+ linux-2.4.7-order2-8.diff (IBM)
- Order-2 ("August 2001", 2004-06-09)
(superseded)
linux-2.4.7-order2-8.tar.gz
MD5
recommended (2004-06-09)
The "order 2 allocation relief"
patch is a complete replacement of the recommended patch shipped on
2003-09-04. This patch is functionally equivalent to the 2003-09-04
patch.
- This patch is very s/390 specific, but does not break other
architectures.
- This patch does only work for a 64-bit Linux for zSeries
kernel, but can also be applied if you intend to build a 31-bit
kernel.
- This patch is compatible with the "On-demand timer patch" and
does not require special OCO modules.
To create the complete linux kernel sources, apply all IBM kernel
2.4.7 patches on top of linux-2.4.7.tar.gz (see www.kernel.org) and
as last patch
+ linux-2.4.7-order2-8.diff (IBM), or on top of
linux-2.4.7-timer-8.diff (IBM) if timer is required.
|
- kernel 2.4.17 ("August 2001", 2004-03-24)
-
These patches contain the following Linux kernel bug fixes:
| Description: |
iucv: IUCV send failure. |
| Symptom: |
strace of ping shows that sendmsg returns ENOBUFS. |
| Problem: |
tx_queue_len of the iucv net_device is set to zero. |
| Solution: |
Set tx_queue_len to the message limit returned from the
ACCEPT function of IUCV. |
| Problem-ID: |
6157 |
| Description: |
iucv: unable to reconnect after reboot |
| Symptom: |
Connection FSM state: Stopped in /proc/net/iucv/iucv0/statistics
of iucv-partner of the rebooting system |
| Problem: |
The iucv-partner of a rebooting system does not try to reconnect
when remote partner severed connection |
| Solution: |
Added connect retry when remote severed connection |
| Problem-ID: |
6631 |
| Note: |
This patch fixes a problem introduced with the fix for Problem-ID 5912 in linux-2.4.17-s390-12.diff (2004-01-26). |
| Description: |
lcs: multicast joins and drops not noticed by drivers |
| Symptom: |
multicast traffic is not received |
| Problem: |
driver did not notice stack using multicast addresses |
| Solution: |
use notifier_call_chain to notify drivers |
| Problem-ID: |
5921 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
+ linux-2.4.17-s390-4-iucv.diff (IBM)
+ linux-2.4.17-s390-5.diff (IBM)
+ linux-2.4.17-order2-2.diff (IBM)
+ linux-2.4.17-s390-6.diff (IBM)
+ linux-2.4.17-s390-7.diff (IBM)
+ linux-2.4.17-s390-8.diff (IBM)
+ linux-2.4.17-s390-9.diff (IBM)
+ linux-2.4.17-s390-10.diff (IBM)
+ linux-2.4.17-s390-11.diff (IBM)
+ linux-2.4.17-s390-12.diff (IBM)
+ linux-2.4.17-s390-13.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.17-timer-7.diff (IBM)
|
- kernel 2.4.7 ("August 2001", 2004-03-24)
-
These patches contain the following Linux kernel bug fixes:
| Description: |
iucv: IUCV send failure. |
| Symptom: |
strace of ping shows that sendmsg returns ENOBUFS. |
| Problem: |
tx_queue_len of the iucv net_device is set to zero. |
| Solution: |
Set tx_queue_len to the message limit returned from the
ACCEPT function of IUCV. |
| Problem-ID: |
6157 |
| Description: |
iucv: unable to reconnect after reboot |
| Symptom: |
Connection FSM state: Stopped in /proc/net/iucv/iucv0/statistics
of iucv-partner of the rebooting system |
| Problem: |
The iucv-partner of a rebooting system does not try to reconnect
when remote partner severed connection |
| Solution: |
Added connect retry when remote severed connection |
| Problem-ID: |
6631 |
| Note: |
This patch fixes a problem introduced with the fix for Problem-ID 5912 in linux-2.4.7-s390-17.diff (2004-01-26). |
| Description: |
lcs: multicast joins and drops not noticed by drivers |
| Symptom: |
multicast traffic is not received |
| Problem: |
driver did not notice stack using multicast addresses |
| Solution: |
use notifier_call_chain to notify drivers |
| Problem-ID: |
5921 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.diff (IBM)
+ linux-2.4.7-s390-9-extfix.diff (IBM)
+ linux-2.4.7-s390-10.diff (IBM)
+ linux-2.4.7-s390-11.diff (IBM)
+ linux-2.4.7-s390-12.diff (IBM)
+ linux-2.4.7-s390-13.diff (IBM)
+ linux-2.4.7-s390-14.diff (IBM)
+ linux-2.4.7-s390-15.diff (IBM)
+ linux-2.4.7-s390-16.diff (IBM)
+ linux-2.4.7-s390-17.diff (IBM)
+ linux-2.4.7-s390-18.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.7-timer-8.diff (IBM)
Note: If Order-2 is required,
apply as last patch (i.e. on top of On-demand timer patch if
needed):
+ linux-2.4.7-order2-7.diff (IBM)
|
- kernel 2.4.17 ("August 2001", 2004-01-26)
-
These patches contain the following Linux kernel bug fixes:
| Description: |
dasd: Driver sets improper default cache mode on ESS |
| Symptom: |
Performance limitation. |
| Problem: |
Suboptimal caching behavior for 'default' workload limits I/O
performance. |
| Solution: |
Set proper default (normal caching). |
| Problem-ID: |
5409 |
| Description: |
dasd: BUG when pulling/plug in fibers associated with ESS. |
| Symptom: |
BUG in dasd ERP leads to kernel panic. |
| Problem: |
The (paranoia) macro in dasd_3990_erp_alternate_path assumes
that the status of the request is ERROR, but it might also be
FILLED (if the situation happens the first time) |
| Solution: |
Only reduce status to QUEUED (do not enhance) |
| Problem-ID: |
5702 |
| Description: |
dasd: Massive workload combined with ESS FlashCopy leading to
I/O hang. |
| Symptom: |
FlashCopy I/O hang |
| Problem: |
State change interrupt handler checks only first request in
cqr-queue, but in case the fastpath for start_IO was successful, it
might happen that the second request is long busy. |
| Solution: |
Check the whole cqr-queue for long busy. |
| Problem-ID: |
4676 |
| Description: |
iucv: Disable message interrupts during connection setup |
| Symptom: |
-- |
| Problem: |
-- |
| Solution: |
Honor incoming connection severed during connection setup. |
| Problem-ID: |
5912 |
| Note: |
This patch introduces a problem that is resolved with the fix
for Problem-ID 6631 in linux-2.4.17-s390-13.diff (2004-03-24). |
| Description: |
z90crypt: Unnecessary restriction to length of inputdata for
MEX request |
| Symptom: |
errno = EINVAL for valid data |
| Problem: |
checking for even inputdatalength for both CRT and MEX
request |
| Solution: |
only check for CRT request |
| Problem-ID: |
5633 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
+ linux-2.4.17-s390-4-iucv.diff (IBM)
+ linux-2.4.17-s390-5.diff (IBM)
+ linux-2.4.17-order2-2.diff (IBM)
+ linux-2.4.17-s390-6.diff (IBM)
+ linux-2.4.17-s390-7.diff (IBM)
+ linux-2.4.17-s390-8.diff (IBM)
+ linux-2.4.17-s390-9.diff (IBM)
+ linux-2.4.17-s390-10.diff (IBM)
+ linux-2.4.17-s390-11.diff (IBM)
+ linux-2.4.17-s390-12.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.17-timer-7.diff (IBM)
Note: If you apply this patch and are using iucv you may run
into Problem-ID 6631, the fix for which is included in
linux-2.4.17-s390-13.diff (2004-03-24).
|
- kernel 2.4.7 ("August 2001", 2004-01-26)
-
These patches contain the following Linux kernel bug fixes:
| Description: |
dasd: Driver sets improper default cache mode on ESS |
| Symptom: |
Performance limitation. |
| Problem: |
Suboptimal caching behavior for 'default' workload limits I/O
performance. |
| Solution: |
Set proper default (normal caching). |
| Problem-ID: |
5409 |
| Description: |
dasd: BUG when pulling/plug in fibers associated with ESS. |
| Symptom: |
BUG in dasd ERP leads to kernel panic. |
| Problem: |
The (paranoia) macro in dasd_3990_erp_alternate_path assumes
that the status of the request is ERROR, but it might also be
FILLED (if the situation happens the first time) |
| Solution: |
Only reduce status to QUEUED (do not enhance) |
| Problem-ID: |
5702 |
| Description: |
dasd: Massive workload combined with ESS FlashCopy leading to
I/O hang. |
| Symptom: |
FlashCopy I/O hang |
| Problem: |
State change interrupt handler checks only first request in
cqr-queue, but in case the fastpath for start_IO was successful, it
might happen that the second request is long busy. |
| Solution: |
Check the whole cqr-queue for long busy. |
| Problem-ID: |
4676 |
| Description: |
iucv: Disable message interrupts during connection setup |
| Symptom: |
-- |
| Problem: |
-- |
| Solution: |
Honor incoming connection severed during connection setup. |
| Problem-ID: |
5912 |
| Note: |
This patch introduces a problem that is resolved with the fix
for Problem-ID 6631 in linux-2.4.7-s390-18.diff (2004-03-24). |
| Description: |
z90crypt: Unnecessary restriction to length of inputdata for
MEX request |
| Symptom: |
errno = EINVAL for valid data |
| Problem: |
checking for even inputdatalength for both CRT and MEX
request |
| Solution: |
only check for CRT request |
| Problem-ID: |
5633 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.diff (IBM)
+ linux-2.4.7-s390-9-extfix.diff (IBM)
+ linux-2.4.7-s390-10.diff (IBM)
+ linux-2.4.7-s390-11.diff (IBM)
+ linux-2.4.7-s390-12.diff (IBM)
+ linux-2.4.7-s390-13.diff (IBM)
+ linux-2.4.7-s390-14.diff (IBM)
+ linux-2.4.7-s390-15.diff (IBM)
+ linux-2.4.7-s390-16.diff (IBM)
+ linux-2.4.7-s390-17.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.7-timer-8.diff (IBM)
Note: If Order-2 is required,
apply as last patch (i.e. on top of On-demand timer patch if
needed):
+ linux-2.4.7-order2-7.diff (IBM)
Note: If you apply this patch and are using iucv you may run
into Problem-ID 6631, the fix for which is included in
linux-2.4.7-s390-18.diff (2004-03-24).
|
- kernel 2.4.17 ("August 2001", 2003-12-05)
-
These patches contain the following Linux kernel bug fixes:
| Description: |
Crashes, triggered by iucv and ctc when calling
dst_link_failure() |
| Symptom: |
Miscellaneous crashes, triggered by calling
dst_link_failure() |
| Problem: |
Calling dst_link_failure() triggers a bug in common code. |
| Solution: |
Removed call of dst_link_failure() in both netiucv.c and
ctcmain.c |
| Problem-ID: |
5098 |
| Description: |
Fixed S390 Debug Feature usage. |
| Symptom: |
Segmentation fault when DBF file is read. |
| Problem: |
The sprintf event/exception functions write a pointer to the
format string (%s) into the log. This means that the string must be
valid at the time the DBF-log is read. |
| Solution: |
Don't write 'volatile' strings to DBF. |
| Problem-ID: |
4822 |
| Description: |
Unable to reconnect when using z/VM 3.1 at remote peer. |
| Symptom: |
When peer interface was recycled, iucv is unable to
reconnect. |
| Problem: |
Incoming message interrupt during setup leads to illegal driver
state. |
| Solution: |
Disable all interrupts during setup |
| Problem-ID: |
3061 |
| Description: |
crashes triggered by s390 network drivers calling
dst_link_failure |
| Symptom: |
crashes, bugs in icmp.c |
| Problem: |
network driver called dst_link_failure |
| Solution: |
remove dst_link_failure call |
| Problem-ID: |
5108 |
| Description: |
ctc: loglevel parameter could not be set to maximum |
| Symptom: |
Numbers with more than 1 digit are ignored when writing to
/proc/net/ctc/ctc0/loglevel |
| Problem: |
Check for maximum string length was wrong. |
| Solution: |
Corrected check for maximum string length. |
| Problem-ID: |
4342 |
| Description: |
reduce stack usage (for qeth: export show_trace symbol) |
| Symptom: |
symlink loops on NFS share causes oops |
| Problem: |
stack overflow |
| Solution: |
reduce stack usage by inlining some functions and check for
stack usage. Export show_trace symbol which is needed for the
corresponding qeth fix. |
| Problem-ID: |
3344 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
+ linux-2.4.17-s390-4-iucv.diff (IBM)
+ linux-2.4.17-s390-5.diff (IBM)
+ linux-2.4.17-order2-2.diff (IBM)
+ linux-2.4.17-s390-6.diff (IBM)
+ linux-2.4.17-s390-7.diff (IBM)
+ linux-2.4.17-s390-8.diff (IBM)
+ linux-2.4.17-s390-9.diff (IBM)
+ linux-2.4.17-s390-10.diff (IBM)
+ linux-2.4.17-s390-11.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.17-timer-7.diff (IBM)
- On-demand timer patch kernel 2.4.17 ("August 2001",
2003-12-05)
Release notes: Adaption to above 2003-12-05 kernel-patch.
This patch is a complete replacement of the patch contained in
linux-2.4.17-timer-6.tar.gz shipped on 2003-09-04.
This patch is functionaly equivalent to the 2003-09-04 patch.
linux-2.4.17-timer-7.tar.gz
MD5
recommended (2003-12-05)
On demand timer patch:
Contains a patch for the linux kernel 2.4.17 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. Note that you'll need different qdio, qeth
and tape_3590_mod modules if you use the no hz timer option. To
create the complete linux kernel sources, apply all IBM kernel
2.4.17 patches on top of linux-2.4.17.tar.gz (see www.kernel.org)
and as last patch + linux-2.4.17-timer-7.diff (IBM)
|
- qdio kernel 2.4.17 ("August 2001", 2003-12-05)
31-bit:
qdio-2.4.17-s390-7.tar.gz
MD5 and
qdio-2.4.17-s390-7-timer.tar.gz
MD5
(2003-12-05)
64-bit:
qdio-2.4.17-s390x-7.tar.gz
MD5 and
qdio-2.4.17-s390x-7-timer.tar.gz
MD5
(2003-12-05)
The qdio 31-bit and
64-bit OCO-modules of 2003-12-05 are replacements for the
2003-07-07 recommended qdio modules.
- qeth kernel 2.4.17 ("August 2001", 2003-12-05)
31-bit:
qeth-2.4.17-s390-7.tar.gz
MD5 and
qeth-2.4.17-s390-7-timer.tar.gz
MD5
(2003-12-05)
64-bit:
qeth-2.4.17-s390x-7.tar.gz
MD5 and
qeth-2.4.17-s390x-7-timer.tar.gz
MD5
(2003-12-05)
The qeth 31-bit and
64-bit OCO-modules of 2003-12-05 are replacements for the
2003-07-07 recommended qeth modules containing the below bug fixes.
| Description: |
spinlock problem with unsupported ioctls in qeth |
| Symptom: |
deadlock in ioctl of unsupported ioctl of qeth |
| Problem: |
spinlock was not released |
| Solution: |
release spinlock before leaving function |
| Problem-ID: |
3287 |
| Description: |
reduce stack usage |
| Symptom: |
symlink loops on NFS share causes oops |
| Problem: |
stack overflow |
| Solution: |
reduce stack usage by inlining some functions and check for
stack usage |
| Problem-ID: |
3344 |
| Description: |
avoid hang during initialization on I/O errors |
| Symptom: |
system hangs when initializing |
| Problem: |
on I/O errors, a lock was not released |
| Solution: |
release the lock |
| Problem-ID: |
4971 |
| Description: |
crashes triggered by s390 network drivers calling
dst_link_failure |
| Symptom: |
crashes, bugs in icmp.c |
| Problem: |
network driver called dst_link_failure |
| Solution: |
remove dst_link_failure call |
| Problem-ID: |
5108 |
| Description: |
VIPA and Proxy ARP problems on qeth |
| Symptom: |
add_rxip4, add_vipa4 etc. do not work |
| Problem: |
control flags not set correctly, netmask bad for VSWITCH |
| Solution: |
fixed flags, use 0 as default netmask |
| Problem-ID: |
5178 |
|
- kernel 2.4.7 ("August 2001", 2003-12-05)
-
These patches contain the following Linux kernel bug fixes:
| Description: |
Crashes, triggered by iucv and ctc when calling
dst_link_failure() |
| Symptom: |
Miscellaneous crashes, triggered by calling
dst_link_failure() |
| Problem: |
Calling dst_link_failure() triggers a bug in common code. |
| Solution: |
Removed call of dst_link_failure() in both netiucv.c and
ctcmain.c |
| Problem-ID: |
5098 |
| Description: |
Incorrect calculation of max_blocks in DIAG discipline |
| Symptom: |
BUG in dasd_alloc_request |
| Problem: |
Maximum size request can not be handled by dasd device
driver. |
| Solution: |
Make sure the request size fits (correct calculation). |
| Problem-ID: |
4922 |
| Note: |
applicable for 31-bit Linux, only |
| Description: |
Unable to reconnect when using z/VM 3.1 at remote peer. |
| Symptom: |
When peer interface was recycled, iucv is unable to
reconnect. |
| Problem: |
Incoming message interrupt during setup leads to illegal driver
state. |
| Solution: |
Disable all interrupts during setup |
| Problem-ID: |
3061 |
| Description: |
crashes triggered by s390 network drivers calling
dst_link_failure |
| Symptom: |
crashes, bugs in icmp.c |
| Problem: |
network driver called dst_link_failure |
| Solution: |
remove dst_link_failure call |
| Problem-ID: |
5108 |
| Description: |
ctc: loglevel parameter could not be set to maximum |
| Symptom: |
Numbers with more than 1 digit are ignored when writing to
/proc/net/ctc/ctc0/loglevel |
| Problem: |
Check for maximum string length was wrong. |
| Solution: |
Corrected check for maximum string length. |
| Problem-ID: |
4342 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.diff (IBM)
+ linux-2.4.7-s390-9-extfix.diff (IBM)
+ linux-2.4.7-s390-10.diff (IBM)
+ linux-2.4.7-s390-11.diff (IBM)
+ linux-2.4.7-s390-12.diff (IBM)
+ linux-2.4.7-s390-13.diff (IBM)
+ linux-2.4.7-s390-14.diff (IBM)
+ linux-2.4.7-s390-15.diff (IBM)
+ linux-2.4.7-s390-16.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.7-timer-8.diff (IBM)
Note: If Order-2 is required,
apply as last patch (i.e. on top of On-demand timer patch if
needed):
+ linux-2.4.7-order2-7.diff (IBM)
|
- qdio kernel 2.4.7 ("August 2001", 2003-12-05)
31-bit:
qdio-2.4.7-s390-14.tar.gz
MD5 and
qdio-2.4.7-s390-14-timer.tar.gz
MD5
(2003-12-05)
64-bit:
qdio-2.4.7-s390x-14.tar.gz
MD5 and
qdio-2.4.7-s390x-14-timer.tar.gz
MD5
(2003-12-05)
The qdio 31-bit and
64-bit OCO-modules of 2003-12-05 are replacements for the
2003-07-07 recommended qdio modules.
- qeth kernel 2.4.7 ("August 2001", 2003-12-05)
31-bit:
qeth-2.4.7-s390-14.tar.gz
MD5 and
qeth-2.4.7-s390-14-timer.tar.gz
MD5
(2003-12-05)
64-bit:
qeth-2.4.7-s390x-14.tar.gz
MD5 and
qeth-2.4.7-s390x-14-timer.tar.gz
MD5
(2003-12-05)
The qeth 31-bit and
64-bit OCO-modules of 2003-12-05 are replacements for the
2003-07-07 recommended qeth modules containing the below bug fixes.
| Description: |
spinlock problem with unsupported ioctls in qeth |
| Symptom: |
deadlock in ioctl of unsupported ioctl of qeth |
| Problem: |
spinlock was not released |
| Solution: |
release spinlock before leaving function |
| Problem-ID: |
3287 |
| Description: |
reduce stack usage |
| Symptom: |
symlink loops on NFS share causes oops |
| Problem: |
stack overflow |
| Solution: |
reduce stack usage by inlining some functions and check for
stack usage |
| Problem-ID: |
3344 |
| Description: |
avoid hang during initialization on I/O errors |
| Symptom: |
system hangs when initializing |
| Problem: |
on I/O errors, a lock was not released |
| Solution: |
release the lock |
| Problem-ID: |
4971 |
| Description: |
crashes triggered by s390 network drivers calling
dst_link_failure |
| Symptom: |
crashes, bugs in icmp.c |
| Problem: |
network driver called dst_link_failure |
| Solution: |
remove dst_link_failure call |
| Problem-ID: |
5108 |
| Description: |
VIPA and Proxy ARP problems on qeth |
| Symptom: |
add_rxip4, add_vipa4 etc. do not work |
| Problem: |
control flags not set correctly, netmask bad for VSWITCH |
| Solution: |
fixed flags, use 0 as default netmask |
| Problem-ID: |
5178 |
|
- kernel 2.4.17 ("August 2001", 2003-09-04)
-
These patches contain the following Linux kernel bug fixes:
| Description: |
<ccwcache>: Incorrect cache index determination |
| Symptom: |
random kernel oops |
| Problem: |
The incorrect comparison caused the wrong cache line to be
selected for maximum size requests. |
| Solution: |
fixed the comparison |
| Problem-ID: |
3450 |
| Description: |
siginfo_t structure on user stack incorrect. |
| Symptom: |
Unwinding over a rt signal frame crashes user programs. |
| Problem: |
The kernel definition of the siginfo_t structure for s390x is
136 bytes long instead of the correct length of 128. The kernel
will create a stack frame for rt signal that the unwind code can't
process. |
| Solution: |
Reduce the size of the _pad array. |
| Problem-ID: |
3490 |
| Note: |
applicable for 64-bit Linux, only |
| Description: |
dasd: erroneous message about failing dasd format |
| Symptom: |
When hitting CTRL-S/CTRL-Q during a dasd format
/var/log/messages shows a message like: dasd: /dev/dasdv ( 94:
84),4324@1a42: Formatting of unit 1420 failed with rc = -512 |
| Problem: |
The return code of dasd_sleep_on_request is not checked
properly. |
| Solution: |
Suppress message when return code of dasd_sleep_on_request
returns -ERESTARTSYS. |
| Problem-ID: |
3847 |
| Description: |
dasd_diag: buggy CMS label recognition in
fs/partitions/ibm.c |
| Symptom: |
CMS reserved minidisk detection doesn't work as expected |
| Problem: |
CMS label is read from page, that had been freed before |
| Solution: |
no longer use freed storage for CMS label recognition |
| Problem-ID: |
3611 |
| Description: |
crash when using ctc tty with gcov |
| Symptom: |
See description |
| Problem: |
Invalid use of netif_stop_queue() and netif_wake_queue() for
ctc ttys |
| Solution: |
code fixed |
| Problem-ID: |
4174 |
| Description: |
Oops in iucv code |
| Symptom: |
Crash with kernel oops when shutting down an iucv
connection |
| Problem: |
Interrupt buffer was released too early |
| Solution: |
Moved call of iucv_retrieve_buffer() into iucv_exit() |
| Problem-ID: |
3314 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
+ linux-2.4.17-s390-4-iucv.diff (IBM)
+ linux-2.4.17-s390-5.diff (IBM)
+ linux-2.4.17-order2-2.diff (IBM)
+ linux-2.4.17-s390-6.diff (IBM)
+ linux-2.4.17-s390-7.diff (IBM)
+ linux-2.4.17-s390-8.diff (IBM)
+ linux-2.4.17-s390-9.diff (IBM)
+ linux-2.4.17-s390-10.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.17-timer-6.diff (IBM)
- On-demand timer patch kernel 2.4.17 ("August 2001",
2003-09-04)
Release notes: Adaption to above 2003-09-04 kernel-patch.
This patch is a complete replacement of the patch contained in
linux-2.4.17-timer-5.tar.gz shipped on 2003-07-07.
linux-2.4.17-timer-6.tar.gz
MD5
recommended (2003-09-04) (superseded)
On demand timer patch:
Contains a patch for the linux kernel 2.4.17 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. Note that you'll need different qdio, qeth
and tape_3590_mod modules if you use the no hz timer option.
This patch fixes the following bug:
| Description: |
missing local irq disable |
| Symptom: |
CPUs are idle even if system is under full load |
| Problem: |
race condition in cpu_idle that results in lost reschedule
events |
| Solution: |
protect with local irq disable |
| Problem-ID: |
2914 |
To create the complete linux kernel sources, apply all IBM kernel
2.4.17 patches on top of linux-2.4.17.tar.gz (see www.kernel.org)
and as last patch
+ linux-2.4.17-timer-6.diff (IBM)
|
- kernel 2.4.7 ("August 2001", 2003-09-04)
-
These patches contain the following Linux kernel bug fixes:
| Description: |
<ccwcache>: Incorrect cache index determination |
| Symptom: |
random kernel oops |
| Problem: |
The incorrect comparison caused the wrong cache line to be
selected for maximum size requests. |
| Solution: |
fixed the comparison |
| Problem-ID: |
3450 |
| Description: |
siginfo_t structure on user stack incorrect. |
| Symptom: |
Unwinding over a rt signal frame crashes user programs. |
| Problem: |
The kernel definition of the siginfo_t structure for s390x is
136 bytes long instead of the correct length of 128. The kernel
will create a stack frame for rt signal that the unwind code can't
process. |
| Solution: |
Reduce the size of the _pad array. |
| Problem-ID: |
3490 |
| Note: |
applicable for 64-bit Linux, only |
| Description: |
dasd: erroneous message about failing dasd format |
| Symptom: |
When hitting CTRL-S/CTRL-Q during a dasd format
/var/log/messages shows a message like: dasd: /dev/dasdv ( 94:
84),4324@1a42: Formatting of unit 1420 failed with rc = -512 |
| Problem: |
The return code of dasd_sleep_on_request is not checked
properly. |
| Solution: |
Suppress message when return code of dasd_sleep_on_request
returns -ERESTARTSYS. |
| Problem-ID: |
3847 |
| Description: |
dasd_diag: buggy CMS label recognition in
fs/partitions/ibm.c |
| Symptom: |
CMS reserved minidisk detection doesn't work as expected |
| Problem: |
CMS label is read from page, that had been freed before |
| Solution: |
no longer use freed storage for CMS label recognition |
| Problem-ID: |
3611 |
| Description: |
crash when using ctc tty with gcov |
| Symptom: |
See description |
| Problem: |
Invalid use of netif_stop_queue() and netif_wake_queue() for
ctc ttys |
| Solution: |
code fixed |
| Problem-ID: |
4174 |
| Description: |
Oops in iucv code |
| Symptom: |
Crash with kernel oops when shutting down an iucv
connection |
| Problem: |
Interrupt buffer was released too early |
| Solution: |
Moved call of iucv_retrieve_buffer() into iucv_exit() |
| Problem-ID: |
3314 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.diff (IBM)
+ linux-2.4.7-s390-9-extfix.diff (IBM)
+ linux-2.4.7-s390-10.diff (IBM)
+ linux-2.4.7-s390-11.diff (IBM)
+ linux-2.4.7-s390-12.diff (IBM)
+ linux-2.4.7-s390-13.diff (IBM)
+ linux-2.4.7-s390-14.diff (IBM)
+ linux-2.4.7-s390-15.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.7-timer-8.diff (IBM)
Note: If Order-2 is required,
apply as last patch (i.e. on top of On-demand timer patch if
needed):
+ linux-2.4.7-order2-7.diff (IBM)
- On demand timer ("August 2001", 2003-09-04)
Release notes: Adaption to above
2003-09-04 kernel-patch.
This patch is a complete replacement of the patch contained in
linux-2.4.7-timer-7.tar.gz shipped on 2003-07-07.
linux-2.4.7-timer-8.tar.gz
MD5
recommended
(2003-09-04)Category operating system.
Contains a patch for the linux kernel 2.4.7 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. Note that you'll need different qdio, qeth
and tape_3590_mod modules if you use the no hz timer option.
This patch fixes the following bug:
| Description: |
missing local irq disable |
| Symptom: |
CPUs are idle even if system is under full load |
| Problem: |
race condition in cpu_idle that results in lost reschedule
events |
| Solution: |
protect with local irq disable |
| Problem-ID: |
2914 |
To create the complete linux kernel sources, apply all IBM kernel
2.4.7 patches on top of linux-2.4.7.tar.gz (see www.kernel.org) and
as last patch + linux-2.4.7-timer-8.diff (IBM)
- Order-2 ("August 2001", 2003-09-04)
linux-2.4.7-order2-7.tar.gz
MD5
recommended (2003-09-04) (superseded)
The "order 2 allocation relief"
patch is a complete replacement of the recommended patch shipped on
2003-07-07. This patch is functionaly equivalent to the 2003-07-07
patch. The original patch decreased the kernel stack size to 8KB
which turned out to be not enough. As a side-effect of this new
patch there is no longer a need for special OCO-modules and the
timer patch can be applied to the same kernel.
- This patch is very s/390 specific, but doesn't break other
architectures.
- This patch does only work for a 64-bit Linux for zSeries
kernel, but can also be applied if you intend to build a 31-bit
kernel.
- This patch is compatible with the "On-demand timer patch" and
does not require special OCO modules.
To create the complete linux kernel sources, apply all IBM kernel
2.4.7 patches on top of linux-2.4.7.tar.gz (see www.kernel.org) and
as last patch
+ linux-2.4.7-order2-7.diff (IBM), or on top of
linux-2.4.7-timer-8.diff (IBM) if timer is required.
|
- kernel 2.4.17 ("August 2001", 2003-07-07)
-
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: |
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: 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: |
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: |
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: |
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 |
| Description: |
starting a LCS network device with specific module parameters
causes an address exception |
| Symptom: |
1. start LCS module with parameter model_no=1 and
rel_adapter_no=1
2. starting the LCS network device causes an address exception |
| Problem: |
init_waitqueue_head was not called for a lanstat_wait in kernel
version > 2.3.0 |
| Solution: |
call init_waitqueue_head for kernel version >= 2.3.0 |
| Problem-ID: |
3158 |
| Description: |
Deadlock in memory management code. |
| Symptom: |
Mapping and accessing memory on a 64 bit zLinux system that
requires a full segment table can lead to a deadlock if the system
is low on memory. |
| Problem: |
The extension of a half-sized pmd (8K) to a full-sized pmd
(16K) requires the allocation of 4 consequitive pages. If the
system starts swapping to allocate these 4 pages and touches the
page table the reallocation is done for it deadlocks on the page
table lock. |
| Solution: |
Release the page table lock in pgd_populate before calling
__get_free_pages. |
| Problem-ID: |
3231 |
| Description: |
xpram parameter parsing. |
| Symptom: |
The xpram driver doesn't accept hexadecimal sizes on the
xpram_parts parameter with a single digit after the 0x. |
| Problem: |
The check in xpram_int_format that determines if a number is in
hexadecimal is broken. |
| Solution: |
Fix the check for hexadecimal numbers. |
| Problem-ID: |
3284 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
+ linux-2.4.17-s390-4-iucv.diff (IBM)
+ linux-2.4.17-s390-5.diff (IBM)
+ linux-2.4.17-order2-2.diff (IBM)
+ linux-2.4.17-s390-6.diff (IBM)
+ linux-2.4.17-s390-7.diff (IBM)
+ linux-2.4.17-s390-8.diff (IBM)
+ linux-2.4.17-s390-9.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.17-timer-5.diff (IBM)
- On-demand timer patch kernel 2.4.17 ("August 2001",
2003-07-07)
linux-2.4.17-timer-5.tar.gz
MD5
recommended (2003-07-07) (superseded) On demand timer
patch:
Contains a patch for the linux kernel 2.4.17 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. Note that you'll need different qdio, qeth
and tape_3590_mod modules if you use the no hz timer option.This
patch is a complete replacement of the patch contained in
linux-2.4.17-timer-4.tar.gz shipped on 2003-02-20. This patch is
functionaly equivalent to the 2003-02-20 patch. To create the
complete linux kernel sources, apply all IBM kernel 2.4.17 patches
on top of linux-2.4.17.tar.gz (see www.kernel.org) and as last
patch
+ linux-2.4.17-timer-5.diff (IBM)
|
- kernel 2.4.7 ("August 2001", 2003-07-07)
-
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: |
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: 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: |
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: |
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: |
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 |
| Description: |
starting a LCS network device with specific module parameters
causes an address exception |
| Symptom: |
1. start LCS module with parameter model_no=1 and
rel_adapter_no=1
2. starting the LCS network device causes an address exception |
| Problem: |
init_waitqueue_head was not called for a lanstat_wait in kernel
version > 2.3.0 |
| Solution: |
call init_waitqueue_head for kernel version >= 2.3.0 |
| Problem-ID: |
3158 |
| Description: |
xpram parameter parsing. |
| Symptom: |
The xpram driver doesn't accept hexadecimal sizes on the
xpram_parts parameter with a single digit after the 0x. |
| Problem: |
The check in xpram_int_format that determines if a number is in
hexadecimal is broken. |
| Solution: |
Fix the check for hexadecimal numbers. |
| Problem-ID: |
3284 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.diff (IBM)
+ linux-2.4.7-s390-9-extfix.diff (IBM)
+ linux-2.4.7-s390-10.diff (IBM)
+ linux-2.4.7-s390-11.diff (IBM)
+ linux-2.4.7-s390-12.diff (IBM)
+ linux-2.4.7-s390-13.diff (IBM)
+ linux-2.4.7-s390-14.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.7-timer-7.diff (IBM)
Note: If Order-2 is required,
apply as last patch (i.e. on top of On-demand timer patch if
needed):
+ linux-2.4.7-order2-6.diff (IBM)
- On demand timer ("August 2001", 2003-07-07)
Release notes: Adaption to above 2003-07-07 kernel-patch
linux-2.4.7-timer-7.tar.gz
MD5
recommended(2003-07-07) (superseded)
Category operating system.
Contains a patch for the linux kernel 2.4.7 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. Note that you'll need different qdio, qeth
and tape_3590_mod modules if you use the no hz timer option.
This patch is a complete replacement of the patch contained in
linux-2.4.7-timer-6.tar.gz shipped on 2003-02-20. This patch
is functionaly equivalent to the 2003-02-20 patch.
To create the
complete linux kernel sources, apply all IBM kernel 2.4.7 patches
on top of linux-2.4.7.tar.gz (see www.kernel.org) and as last patch
+ linux-2.4.7-timer-7.diff (IBM)
- Order-2 ("August 2001", 2003-07-07)
linux-2.4.7-order2-6.tar.gz
MD5
recommended (2003-07-07) (superseded) The "order 2 allocation
relief" patch is a complete replacement of the recommended patch
shipped on 2003-02-20. This patch is functionaly equivalent to the
2003-02-20 patch. The original patch decreased the kernel stack
size to 8KB which turned out to be not enough.
As a side-effect of
this new patch there is no longer a need for special OCO-modules
and the timer patch can be applied to the same kernel.
- This patch is very s/390 specific, but doesn't break other
architectures.
- This patch does only work for a 64-bit Linux for zSeries
kernel, but can also be applied if you intend to build a 31-bit
kernel.
- This patch is compatible with the "On-demand timer patch" and
does not require special OCO modules.
To create the complete linux kernel sources, apply all IBM kernel
2.4.7 patches on top of linux-2.4.7.tar.gz (see www.kernel.org) and
as last patch
+ linux-2.4.7-order2-6.diff (IBM), or on top of
linux-2.4.7-timer-7.diff (IBM) if timer is required.
|
kernel 2.4.17 ("August 2001", 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: |
dasd: 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: |
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 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence: linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
+ linux-2.4.17-s390-4-iucv.diff (IBM)
+ linux-2.4.17-s390-5.diff (IBM)
+ linux-2.4.17-order2-2.diff (IBM)
+ linux-2.4.17-s390-6.diff (IBM)
+ linux-2.4.17-s390-7.diff (IBM)
+ linux-2.4.17-s390-8.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.17-timer-4.diff (IBM)
|
- kernel 2.4.7 ("August 2001", 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: |
dasd: 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: |
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 |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.diff (IBM)
+ linux-2.4.7-s390-9-extfix.diff (IBM)
+ linux-2.4.7-s390-10.diff (IBM)
+ linux-2.4.7-s390-11.diff (IBM)
+ linux-2.4.7-s390-12.diff (IBM)
+ linux-2.4.7-s390-13.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.7-timer-6.diff (IBM)
Note: If Order-2 is required,
apply as last patch (i.e. on top of On-demand timer patch if
needed):
+ linux-2.4.7-order2-5.diff (IBM)
|
- kernel 2.4.17 ("August 2001", 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: |
DASD devices will not be set 'online' on slow/fast
systems. |
| Symptom: |
Root volume does not go online. |
| Problem: |
Bottom half raises DASD 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: |
DIAG250-disk on 64Bit system causes endless loop. |
| Symptom: |
System hang when accessing DASD with diag250. |
| Problem: |
Wrong preload of return code, used with diag250 exception. |
| Solution: |
Preload a value of 11 instead of 3, causing an I/O error. |
| Problem-ID: |
1341 |
| Note: |
applicable for 64-bit Linux, only |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
+ linux-2.4.17-s390-4-iucv.diff (IBM)
+ linux-2.4.17-s390-5.diff (IBM)
+ linux-2.4.17-order2-2.diff (IBM)
+ linux-2.4.17-s390-6.diff (IBM)
+ linux-2.4.17-s390-7.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.17-timer-4.diff (IBM)
|
- kernel 2.4.7 ("August 2001", 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: |
DASD driver statistics backport from 2.4.17 |
| Symptom: |
/proc/dasd/statistics is showing a bunch of zeros |
| Problem: |
Missing functionality. |
| Solution: |
Backport the functionality form 2.4.17 branch. |
| Problem-ID: |
1940 |
| Description: |
DASD devices will not be set 'online' on slow/fast
systems. |
| Symptom: |
Root volume does not go online. |
| Problem: |
Bottom half raises DASD 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: |
DIAG250-disk on 64Bit system causes endless loop. |
| Symptom: |
System hang when accessing DASD with diag250. |
| Problem: |
Wrong preload of return code, used with diag250 exception. |
| Solution: |
Preload a value of 11 instead of 3, causing an I/O error. |
| Problem-ID: |
1341 |
| Note: |
applicable for 64-bit Linux, only |
Everybody should apply this patch.
To create the complete Linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.diff (IBM)
+ linux-2.4.7-s390-9-extfix.diff (IBM)
+ linux-2.4.7-s390-10.diff (IBM)
+ linux-2.4.7-s390-11.diff (IBM)
+ linux-2.4.7-s390-12.diff (IBM)
Note: If On-demand timer is
required, apply on top of above patches:
+ linux-2.4.7-timer-6.diff (IBM)
Note: If Order-2 is required,
apply as last patch (i.e. on top of On-demand timer patch if
needed):
+ linux-2.4.7-order2-5.diff (IBM)
|
- kernel 2.4.17 ("August 2001", 2003-02-20)
-
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: |
64 bit xpram driver. |
| Symptom: |
64 bit systems 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. |
| Problem-ID: |
1928 |
| Note: |
applicable for 64-bit Linux |
| Description: |
Crashes in copy_to_user. |
| Symptom: |
Kernel oops message. |
| Problem: |
The fixup routine __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. |
| Problem-ID: |
1923 |
| Description: |
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. |
| Problem-ID: |
1926 |
| Description: |
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 the flush
is done for a different mm than the current one for the cpu. The
next flush can fail to remove the tlb another cpu has 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. |
| Problem-ID: |
1924 |
| Description: |
Status pending handling. |
| Symptom: |
Possibly all kinds of erratic behavior. |
| 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 with 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 realize 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: |
'mt' causing more than 511 skip commands fails. |
| Symptom: |
Trying to skip more than 511 records or files with one 'mt'
command will give an error message and cause the command to
fail. |
| Problem: |
The tape driver cannot handle more than 511 repetitions without
special handling. |
| Solution: |
Internally split these commands into several parts of 511. |
| Problem-ID: |
1554 |
| 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: |
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: |
Handling of copy_to_user/copy_from_user return codes. |
| Symptom: |
ptrace returns positive numbers instead of -EFAULT if an
invalid address is passed on the ptrace call. |
| Problem: |
copy_to_user/copy_from_user do not return an error code if they
fail but the number of bytes not copied. This needs to be converted
into -EFAULT. |
| Solution: |
Check return value of copy_to_user/copy_from_user and replace
any non-zero return value with -EFAULT. |
| Problem-ID: |
1962 |
| 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 |
This patch contains an enhancement of the device driver for channel
attached tape devices. It implements an infrastructure which allows
to have different tape disciplines as separate Kernel modules. The
generic tape driver (tape390) tries to automatically load the known
tape disciplines. 3480 and 3490 tape disciplines are included in
this patch. The 3590 tape discipline can be downloaded separately
from this web site: tape_3590_mod.
Basically this functionality is a backport of the May2002 tape
driver. For documentation how to use this enhanced tape device
driver please refer to "Chapter 5.Channel-attached tape device
driver" of the "Linux for
zSeries and S/390 Device Drivers and Installation Commands"
manual of the May 2002 stream.
This patch also contains the following backports from 2.4.19:
- Update tape device driver to the same release as kernel 2.4.19
in the May 2002 stream. This is required in order to use the
tape_3590_mod OCO module.
- Add the z90crypt driver from the May 2002 stream
Please refer to "Chapter 6.Generic cryptographic device driver" of
the "Linux for
zSeries and S/390 Device Drivers and Installation Commands"
Documentation of the May 2002 stream for information on how to use
this module.
and some cosmetic changes.
Everybody should apply this patch.
To create the complete Linux kernel sources, the following patches
need to be applied in sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
+ linux-2.4.17-s390-4-iucv.diff (IBM)
+ linux-2.4.17-s390-5.diff (IBM)
+ linux-2.4.17-order2-2.diff (IBM)
+ linux-2.4.17-s390-6.diff (IBM)
- Order-2 ("August 2001", 2003-02-20)
linux-2.4.17-order2-2.tar.gz
MD5
recommended (2003-02-20) (superseded)
The "order 2 allocation
relief" patch is a complete replacement of the patch contained in
linux-2.4.17-order2-1.tar.gz shipped on 2002-03-18.
This patch is
functionally equivalent to the 2002-03-18 patch, but applies
without warnings.
| Description: |
Order 2 allocation relief |
| Symptom: |
Under stress and after long uptimes of a 64 bit system the
error message "__alloc_pages: 2-order allocation failed." appears
and either the fork of a new process fails or an active process
dies. |
| Problem: |
The order 2 allocation problem is based in the size of the
region and segment tables as defined by the zSeries architecture. A
full region or segment table in 64 bit mode takes 16 KB of
contiguous real memory. The page allocation routines do not
guarantee that a higher order allocation will succeed due to memory
fragmentation. |
| Solution: |
The order 2 allocation fix is supposed to reduce the number of
order 2 allocations for the region and segment tables to a minimum.
To do so it uses a feature of the architecture that allows to
create incomplete region and segment tables. In almost all cases a
process does not need full region or segment tables. If a full
region or segment table is needed it is reallocated to the full
size. |
- This patch is very s/390 specific, but doesn't break other
architectures.
- This patch does only work for a 64-bit Linux for zSeries
kernel, but can also be applied if you intend to build a 31-bit
kernel.
- This patch is compatible with the "On-demand timer patch" and
does not require special OCO modules.
To create the complete linux kernel sources, the following patches
need to be applied in sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
+ linux-2.4.17-s390-4-iucv.diff (IBM)
+ linux-2.4.17-s390-5.diff (IBM)
+ linux-2.4.17-order2-2.diff (IBM)
- On demand timer ("August 2001", 2003-02-20)
Release notes: Adaption to above 2003-02-20 kernel-patch
linux-2.4.17-timer-4.tar.gz
MD5
recommended (2003-02-20) (superseded) Category operating
system.
Contains a patch for the linux kernel 2.4.17 that will change 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
backdraw 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_HZ_TIMER that lets you choose between the old and
the new behaviour.
Note that you'll need different qdio, qeth and
tape_3590_mod modules if you use the no hz timer option.
This patch
is a complete replacement of the patch contained in
linux-2.4.17-timer-3.tar.gz shipped on 2002-06-17.
This patch is
functionaly equivalent to the 2002-06-17 patch, but applies without
warnings. To create the complete linux kernel sources, the
following patches need to be applied in sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
+ linux-2.4.17-s390-4-iucv.diff (IBM)
+ linux-2.4.17-s390-5.diff (IBM)
+ linux-2.4.17-order2-2.diff (IBM)
+ linux-2.4.17-s390-6.diff (IBM)
+ linux-2.4.17-timer-4.diff (IBM)
|
- kernel 2.4.7 ("August 2001", 2003-02-20)
-
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: |
IPL from labeled tapes. |
| Symptom: |
The IPL from a labeled tape with an initial ramdisk doesn't
work for a 64 bit kernel (on 31 bit the IPL succeeds after several
retries). |
| Problem: |
The code to skip the HDR and EOF records of a labeled tapes
loads the address of the initial ramdisk with an incorrect offset.
The retry after a HDR or EOF record has been found loads the
ramdisk to 0. |
| Solution: |
Load the address of the initial ramdisk from the correct memory
location. |
| Problem-ID: |
1957 |
| Note: |
applicable for 64-bit Linux |
| Description: |
Memory management: mprotect problem. |
| Symptom: |
Writes to memory areas that have been write protected with the
mprotect system call do not cause segmentation faults. |
| Problem: |
A check for the VM_WRITE bit in the page fault handler is
missing. |
| Solution: |
Add missing check. |
| Problem-ID: |
1958 |
| Description: |
ptrace locking |
| Symptom: |
Crashes in kernel space or kernel hangs while using debugging
tools like strace or gdb. |
| Problem: |
The traced process was not properly locked in sys_ptrace. |
| Solution: |
Add get_task_struct/free_task_struct calls in sys_ptrace. |
| Problem-ID: |
1959 |
| Description: |
Floating point use in the 31 bit emulation. |
| Symptom: |
Floating point register contents of 31-bit emu applications get
corrupted. |
| Problem: |
The 31-bit emu signal handler dispatch code clobbered floating
point registers. |
| Solution: |
Do not use floating point arithmetic in kernel space. |
| Problem-ID: |
1961 |
| Note: |
applicable for 64-bit Linux |
| Description: |
Handling of copy_to_user/copy_from_user return codes. |
| Symptom: |
ptrace returns positive numbers instead of -EFAULT if an
invalid address is passed on the ptrace call. |
| Problem: |
copy_to_user/copy_from_user do not return an error code if they
fail but the number of bytes not copied. This needs to be converted
into -EFAULT. |
| Solution: |
Check return value of copy_to_user/copy_from_user and replace
any non-zero return value with -EFAULT. |
| Problem-ID: |
1962 |
| Description: |
System hang with unformatted dasd devices. |
| Symptom: |
fdasd on an unformatted dasd device causes a system hang. |
| Problem: |
BIODASDINFO ioctl accesses the request_queue of the device
without checking if the request_queue has been initialized. |
| Solution: |
Access request_queue only if it was initialzed. |
| Problem-ID: |
1964 |
| Description: |
Mount of unformatted dasd. |
| Symptom: |
Kernel panic after mounting an unformatted dasd device. |
| Problem: |
An unformatted dasd doesn't have a valid blocksize and the
number of blocks is unknown. A register_disk of such a device
causes the panic. |
| Solution: |
Check if blocksize and number of blocks is valid before calling
register_disk. |
| Problem-ID: |
1965 |
| Description: |
State change pending interrupts. |
| Symptom: |
Kernel panic. |
| Problem: |
If a state change pending interrupt comes in the dasd interrupt
handler tries to restart the first request on the ccw queue. The
request that got the long busy condition normally stays on the ccw
queue but some special requests get removed by timeouts. In that
case the request queue might be empty but the interrupt handler
tries to access the head of the queue unconditionally. |
| Solution: |
Check if the ccw queue is empty before accessing it. |
| Problem-ID: |
1966 |
| Description: |
Dasd partition check. |
| Symptom: |
System hang when dasd partitions are checked. |
| Problem: |
Large empty device ranges leads to system hang. |
| Solution: |
Fix race condition in dasd_enable_ranges. |
| Problem-ID: |
1967 |
| Description: |
ctrl-c during format of dasd device. |
| Symptom: |
Kernel panic. |
| Problem: |
Unable to abort dasd formatting. |
| Solution: |
Fix race condition in dasd_sleep_on_request. |
| Problem-ID: |
1968 |
| Description: |
Dynamic attach of diag dasd devices. |
| Symptom: |
Diag dasd device showing up as eckd dasd device. |
| Problem: |
Diag dasd devices do not get registered with the diag
discipline when they are dynamically attached because the eckd
discipline gets them first. |
| Solution: |
Try diag discipline before eckd discipline. |
| Problem-ID: |
1969 |
| Description: |
Dynamic attach of dasd devices. |
| Symptom: |
The kernel loops when a dasd is defined under VM. |
| Problem: |
Deadlock in device bring-up. |
| Solution: |
Fix deadlock in device bring-up. |
| Problem-ID: |
1970 |
| Description: |
Dasd autodetect. |
| Symptom: |
System hangs if dasd= parameter is missing. |
| Problem: |
For system with a huge device range the ipl needs a very long
time. |
| Solution: |
Switched off autodetect/probeonly as default parameter. |
| Problem-ID: |
1971 |
| Description: |
Kernel oops while formatting dasd. |
| Symptom: |
Segmentation fault in the dasd driver when an unformatted dasd
device is disabled. |
| Problem: |
An unformatted dasd device doesn't not have a request_queue.
dasd_disable_blkdev doesn't check if the request_queue pointer is
valid. |
| Solution: |
Check for validity of device->request_queue before accessing
its members in dasd_disable_blkdev. |
| Problem-ID: |
1972 |
| Description: |
Crashes in copy_to_user. |
| Symptom: |
Kernel oops message |
| Problem: |
The fixup routine __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. |
| Problem-ID: |
1923 |
| Description: |
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. |
| Problem-ID: |
1926 |
| Description: |
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 the flush
is done for a different mm than the current one for the cpu. The
next flush can fail to remove the tlb another cpu has 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. |
| Problem-ID: |
1924 |
| Description: |
Status pending handling. |
| Symptom: |
Possibly all kinds of erratic behavior. |
| 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 with 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 realize 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: |
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: |
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: |
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 |
This patch contains an enhancement of the device driver for channel
attached tape devices. It implements an infrastructure which allows
to have different tape disciplines as separate Kernel modules. The
generic tape driver (tape390) tries to automatically load the known
tape disciplines. 3480 and 3490 tape disciplines are included in
this patch. The 3590 tape discipline can be downloaded separately
from this web site: tape_3590_mod.
Basically this functionality is a backport of the May2002 tape
driver. For documentation how to use this enhanced tape device
driver please refer to "Chapter 5.Channel-attached tape device
driver" of the "Linux for
zSeries and S/390 Device Drivers and Installation Commands"
manual of the May 2002 stream.
This patch also contains:
- the following backports from 2.4.17:
-
- patch to enable multipathing with LVM.
- dasd i/o timestamp support
- enable setting of cache attributes (Sequential Prestage)
- the following backports from 2.4.19:
-
- Update tape device driver to the same release as kernel 2.4.19
in the May 2002 stream. This is required in order to use the 3590
OCO module.
- Add the z90crypt driver from the May 2002 stream
Please refer to "Chapter 6.Generic cryptographic device driver" of
the "Linux for
zSeries and S/390 Device Drivers and Installation Commands"
Documentation of the May 2002 stream for information on how to use
this module.
and some cosmetic changes.
Everybody should apply this patch.
To create the complete Linux kernel sources,
the following patches need to be applied in sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.diff (IBM)
+ linux-2.4.7-s390-9-extfix.diff (IBM)
+ linux-2.4.7-s390-10.diff (IBM)
+ linux-2.4.7-s390-11.diff (IBM)
- On demand timer ("August 2001", 2003-02-20)
Release notes: Adaption to above 2003-02-20 kernel-patch
linux-2.4.7-timer-6.tar.gz
MD5
(2003-02-20) (superseded)
Category operating system.
Contains a patch for the linux kernel 2.4.7 that will change 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
backdraw 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_HZ_TIMER that lets you choose between the old and
the new behaviour. Note that you'll need different lcs and qeth
modules if you use the no hz timer option.
This linux-2.4.7-timer-6.tar.gz is a complete replacement for the
already shipped timer patches:
- linux-2.4.7-timer-5.tar.gz (2002-09-13)
- linux-2.4.7-timer-4.tar.gz (2002-04-15)
- linux-2.4.7-timer-3.tar.gz (2002-01-21)
- linux-2.4.7-timer-2.tar.gz (2001-11-23)
- linux-2.4.7-timer.tar.gz (2001-10-12)
To create the complete linux kernel sources, the following patches
need to be applied in sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.tar.gz (IBM)
+ linux-2.4.7-s390-9-extfix.diff (IBM)
+ linux-2.4.7-s390-10.diff (IBM)
+ linux-2.4.7-s390-11.diff (IBM)
+ linux-2.4.7-timer-6.diff (IBM)
- Order-2 ("August 2001", 2003-02-20)
linux-2.4.7-order2-5.tar.gz
MD5
recommended (2003-02-20) (superseded)
The "order 2 allocation
relief" patch is a complete replacement of the recommended patch
shipped on 2002-03-18.
The original patch decreased the kernel
stack size to 8KB which turned out to be not enough.
As a side-effect of this new patch there is no longer a need for
special OCO-modules and the timer patch can be applied to the same
kernel.
| Description: |
Order 2 allocation relief |
| Symptom: |
Under stress and after long uptimes of a 64 bit system the
error message "__alloc_pages: 2-order allocation failed." appears
and either the fork of a new process fails or an active process
dies. |
| Problem: |
The order 2 allocation problem is based in the size of the
region and segment tables as defined by the zSeries architecture. A
full region or segment table in 64 bit mode takes 16 KB of
contiguous real memory. The page allocation routines do not
guarantee that a higher order allocation will succeed due to memory
fragmentation. |
| Solution: |
The order 2 allocation fix is supposed to reduce the number of
order 2 allocations for the region and segment tables to a minimum.
To do so it uses a feature of the architecture that allows to
create incomplete region and segment tables. In almost all cases a
process does not need full region or segment tables. If a full
region or segment table is needed it is reallocated to the full
size. |
- This patch is very s/390 specific, but doesn't break other
architectures.
- This patch does only work for a 64-bit Linux for zSeries
kernel, but can also be applied if you intend to build a 31-bit
kernel.
- This patch is compatible with the "On-demand timer patch" and
does not require special OCO modules.
To create the complete linux kernel sources, the following patches
need to be applied in sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.diff (IBM)
+ linux-2.4.7-s390-9-extfix.diff (IBM)
+ linux-2.4.7-s390-10.diff (IBM)
+ linux-2.4.7-s390-11.diff (IBM)
+ linux-2.4.7-order2-5.diff (IBM), or on top of
linux-2.4.7-timer-6.diff (IBM) if timer is required.
|
- s390-tools 1.0.6 ("August 2001", 2003-02-20)
Category: operating system. Contains the source tree of a set of
user space utilities that should to be used together with the
zSeries and S/390 Linux kernel and device drivers.
s390-tools-1.0.6-august2001.tar.gz
MD5
recommended (2003-02-20)
This version of the s390-tools
consists out of the following accumulated patches:
s390-tools.tar.gz (IBM)
+ s390-tools-1.diff (IBM)
+ s390-tools-2.diff (IBM)
+ s390-tools-3.diff (IBM)
+ s390-tools-4.diff (IBM)
+ s390-tools-5.diff (IBM)
Besides these patches, the following changes are included in the
s390-tools-1.0.6 package:
| Description: |
Wrong VTOC bit for large DASD |
| Symptom: |
The z/OS tool IEHLIST fails on a CDL formatted 3390/9 DASD with
rc 8. |
| Problem: |
The DS4DOSBT bit in the FMT4 DSCB of the VTOC was not set for
large DASD. |
| Solution: |
Set DS4VTOCI in the FMT4 DSCB initially to 0xa0 instead to
0x20. This indicates an invalid FMT5 DSCB and to use the FMT7 DSCB
(extended free space management) |
| Problem-ID: |
1861 |
| Description: |
zgetdump does not complain if filesystem is full. |
| Symptom: |
It looks like dump has been copied successfully, but in fact it
is not complete. |
| Problem: |
Error code of write() was not checked. |
| Solution: |
Check error code and write error message. |
| Problem-ID: |
1946 |
| Description: |
Added Multi Volume support for System Dump on 3590 tape
devices. |
| Description: |
Added shell script 'dbginfo.sh' (which collects information
useful for debugging purposes) to s390-tools package. |
| Description: |
Added tool 'tape390_display' to s390-tools package. |
|
|
The qdio and qeth 31-bit and 64-bit OCO-modules of
2002-12-19 are replacements for the 2002-08-16 recommended qdio and
qeth modules.
Recommended OCO modules 31-bit
(superseded)
Recommended OCO modules 64-bit
(superseded)
| 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% |
|
|
The qdio and qeth 31-bit and 64-bit OCO-modules of
2002-12-19 are replacements for the 2002-08-16 recommended qdio and
qeth modules.
Recommended OCO modules 31-bit
(superseded)
Recommended OCO modules 64-bit
(superseded)
| 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% |
|
|
linux-2.4.17-s390-5.tar.gz
MD5
recommended (2002-11-25)
-
| Description: |
Tape attach fails. |
| Symptom: |
Linux hangs after a tape attach, or an attached tape is not
recognized. |
| Problem: |
Msch in enable_subchannel encounters a pending status first; a
second msch succeeds, but the return code is still -EIO. |
| Solution: |
Set the return code to 0 after a successful msch. |
| Description: |
Unsolicited interrupts. |
| Symptom: |
Dasd reports an unsolicited interrupt. |
| Problem: |
The I/O layer detected a condition code 3 situation during a
SetPGID and erroneously called dasd's interrupt handler. |
| Solution: |
Don't call the device driver's interrupt handler when a
"device/path not operational" situation occurs during an internal
I/O. |
| Description: |
Hang on 64 bit. |
| Symptom: |
Possible hangs on 64 bit systems. |
| Problem: |
Flags variable in read_dev_chars is too short. |
| Solution: |
Change flags variable to unsigned long. |
| Description: |
Linux hangs. |
| Symptom: |
Possible hang when loading a device driver (not observed
yet). |
| Problem: |
Read_dev_chars and read_conf_data leave interrupts disabled on
error. |
| Solution: |
Do __restore_flags() in both cases |
| Description: |
Path grouping fails. |
| Symptom: |
Path groups are not correctly set, leading to "Unexpected error
0" messages in /proc/s390dbf/cio_msg/sprintf. |
| Problem: |
Incorrect check for errors in DevicePathVerification. |
| Solution: |
Correctly check for errors in DevicePathVerification. |
| Description: |
Deferred cc 3 handling. |
| Symptom: |
Linux fails to detect devices after 'not operational'
messages. |
| Problem: |
After a deferred cc 3 in SensePGID, Linux failed to try path
grouping for other paths. |
| Solution: |
Correctly retry after 'not operational' conditions. |
| Description: |
LCS does not compile with gcc 3.2 |
| Symptom: |
Compile error in lcs.c |
| Problem: |
lcs uses '#if BUG' (BUG is a kernel macro) |
| Solution: |
Use '#if 0' instead |
Everybody should apply this patch.
To create the complete linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
+ linux-2.4.17-s390-4-iucv.diff (IBM)
+ linux-2.4.17-s390-5.diff (IBM)
|
|
linux-2.4.7-s390-10.tar.gz
MD5
recommended (2002-11-25)
-
| Description: |
Hangs after machine checks. |
| Symptom: |
Linux hangs after a device is gone. |
| Problem: |
S390_free_irq tried synchronous halt_IO on the subchannel, but
no interrupt was reported back. |
| Solution: |
Don't do synchronous halt_IO in s390_free_irq. |
| Description: |
Tape attach fails. |
| Symptom: |
Linux hangs after a tape attach, or an attached tape is not
recognized. |
| Problem: |
Msch in enable_subchannel encounters a pending status first; a
second msch succeeds, but the return code is still -EIO. |
| Solution: |
Set the return code to 0 after a successful msch. |
| Description: |
Unsolicited interrupts. |
| Symptom: |
Dasd reports an unsolicited interrupt. |
| Problem: |
The I/O layer detected a condition code 3 situation during a
SetPGID and erroneously called dasd's interrupt handler. |
| Solution: |
Don't call the device driver's interrupt handler when a
"device/path not operational" situation occurs during an internal
I/O. |
| Description: |
Hang on 64 bit. |
| Symptom: |
Possible hangs on 64 bit systems. |
| Problem: |
Flags variable in read_dev_chars is too short. |
| Solution: |
Change flags variable to unsigned long. |
| Description: |
Linux hangs. |
| Symptom: |
Possible hang when loading a device driver (not observed
yet). |
| Problem: |
Read_dev_chars and read_conf_data leave interrupts disabled on
error. |
| Solution: |
Do __restore_flags() in both cases. |
| Description: |
Path grouping fails. |
| Symptom: |
Path groups are not correctly set, leading to "Unexpected error
0" messages in /proc/s390dbf/cio_msg/sprintf are "Unexpected error
0" messages. |
| Problem: |
Incorrect check for errors in DevicePathVerification. |
| Solution: |
Correctly check for errors in DevicePathVerification. |
| Description: |
Deferred cc 3 handling. |
| Symptom: |
Linux fails to detect devices after 'not operational'
messages. |
| Problem: |
After a deferred cc 3 in SensePGID or SetPGID, Linux failed to
try path grouping for other paths. |
| Solution: |
Correctly retry after 'not operational' conditions. |
| Description: |
LCS does not compile with gcc 3.2 |
| Symptom: |
Compile error in lcs.c |
| Problem: |
lcs uses '#if BUG' (BUG is a kernel macro) |
| Solution: |
Use '#if 0' instead |
Everybody should apply this patch.
To create the complete linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.diff (IBM)
+ linux-2.4.7-s390-9-extfix.diff (IBM)
+ linux-2.4.7-s390-10.diff (IBM)
|
|
linux-2.4.7-s390-9-extfix.tar.gz
MD5
recommended (2002-09-13)
-
| Description: |
DIAG access to CMS reserved minidisks clashes with PFAULT
support |
| Symptom: |
Endlessly looping system. |
| Problem: |
DIAG and PFAULT share the same external interrupt 0x2603.
Because PFAULT is initialized before kmalloc works the registration
code keeps a static buffer for the registration of the pfault
interrupt handler. Since DIAG uses the same external interrupt
number the same static buffer is used for both interrupt handlers.
This create a loop in the interrupt chain causing the system to
loop. |
| Solution: |
Add two functions [un]register_early_external_interrupt and use
these functions for early registration of external interrupts. The
two new functions require the static buffer to be passed to them.
This prevents that DIAG and PFAULT use the same static buffer. |
Everybody should apply this patch.
To create the complete linux
kernel sources, the following patches need to be applied in
sequence: linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.diff (IBM)
+ linux-2.4.7-s390-9-extfix.diff (IBM)
linux-2.4.7-timer-5.tar.gz
MD5
recommended (2002-09-13) (superseded)
Release notes: (2002-09-13: adaption
to above 2002-09-13 kernel-patch)
On demand timer patch Category operating system. Contains a patch
for the linux kernel 2.4.7 that will change 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 backdraw 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_HZ_TIMER that lets you choose between the old and the new
behaviour. Note that you'll need different lcs and qeth modules if
you use the no hz timer option. This linux-2.4.7-timer-5.tar.gz is
a complete replacement for the already shipped timer patches:
- linux-2.4.7-timer-4.tar.gz (2002-04-15)
- linux-2.4.7-timer-3.tar.gz (2002-01-21)
- linux-2.4.7-timer-2.tar.gz (2001-11-23)
- linux-2.4.7-timer.tar.gz (2001-10-12)
To create the complete linux kernel sources, the following patches
need to be applied in sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.tar.gz (IBM)
+ linux-2.4.7-s390-9-extfix.diff (IBM)
+ linux-2.4.7-timer-5.diff (IBM)
|
|
linux-2.4.17-s390-4-iucv.tar.gz
MD5
recommended (2002-08-16)
This is a backport of the latest fixes
in the linux IUCV driver to linux 2.4.17.
Corrected 2002-09-18 to apply in the standard manner.
It addresses a patch by David Kennedy
<dkennedy@linuxcare.com> which eliminates a race condition
during initialization.
David's patch however, does introduce
another SERIOUS problem: When running on a guest with more than one
CPU it can CRASH YOUR VM!!!
This has been fixed with this patch.
Everybody should apply this patch.
To create the complete linux kernel sources, the following
patches need to be applied in sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
+ linux-2.4.17-s390-4-iucv.diff (IBM)
|
|
linux-2.4.7-s390-8-iucv.tar.gz
MD5
recommended (2002-08-16)
-
This is a backport of the latest fixes
in the linux IUCV driver to kernel 2.4.7.
Corrected 2002-09-13 to apply in the standard manner.
It addresses a patch by David Kennedy
<dkennedy@linuxcare.com> which eliminates a race condition
during initialization.
David's patch however, does introduce
another SERIOUS problem: When running on a guest with more than one
CPU it can CRASH YOUR VM!!!
This has been fixed with this patch.
To create the complete linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-s390-8-iucv.diff (IBM)
|
|
gcc-2.95.3-s390-5.tar.gz
MD5
recommended (2002-07-25)
-
This patch contains the following compiler bug fixes:
| Description: |
Literal pool overflow handling. |
| Symptom: |
Compiler aborts with 'multiple literal pool' internal compiler
error, or otherwise generates incorrect code for routines using
>4K literals. |
| Problem: |
The compiler uses a per-function literal pool to access
immediate constants too large for the S/390 immediate instructions.
This pool is limited to a size of 4 KB. Fortunately, nearly all
routines do not exceed this limit, but some -usually automatically
generated code- do.
To cope with this situation, the compiler tried to split the
literal pool into multiple 'pool chunks', each smaller than 4 KB.
The algorithms used to perform this split, however, suffered from
several design flaws that could cause the compiler to abort
(because it wouldn't find a proper place to split the pools) or
else generate invalid code -especially when using -fpic/-fPIC-
(because it split the pools at invalid places without noticing
it). |
| Solution: |
The whole literal pool handling was completely replaced for gcc
3.1.1 and above; the new algorithm solves all those problems. This
patch backports the new literal pool overflow handling to the gcc
2.95.3 compiler. |
You will need this
patch only if you run into problems caused by literal pool
overflows.
To create the
complete compiler sources, the following patches need to be applied
in sequence:
gcc-2.95.3.tar.gz (see gcc.gnu.org)
+ gcc-2.95.3-s390.diff (IBM)
+ gcc-2.95.3-s390-1.diff (IBM)
+ gcc-2.95.3-s390-2.diff (IBM)
+ gcc-2.95.3-s390-3.diff (IBM)
+ gcc-2.95.3-s390-4.diff (IBM)
+ gcc-2.95.3-s390-5.diff (IBM)
binutils-2.11.90.0.27-s390-4.tar.gz
MD5
recommended (2002-07-25)
-
This patch contains the following binutils bug fixes:
| Description: |
Linker crashes. |
| Symptom: |
The static link of some special object files crashes the
linker. |
| Problem: |
The final, static link of object files that do not contain any
direct references to dynamic symbols but only indirect ones crashes
the linker because the dynobj pointer and the got pointer are used
but never initialised. |
| Solution: |
Initialise the dynobj pointer if it is needed and avoid
accessing the got section if it does not exists. |
Everybody should apply this patch.
Note: You should apply the glibc-2.2.4-s390-3 patch to
your system as well but you need to be careful with it. Please read
the description for the "Undefined weak
external" bug for details about this problem.
To create the complete binutils sources, the following patches need
to be applied in sequence:
binutils-2.11.90.0.27.tar.gz (see
ftp://www.kernel.org/pub/linux/devel/binutils/)
+ binutils-2.11.90.0.27-s390.diff (IBM)
+ binutils-2.11.90.0.27-s390-1.diff (IBM)
+ binutils-2.11.90.0.27-s390-2.diff (IBM)
+ binutils-2.11.90.0.27-s390-3.diff (IBM)
+ binutils-2.11.90.0.27-s390-4.diff (IBM)
|
-
binutils-2.11.90.0.27-s390-3.tar.gz
MD5
recommended (2002-07-04)
This patch contains the following binutils bug fixes:
| Description: |
Broken relocation sections. |
| Symptom: |
Dynamic linker error message "unexpected reloc type" or program
crashes / malfunctions. |
| Problem: |
There are two problems in regard to the relocation sections.
First hidden symbols are not excluded from the final link in all
cases, dependent on the link order. Second the calculation of the
size of the relocation sections is incorrect if hidden symbols have
been excluded. |
| Solution: |
Correct tests to exclude hidden symbols from the relocation
sections in the final link and rework section allocation for .rela
section to determine the correct size. |
Everybody should apply this patch.
Note: You should apply the glibc-2.2.4-s390-3 patch to
your system as well but you need to be careful with it. Please read
undef-weak-bug for details about
this problem.
To create the complete binutils sources, the following patches need
to be applied in sequence:
binutils-2.11.90.0.27.tar.gz (see
ftp://www.kernel.org/pub/linux/devel/binutils/)
+ binutils-2.11.90.0.27-s390.diff (IBM)
+ binutils-2.11.90.0.27-s390-1.diff (IBM)
+ binutils-2.11.90.0.27-s390-2.diff (IBM)
+ binutils-2.11.90.0.27-s390-3.diff (IBM)
|
|
linux-2.4.17-timer-3.tar.gz
MD5
recommended (2002-06-17) (superseded)
-
The 2002-06-17
timer patch supersedes the 2002-04-15 timer patch, which did
not apply correctly.
On demand timer
patch:
Category operating system. Contains a patch for the linux kernel
2.4.17 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_HZ_TIMER that
lets you choose between the old and the new behavior. Note that
you'll need different qdio, qeth, and z90crypt modules if you use
the no hz timer option.
To create the
complete linux kernel sources, the following patches need to be
applied in sequence:
linux-2.4.17.tar.gz (www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
+ linux-2.4.17-timer-3.diff (IBM)
|
Gigabit
Ethernet throughput (transactions per second) can potentially
increase while potentially reducing the VM CP cost (CPU cycles per
transaction) for Linux guests using Gigabit Ethernet or Fast
Ethernet OSA-Express running QDIO under supported levels of VM, if
the following requirements are installed:
- qeth and qdio for Linux on zSeries
- qdio (part of kernel 2.4.17-may2002 patches) and qeth
(OCO-module) from the Recommended "May 2002
stream" Archive page contain the necessary functionality
since 2002-05-31.
- The qdio and qeth OCO-modules for the other two kernel 2.4
streams have been upgraded with retrofits of this functionality,
see:
- OSA-Express QDIO
- zSeries 900 GA3: Driver 3G, OSA microcode level
3.0A,
MCLs: J11204.007 and J11204.008
(available May 03, 2002)
- zSeries 900 GA2: Driver 3C, OSA microcode level:
2.26
MCLs: J10630.013 and J10630.014
(available May 20, 2002)
- zSeries 800 GA1: Driver 3G, OSA microcode level
3.0A
MCLs: J11204.007 and J11204.008
(available May 03, 2002)
- S/390 Parallel Enterprise Servers G5 and G6: Driver 26,
OSA microcode level: 4.25
MCLs: F99904.032 and F99904.033
(available May 16, 2002)
Please refer to the
TCP/IP Stack Limitation on OSA-Express News-Flash for
related interesting information.
- VM/ESA and z/VM
- z/VM 4.3:
- All enhancements included.
- z/VM 4.2:
- APAR: VM62938, PTF: UM30225
- APAR: VM63034, PTF: UM30290
- z/VM 4.1:
- APAR: VM63034, PTF: UM30289
- APAR: VM63036, PTF: UM30293
- z/VM 3.1:
- APAR: VM63034, PTF: UM30288
- APAR: VM63036, PTF: UM30292
- VM/ESA 2.4:
- APAR: VM63034, PTF: UM30287
- APAR: VM63036, PTF: UM30291
Please refer to the OSA-Express QDIO
performance enhanced in OSA-Express QDIO performance enhanced in
consolidated Linux under z/VM environments document
providing more details.
|
|
-
linux-2.4.17-s390-3.tar.gz
MD5
recommended (2002-06-12)
-
This patch contains the following linux kernel bug fixes:
| Description: |
Memory management: dirty bit handling. |
| Symptom: |
User process crashes. |
| Problem: |
An mprotect operation on a dirty, private user page sets the
_PAGE_ISCLEAN bit in the pte, effectivly removing the dirty bit.
Under memory pressure changes in the now clean page get lost. |
| Solution: |
Preserve the _PAGE_ISCLEAN bit in pte_modify. |
| Description: |
Memory management: mprotect problem. |
| Symptom: |
Writes to memory areas that have been writed protected with the
mprotect system call do not cause segmentations faults. |
| Problem: |
A check for the VM_WRITE bit in the page fault handler is
missing. |
| Solution: |
Add missing check. |
| Note: |
The missing check has only been added to the 31 bit code but
NOT to the 64 bit code. The reason is a bug in the 64 bit gcc
2.95.3 compiler that will generate relocations in .rodata section
of shared libraries. There is code in the dynamic linker to cope
with this situation but the dynamic linker itself may not contain
such relocations. Replacing the kernel of a 64 bit system without
fixing the .rodata problem in the dynamic linker would make the
system unusable. |
| Description: |
ptrace locking |
| Symptom: |
Crashes in kernel space or kernel hangs while using debugging
tools like strace or gdb. |
| Problem: |
The traced process was not properly locked in sys_ptrace. |
| Solution: |
Add get_task_struct/free_task_struct calls in sys_ptrace. |
| Description: |
Daisy chaining of external interrupts. |
| Symptom: |
Concurrent use of pfault and dasd diag causes kernel
hangs. |
| Problem: |
Pfault and dasd diag use the same static ext_int_info_t
structure. This creates a loop in the ext_int_info_t chain for
external interrupt 0x2603. |
| Solution: |
Add [un]register_early_external_interrupt and make the kernel
objects that are registering early pass a pointer to their static buffer. |
| Description: |
Parallel make failures. |
| Symptom: |
Make fails because of missing file/undefined symbols in
entry.S. |
| Problem: |
Parallel make can build entry.o before asm-offsets.h is
present. |
| Solution: |
Add dependency entry.S -> asm-offsets.h. |
| Description: |
Floating point use in the 31 bit emulation. |
| Symptom: |
Floating point register contents of 31-bit emu applications get
corrupted. |
| Problem: |
The 31-bit emu signal handler dispatch code clobbered floating
point registers. |
| Solution: |
Do not use floating point arithmetic in kernel space. |
| Description: |
Dasdfmt ctrl-c problem. |
| Symptom: |
ctrl-c during dasd formatting causes kernel panic. |
| Problem: |
Request structures are accessed after being freed. |
| Solution: |
Fix race condition in request handling. |
| Description: |
Deadlocks in the dasd driver on the dev_level_lock. |
| Symptom: |
Kernel hangs on adding / removing dasd devices. |
| Problem: |
The linux-2.4.17-s390-2.diff introduced an additional lock to
protect the list of devices. This lock is not properly freed in all
places and did not fix the original problem. |
| Solution: |
Remove the dev_level_lock. |
| Description: |
Detection of VM reserved minidisks. |
| Symptom: |
VM reserved minidisks do not get registered as diag disks if
they are attached after ipl. |
| Problem: |
Eckd is checked first and every reserved minidisk is accessed
via the eckd discipline instead of the diag discipline. |
| Solution: |
Let the diag discipline check first for VM reserved
minidisks. |
| Description: |
Bringup of eckd devices. |
| Symptom: |
Kernel panic "Unable to mount root" or inaccessible eckd
devices. |
| Problem: |
Large device ranges trigger a race condition in the dasd
initialization for eckd devices. If the completion interrupt for
the format detection ccw arrives before the loop over all devices
of the range is completed the affected dasd is not completety
initialized. |
| Solution: |
Fix retry condition in the device startup code. |
| Description: |
Common io layer: path verification. |
| Symptom: |
Linux fails to bring up devices after printing "became 'not
operational' " messages for a certain path. |
| Problem: |
SetPGID returned -EAGAIN to DevicePathVerification on deferred
condition code 3 for a path, but DevicePathVerification didn't try
SetPGID down the remaining paths and returned with an error. |
| Solution: |
Fix return code handling in DevicePathVerification. |
| Description: |
Common io layer: device freeing. |
| Symptom: |
Linux hangs after a device is gone, or a link failed. |
| Problem: |
s390_free_irq tried synchronous halt_IO on the subchannel, but
no interrupt was reported back. |
| Solution: |
Don't do synchronous halt_IO in s390_free_irq. |
Everybody should apply this patch.
To create the complete linux kernel sources, the following
patches need to be applied in sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-3.diff (IBM)
|
|
gcc-2.95.3-s390-4.tar.gz
MD5
recommended (2002-06-04)
-
This patch contains the following compiler bug fixes:
| Description: |
Use of LOAD ADDRESS vs. ADD for pointer computation. |
| Symptom: |
Compiler generates incorrect code. |
| Problem: |
In some cases, when compiling code that takes the address of a
local stack variable near code involving conditions (if / while /
...), the generated code will be incorrect. This is caused by the
compiler using an ADD instruction (which modifies the condition
code) at a point where it expects a LOAD ADDRESS to be used (which
preserves the condition code). |
| Solution: |
Use LA to compute addresses of local variables. |
| Description: |
Inline memcpy problem. |
| Symptom: |
Compiler generates incorrect code. |
| Problem: |
When generating code to implement memcpy inline, the compiler
assumes in some cases incorrectly that after the memcpy completes,
certain registers still hold the addresses pointing to the start of
the source and/or target memory areas, although these registers
were in fact modified by the inline memcpy code. |
| Solution: |
Rewrite the corresponding insn patterns to remove the incorrect
assumptions. |
| Description: |
Dead code elimination of complex switch statements. |
| Symptom: |
Compiler generates incorrect code. |
| Problem: |
When the source code contains a complex switch statement (one
that would be implemented using a jump target table), and *all* its
cases prove to contain dead code (i.e. code that has no effect on
subsequent computations and can be completely deleted by the
compiler), and therfore the compiler decides to remove the whole
switch statement, it will in some cases erroneously remove some of
code *following* the switch statement as well. |
| Solution: |
Emit barrier following the indirect jump insn. |
| Description: |
Illegal address constants on 64-bit. |
| Symptom: |
Internal compiler error "unrecognized insn". |
| Problem: |
In some rare cases, the compiler would generate an illegal
address constant, causing an ICE. |
| Solution: |
Don't generate illegal address constants. |
Everyone using the compiler should apply this patch.
To create the complete compiler sources, the following
patches need to be applied in sequence:
gcc-2.95.3.tar.gz (see gcc.gnu.org)
+ gcc-2.95.3-s390.diff (IBM)
+ gcc-2.95.3-s390-1.diff (IBM)
+ gcc-2.95.3-s390-2.diff (IBM)
+ gcc-2.95.3-s390-3.diff (IBM)
+ gcc-2.95.3-s390-4.diff (IBM)
|
|
linux-2.4.17-s390-kerntypes.tar.gz
MD5
recommended (2002-04-30)
-
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'. Everybody should apply this patch.
These changes do not affect the OCO-modules.
To create the complete linux kernel sources, the following
patches need to be applied in sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-s390-kerntypes.diff (IBM)
|
|
linux-2.4.17-s390-2.tar.gz
MD5
recommended (2002-04-15)
-
This recommended patch contains the following linux kernel bug
fixes
| Description: |
Console setup restrictions. |
| Symptom: |
Unable to use a 3215/3270 device as console on an LPAR. |
| Problem: |
The console setup code explicitly tests for VM or P/390 before
it accepts a 3215 or 3270 console device. |
| Solution: |
Remove machine type restrictions from conmode_setup. |
| Description: |
Dasd driver. |
| Symptom: |
Stress test with device attach/detach hangs the system. |
| Problem: |
Concurrent changes to the states of dasd devices lead to
inconsistencies. |
| Solution: |
Add a lock that prevents concurrent changes of device
state. |
| Description: |
Dasd reserve/release timeout. |
| Symptom: |
Kernel crashes in dasd reserve/release function. |
| Problem: |
The reserve/release timeout can remove the reserve/release
request anytime. This was not noticed in dasd_sleep_on_req. |
| Solution: |
Recheck the state of the reserve/release request after the
device lock was acquired. |
| Description: |
Read-only status of dasd devices. |
| Symptom: |
/proc/dasd/devices indicated reported read-only/read-write
status for device that have been modified with the BLKROSET i/o
control. |
| Problem: |
The default BLKROSET i/o control implementation sets the
read-only/read-write bit in the block device layer but the dasd
driver has bits of his own. |
| Solution: |
Implement a private BLKROSET i/o control for dasd that keeps
the bits in the block device layer and in the dasd driver
consistent. |
| Description: |
Dasd device bringup. |
| Symptom: |
The system crashes in dasd device bringup. |
| Problem: |
The bottom half can be called early with a request on the block
device queue. The bottom half requeues the request to the internal
dasd queue although the device is in a state where this may not
happen yet. |
| Solution: |
Plug the device while it is initialized. |
| Description: |
Diag discipline not working. |
| Symptom: |
Dasd devices that are addressed with the diag discipline do not
work. |
| Problem: |
There are two different problems that prevent the diag
discipline from working. 1) pfault and dasd diag use the same
external interrupt number. If pfault is active the diag discipline
never gets interrupts. 2) diag devices only get promoted to state
ready but not to state online. |
| Solution: |
Fix the two problems: 1) deliver external interrupts to all
interrupt handlers with matching external interrupt number and let
the interrupt handler filter out "their" requests. 2) do not return
from dasd_set_device_level with -EAGAIN for diag devices. |
| Description: |
31 bit emulation. |
| Symptom: |
31 bit programs running in the 31 bit emulation under 64 bit
linux do not work correctly. |
| Problem: |
SVC emulation is incorrect in various aspects. 1) the 31 bit
personality is missing, 2) emulation of sys_stime and sys_sysctl
can fail because of incorrect 31/64 bit argument conversion, 3)
emulation of MSGSND/MSGRCV ipc system call returned different
results in error cases, 4) emulation of sys_shmctl uses an
incorrect layout for IPC_64 type shared memory, 5) missing pointer
conversion in sys_fcntl emulation and 6) emulation of old_getrlimit
is incorrect. |
| Solution: |
Add 31 bit personality and correct emulation of svcs. |
| Description: |
Kernel compilation with gcc 3.1. |
| Symptom: |
Kernel compilation with gcc version 3.1 fails. |
| Problem: |
Some kernel code that used to work with gcc 2.95.3 is rejected
by gcc 3.1. |
| Solution: |
Fix the code so that gcc 3.1 accepts it. |
| Description: |
Blanks in labels. |
| Symptom: |
Devices with labels that contain blanks are not accessible over
the fstab. |
| Problem: |
It is impossible to specify a blank in a device label in
/etc/fstab. |
| Solution: |
Do not allow blanks in device labels. |
| Description: |
Machine check enabling. |
| Symptom: |
No or late machine check handling. |
| Problem: |
The machine check enable bit in the PSW is not set while a
processor sleeps in cpu_idle and is not set at all for 64 bit. |
| Solution: |
Set the machine check bit in the relevant PSW masks. |
| Description: |
Channel device layer. |
| Symptom: |
None. |
| Problem: |
It is not possible to specify multiple parameters with a single
channel device configuration string. |
| Solution: |
Allow multiple add_parms in the channel device configuration
strings. |
| Description: |
iucv inoperational after reboot. |
| Symptom: |
The iucv interface does not work after a reboot. |
| Problem: |
The shutdown of the iucv interface needs to be done on the same
cpu that did the initialization. |
| Solution: |
Remember which cpu did the initialization and call it to do the
shutdown. |
| Description: |
Panic loops. |
| Symptom: |
Endless program check loop. |
| Problem: |
If panic is called in interrupt while the console semaphore has
already been acquired the processor enters an endless program check
loop. |
| Solution: |
Only do a down_trylock in console_unblank on the console
semaphore instead of a down to avoid the scheduling in interrupt
trap. |
| Description: |
No sske optimization. |
| Symptom: |
None. |
| Problem: |
The sske avoidance optimization is not working because the same
bit is used for _PAGE_MKCLEAN and _PAGE_ISCLEAN. |
| Solution: |
Use a different bit for _PAGE_ISCLEAN. |
| Description: |
Ptrace on 64 bit. |
| Symptom: |
System crashes trying to strace a program. |
| Problem: |
In resume the wrong offset is used to test if a program uses
program event recording. Two side effects in the register usage are
not taken into account. |
| Solution: |
Fix offset and register use in entry.S. |
| Description: |
Reboot failures. |
| Symptom: |
Reboot either loops or end with disabled wait. |
| Problem: |
Two problems. 1) the start subchannel on the reipl ccw can fail
and 2) a cpu is deactivated but still holds a lock that is needed
by the reipl function. |
| Solution: |
Try to start the reipl ccw multiple times and force all cpus
into a state where all locks that the reipl functions needs are
free. |
| Description: |
Common i/o layer. |
| Symptom: |
Device inaccessible after chpid offline/online. |
| Problem: |
Calculation of path group id depends on cpu id. |
| Solution: |
Introduce a global path group id that is used as default for
set path group id. |
| Description: |
Common i/o layer. |
| Symptom: |
Possible kernel oops writing to /proc/cio_ignore. |
| Problem: |
The input string to /proc/cio_ignore is copied to a buffer that
is one byte short. |
| Solution: |
Fix the allocation for the buffer. |
| Description: |
Backtrace over signal frames. |
| Symptom: |
catchsegv can crash if the fault happens in a signal
handler. |
| Problem: |
The backchain in the signal frame is not setup. |
| Solution: |
Set the backchain in the signal frame to point to the
interrupted stack frame. |
| Description: |
3270 device numbers. |
| Symptom: |
The devices file system entries for a 3270 device with a 4
digit device number are incorrect. |
| Problem: |
The output of 3270 device numbers is restricted to 3
digits. |
| Solution: |
Allow 4 digits in the print statements of 3270 device
numbers. |
| Description: |
Type conversion in __put_user/__get_user. |
| Symptom: |
System calls fail although the input is correct. |
| Problem: |
__put_user/__get_user are not doing proper type conversion. If
the user space pointer does not point to the same type as the
variable given in the argument to __put_user/__get_user this leads
to problems. This is especially true for the emulation of 31 bit
system calls on 64 bit linux. |
| Solution: |
Do proper type conversion like it is done in
put_user/get_user. |
Everybody should apply this patch.
These changes do not affect the OCO-modules.
To create the
complete linux kernel sources, the following patches need to be
applied in sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
linux-2.4.17-timer-2.tar.gz
MD5
recommended On demand timer patch (2002-04-15)
(superseded)
-
Release notes: (2002-04-15: adaption to above 2002-04-15
kernel-patches)
On demand timer patch:
Category operating system. Contains a patch for the linux kernel
2.4.17 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_HZ_TIMER that
lets you choose between the old and the new behavior. Note that
you'll need different qdio, qeth, and z90crypt modules if you use
the no hz timer option.
To create the
complete linux kernel sources, the following patches need to be
applied in sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-s390-2.diff (IBM)
+ linux-2.4.17-timer-2.diff (IBM)
|
linux-2.4.7-s390-7.tar.gz
MD5
recommended (2002-04-15)
-
This patch contains the following linux kernel bug fixes:
| Description: |
Console setup restrictions. |
| Symptom: |
Unable to use a 3215/3270 device as console on an LPAR. |
| Problem: |
The console setup code explicitly tests for VM or P/390 before
it accepts a 3215 or 3270 console device. |
| Solution: |
Remove machine type restrictions from conmode_setup. |
| Description: |
Dasd driver. |
| Symptom: |
Stress test with device attach/detach hangs the system. |
| Problem: |
Concurrent changes to the states of dasd devices lead to
inconsistencies. |
| Solution: |
Add a lock that prevents concurrent changes of device
state. |
| Description: |
Read-only status of dasd devices. |
| Symptom: |
/proc/dasd/devices indicated reported read-only/read-write
status for device that have been modified with the BLKROSET i/o
control. |
| Problem: |
The default BLKROSET i/o control implementation sets the
read-only/read-write bit in the block device layer but the dasd
driver has bits of his own. |
| Solution: |
Implement a private BLKROSET i/o control for dasd that keeps
the bits in the block device layer and in the dasd driver
consistent. |
| Description: |
Dasd device bringup. |
| Symptom: |
The system crashes in dasd device bringup. |
| Problem: |
The bottom half can be called early with a request on the block
device queue. The bottom half requeues the request to the internal
dasd queue although the device is in a state where this may not
happen yet. |
| Solution: |
Plug the device while it is initialized. |
| Description: |
Diag discipline not working. |
| Symptom: |
Dasd devices that are addressed with the diag discipline do not
work. |
| Problem: |
There are two different problems that prevent the diag
discipline from working. 1) pfault and dasd diag use the same
external interrupt number. If pfault is active the diag discipline
never gets interrupts. 2) diag devices only get promoted to state
ready but not to state online. |
| Solution: |
Fix the two problems: 1) deliver external interrupts to all
interrupt handlers with matching external interrupt number and let
the interrupt handler filter out "their" requests. 2) do not return
from dasd_set_device_level with -EAGAIN for diag devices. |
| Description: |
31 bit emulation. |
| Symptom: |
31 bit programs running in the 31 bit emulation under 64 bit
linux do not work correctly. |
| Problem: |
SVC emulation is incorrect in various aspects. 1) the 31 bit
personality is missing, 2) emulation of sys_stime and sys_sysctl
can fail because of incorrect 31/64 bit argument conversion, 3)
emulation of MSGSND/MSGRCV ipc system call returned different
results in error cases, 4) emulation of sys_shmctl uses an
incorrect layout for IPC_64 type shared memory, 5) missing pointer
conversion in sys_fcntl emulation and 6) emulation of old_getrlimit
is incorrect. |
| Solution: |
Add 31 bit personality and correct emulation of svcs. |
| Description: |
Kernel compilation with gcc 3.1. |
| Symptom: |
Kernel compilation with gcc version 3.1 fails. |
| Problem: |
Some kernel code that used to work with gcc 2.95.3 is rejected
by gcc 3.1. |
| Solution: |
Fix the code so that gcc 3.1 accepts it. |
| Description: |
Machine check enabling. |
| Symptom: |
No or late machine check handling. |
| Problem: |
The bit for enabling machine checks in the PSW is not set while
a processor sleeps in cpu_idle and is not set at all for 64
bit. |
| Solution: |
Set the machine check bit in the relevant PSW masks. |
| Description: |
Channel device layer. |
| Symptom: |
None. |
| Problem: |
It is not possible to specify multiple parameters with a single
channel device configuration string. |
| Solution: |
Allow multiple add_parms in the channel device configuration
strings. |
| Description: |
iucv inoperational after reboot. |
| Symptom: |
The iucv interface does not work after a reboot. |
| Problem: |
The shutdown of the iucv interface needs to be done on the same
cpu that did the initialization. |
| Solution: |
Remember which cpu did the initialization and call it to do the
shutdown. |
| Description: |
Reboot failures. |
| Symptom: |
Reboot either loops or end with disabled wait. |
| Problem: |
Two problems. 1) the start subchannel on the reipl ccw can fail
and 2) a cpu is deactivated but still holds a lock that is needed
by the reipl function. |
| Solution: |
Try to start the reipl ccw multiple times and force all cpus
into a state where all locks that the reipl functions needs are
free. |
| Description: |
Common i/o layer. |
| Symptom: |
Device inaccessible after chpid offline/online. |
| Problem: |
Calculation of path group id depends on cpu id. |
| Solution: |
Introduce a global path group id that is used as default for
set path group id. |
| Description: |
Common i/o layer. |
| Symptom: |
Possible kernel oops writing to /proc/cio_ignore. |
| Problem: |
The input string to /proc/cio_ignore is copied to a buffer that
is one byte short. |
| Solution: |
Fix the allocation for the buffer. |
| Description: |
Backtrace over signal frames. |
| Symptom: |
catchsegv can crash if the fault happens in a signal
handler. |
| Problem: |
The backchain in the signal frame is not setup. |
| Solution: |
Set the backchain in the signal frame to point to the
interrupted stack frame. |
| Description: |
3270 device numbers. |
| Symptom: |
The devices file system entries for a 3270 device with a 4
digit device number are incorrect. |
| Problem: |
The output of 3270 device numbers is restricted to 3
digits. |
| Solution: |
Allow 4 digits in the print statements of 3270 device
numbers. |
| Description: |
Type conversion in __put_user/__get_user. |
| Symptom: |
System calls fail although the input is correct. |
| Problem: |
__put_user/__get_user are not doing proper type conversion. If
the user space pointer does not point to the same type as the
variable given in the argument to __put_user/__get_user this leads
to problems. This is especially true for the emulation of 31 bit
system calls on 64 bit linux. |
| Solution: |
Do proper type conversion like it is done in
put_user/get_user. |
Everybody should apply this patch.
These changes do not affect the OCO-modules.
To create the complete linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
linux-2.4.7-timer-4.tar.gz
MD5
recommended (2002-04-15) (superseded)
Release notes: (2002-04-15:
adaption to above 2002-04-15 kernel-patches)
On demand timer patch:
Category operating system. Contains a patch for the linux kernel
2.4.7 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_HZ_TIMER that
lets you choose between the old and the new behavior. Note that
you'll need different qdio, qeth, and z90crypt modules if you use
the no hz timer option.
To create the complete linux
kernel sources, the following patches need to be applied in
sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-s390-7.diff (IBM)
+ linux-2.4.7-timer-4.diff (IBM)
|
linux-2.4.17-order2-1.tar.gz
MD5
recommended (2002-03-18) (superseded)
This recommended patch supersedes the recommended 2.4.17 "order
2 allocation relief" patch of 2002-02-05.
| Description: |
Order 2 allocation relief. (Applies to 64-bit,
only) |
| Symptom: |
Under stress and after long uptimes of a 64 bit system the
error message "__alloc_pages: 2-order allocation failed." appears
and either the fork of a new process fails or an active process
dies. |
| Problem: |
The order 2 allocation problem is based in the size of the
region and segment tables as defined by the zSeries architecture. A
full region or segment table in 64 bit mode takes 16 KB of
contiguous real memory. The page allocation routines do not
guarantee that a higher order allocation will succeed due to memory
fragmentation. |
| Solution: |
The order 2 allocation fix is supposed to reduce the number of
order 2 allocations for the region and segment tables to a minimum.
To do so it uses a feature of the architecture that allows to
create incomplete region and segment tables. In almost all cases a
process does not need full region or segment tables. If a full
region or segment table is needed it is reallocated to the full
size. |
Important notices:
- This patch is very S/390 specific, but doesn't break other
architectures.
- This patch does only work for a 64-bit Linux for zSeries kernel
but can also be applied if you intend to build a 31-bit
kernel.
- This patch is now compatible with the "On-demand timer
patch". You can now apply both patches to the same kernel.
- Earlier versions of this patch required the use of special OCO
modules. This is no longer the case with this patch: the regular
OCO modules (for standard 100 Hz timer) can be used.
To create the complete linux kernel sources, the following
patches need to be applied in sequence:
linux-2.4.17.tar.gz (www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
+ linux-2.4.17-order2-1.diff (IBM)
|
|
gcc-2.95.3-s390-3.tar.gz
MD5
recommended (2002-03-18)
-
This patch contains the following compiler bug fixes:
| Description: |
Exception handling and variable argument lists. |
| Symptom: |
Application crashes when throwing an exception. |
| Problem: |
In functions using variable argument lists, DWARF-2 information
used by the exception handling unwinding code was incorrectly
generated. This incorrect information could cause the exception
handling runtime library to abort an application that was throwing
an exception through a routine that uses variable arguments. |
| Solution: |
Generate correct DWARF-2 unwind data in functions using a
variable argument list. |
| Description: |
Long long multiplication on 31-bit. |
| Symptom: |
Internal compiler error. |
| Problem: |
In some rare cases, the compiler would abort on certain code
doing multiplication of 64-bit (long long) variables. This was
caused by an S/390 backend instruction pattern containing a subreg
expression that confused the frontend. |
| Solution: |
Rewrite the corresponding insn pattern to avoid the abort. |
| Description: |
64-bit instructions generated on 31-bit. |
| Symptom: |
tmll instructions in 31-bit assembler code. |
| Problem: |
In some rare cases, the compiler would emit instructions of the
tmll family when compiling for the s390 31-bit target architecture,
although these instructions exist only on 64-bit. |
| Solution: |
Properly mark these instructions as 64-bit only. |
| Description: |
Bug in common code (loop optimizer). |
| Symptom: |
Incorrect code is generated. |
| Problem: |
In some very rare cases the strength-reduction pass would
generate incorrect code due to clobbering the condition code by
moving instructions around. |
| Solution: |
This particular sub-part of the strength-reduction pass was
removed (as ineffective) in gcc 3.0 anyway, so we can just
deactivate it for this release. |
Everyone using the compiler should apply this patch.
To create the complete
compiler sources, the following patches need to be applied in
sequence:
gcc-2.95.3.tar.gz (see gcc.gnu.org)
+ gcc-2.95.3-s390.diff (IBM)
+ gcc-2.95.3-s390-1.diff (IBM)
+ gcc-2.95.3-s390-2.diff (IBM)
+ gcc-2.95.3-s390-3.diff (IBM)
|
linux-2.4.7-order2-4.tar.gz
MD5
recommended (2002-03-18)
(superseded)
-
This patch supersedes the recommended 2.4.7 "order 2 allocation
relief" patch of 2002-01-21.
| Description: |
Order 2 allocation relief. (Applies to 64-bit,
only) |
| Symptom: |
Under stress and after long uptimes of a 64 bit system the
error message "__alloc_pages: 2-order allocation failed." appears
and either the fork of a new process fails or an active process
dies. |
| Problem: |
The order 2 allocation problem is based in the size of the
region and segment tables as defined by the zSeries architecture. A
full region or segment table in 64 bit mode takes 16 KB of
contiguous real memory. The page allocation routines do not
guarantee that a higher order allocation will succeed due to memory
fragmentation. |
| Solution: |
The order 2 allocation fix is supposed to reduce the number of
order 2 allocations for the region and segment tables to a minimum.
To do so it uses a feature of the architecture that allows to
create incomplete region and segment tables. In almost all cases a
process does not need full region or segment tables. If a full
region or segment table is needed it is reallocated to the full
size. |
Important notices:
- This patch is very S/390 specific, but doesn't break other
architectures.
- This patch does only work for a 64-bit Linux for zSeries kernel
but can also be applied if you intend to build a 31-bit
kernel.
- This patch is now compatible with the "On-demand timer
patch". You can now apply both patches to the same kernel.
- Earlier versions of this patch required the use of special OCO
modules. This is no longer the case with this patch: the regular
OCO modules (for standard 100 Hz timer) can be used.
To create the complete linux kernel sources, the following
patches need to be applied in sequence:
linux-2.4.7.tar.gz (www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
+ linux-2.4.7-order2-4.diff (IBM)
|
linux-2.4.17-s390-1-lcs.tar.gz
MD5
recommended (2002-03-04)
-
This patch contains the source code for the lcs device
driver.
- The LCS device driver (formerly available as OCO, only) is now
provided in source-code form.
- This version of the LCS-driver contains the source-code for the
2002-02-18 kernel 2.4.17 OCO-modules for 31- and 64-bit.
- The lcs network driver supports OSA-2 Ethernet Token Ring, and
OSA-Express Fast Ethernet in non-QDIO mode.
- Documentation can be found in the Linux for S/390 & zSeries
Device Driver and Installation Commands manuals.
Everybody should apply this patch.
To create the complete linux kernel sources, the following
patches need to be applied in sequence:
linux-2.4.17.tar.gz (www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-s390-1-lcs.diff (IBM)
|
linux-2.4.7-s390-6-lcs.tar.gz
MD5
recommended (2002-03-04)
-
This patch contains the source code for the lcs device
driver.
- The LCS device driver (formerly available as OCO, only) is now
provided in source-code form.
- This version of the LCS-driver contains the source-code for the
2002-01-21 (same as 2001-12-12) kernel 2.4.7 OCO-modules for 31-
and 64-bit.
- The lcs network driver supports OSA-2 Ethernet Token Ring, and
OSA-Express Fast Ethernet in non-QDIO mode.
- Documentation can be found in the Linux for S/390 & zSeries
Device Driver and Installation Commands manuals.
Everybody should apply this patch.
To create the complete linux kernel sources, the following
patches need to be applied in sequence:
linux-2.4.7.tar.gz (www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-s390-6-lcs.diff (IBM)
|
|
Recommended OCO modules 31-bit
The qdio and qeth
31-bit and 64-bit OCO-modules of 2002-03-01 are
replacements for the previously recommended (qdio and qeth)
modules.
HiperSockets support for qdio and qeth
HiperSockets
support for VM-guests is available on z/VM 4.2, only and and
requires the application of the PTFs for the following APARs:
VM62938 and VM63034.
Please check the VM service information for latest available
updates: VM Info-APAR II12444 contains useful information for using
Linux under VM.
OCO-modules qdio
and qeth must be selected correctly for kernels with or without the
"on-demand timer" patch applied.
On-demand timer 31-bit kernels now need:
qdio-2.4.7-s390-8-timer.tar.gz, and
qeth-2.4.7-s390-8-timer.tar.gz.
Standard 100 Hertz timer 31-bit kernels: qdio-2.4.7-s390-8.tar.gz,
and qeth-2.4.7-s390-8.tar.gz.
Recommended OCO modules 64-bit
OCO-modules qdio and qeth must be selected correctly for kernels
with or without the "on-demand timer" patch applied.
Note that the "order 2 allocation relief" no longer requires
special OCOs.
HiperSockets support for qdio and qeth
HiperSockets support for VM-guests is available on z/VM 4.2,
only and and requires the application of the PTFs for the following
APARs: VM62938 and VM63034.
Please check the VM service information for latest available
updates: VM Info-APAR II12444 contains useful information for using
Linux under VM.
On-demand timer 64-bit kernels now need:
qdio-2.4.7-s390x-8-timer.tar.gz, and
qeth-2.4.7-s390x-8-timer.tar.gz
Standard 100 Hertz timer 64-bit kernels now need:
qdio-2.4.7-s390x-8.tar.gz, and qeth-2.4.7-s390x-8.tar.gz
|
binutils-2.11.90.0.27-s390-2.tar.gz
MD5
recommended (2002-02-28)
This patch contains the following binutils bug fixes:
| Description: |
PLT call optimization problem. |
| Symptom: |
64 bit programs crash after a glibc upgrade to 2.2.5. |
| Problem: |
A call via the procedure link table (PLT) to an undefined weak
external references gets optimized to a pc relative call by the
linker. That in turn gets replaced by a call to 0 because the
function is undefined. This turns out to be incorrect as soon as
the weak function is defined. This is the case for the
__register_frame_info symbol that wasn't exported from the glibc
prior to version 2.2.5 but is exported starting with this version.
The call to __register_frame_info is done from crtbeginS.o which is
linked to every 64 bit binary. This means that every single 64 bit
executable contains an incorrect call that lets the program crash
as soon as a glibc is installed that exports the symbol
__register_frame_info. |
| Solution: |
Prevent pc relative optimzation for undefined weak external
references. |
|
Everybody should apply this patch.
Note: You should apply the glibc-2.2.4-s390-3 patch to
your system as well but you need to be careful with it. Please read
undef-weak-bug for details about this problem.
To create the complete binutils sources, the following patches
need to be applied in sequence:
binutils-2.11.90.0.27.tar.gz (see
ftp://www.kernel.org/pub/linux/devel/binutils/)
+ binutils-2.11.90.0.27-s390.diff (IBM)
+ binutils-2.11.90.0.27-s390-1.diff (IBM)
+ binutils-2.11.90.0.27-s390-2.diff (IBM)
-
glibc-2.2.4-s390-3.tar.gz
MD5
recommended (2002-02-28)
This patch contains the following glibc bug fixes:
| Description: |
C++ exception handling on 64 bit doesn't work correctly. |
| Symptom: |
C++ program crash or misbehave throwing exceptions. |
| Problem: |
The versions for the seven symbols __register_frame,
__register_frame_table, __deregister_frame, __register_frame_info,
__deregister_frame_info, __frame_state_for and
__register_frame_info_table concerning exception handling are
missing for 64 bit. |
| Solution: |
Add versions for the seven symbols for 64 bit. |
|
Everybody should apply this patch.
Note: You need to be careful upgrading your system. This
patch without the binutils-2.11.90.0.27-s390-2 patch and a
recompile of all executables will break your system. Please read
undef-weak-bug.txt for details about this problem.
To create the complete glibc sources, the following patches need
to be applied in sequence:
glibc-2.2.4.tar.gz (see www.gnu.org/software/libc)
+ glibc-linuxthreads-2.2.4.tar.gz (see
www.gnu.org/software/libc)
+ glibc-2.2.4-s390.diff (IBM)
+ glibc-2.2.4-s390-1.diff (IBM)
+ glibc-2.2.4-s390-2.diff (IBM)
+ glibc-2.2.4-s390-3.diff (IBM)
|
|
glibc-2.2.4-s390-2.tar.gz
MD5
recommended (2002-02-27)
This patch contains the following glibc bug fixes:
| Description: |
Pthread race conditions. |
| Symptom: |
Hanging/crashing threads. |
| Problem: |
The MEMORY_BARRIER definition is missing. This potentially
creates race conditions because the compiler may schedule
instructions past synchronisation points. |
| Solution: |
Define MEMORY_BARRIER. |
|
| Description: |
Profile counting on 31 bit does not work. |
| Symptom: |
The profile counts for programs compiled with -g are zero. |
| Problem: |
The high order bit is not removed from the profile address in
profil_counter. |
| Solution: |
Remove the high order bit for 31 bit addresses. |
|
| Description: |
libSegFault does not work. |
| Symptom: |
catchsegv crashes. |
| Problem: |
The second parameter to register_dump in the REGISTER_DUMP
macro is incorrect. |
| Solution: |
Fix register_dump call. |
|
| Description: |
Missing definition in resource.h. |
| Symptom: |
Compile problems with pdksh. |
| Problem: |
The RLIMIT_LOCKS definition is missing in resource.h. |
| Solution: |
Add RLIMIT_LOCKS. |
|
Everybody should apply this patch.
To create the complete glibc sources, the following patches need
to be applied in sequence:
glibc-2.2.4.tar.gz (see www.gnu.org/software/libc)
+ glibc-linuxthreads-2.2.4.tar.gz (see
www.gnu.org/software/libc)
+ glibc-2.2.4-s390.diff (IBM)
+ glibc-2.2.4-s390-1.diff (IBM)
+ glibc-2.2.4-s390-2.diff (IBM)
|
s390-tools-5.tar.gz
MD5
recommended (2002-02-26) (superseded)
This patch contains the following s390-tools bug fix:
| Description: |
dasd tools only working with one DASD API version. |
| Symptom: |
The tools refuse to work with a different DASD API version. A
'API version mismatch' message is written. |
| Problem: |
The tools are checking for the DASD API version and are only
operating with one API version (specified at compile time). |
| Solution: |
All tools are now able to handle the minimum DASD API version
specified at compile time and all above DASD API versions. |
|
Everybody should apply this patch.
To create the complete S/390 tools sources, the following patches
need to be applied in sequence:
s390-tools.tar.gz (IBM)
+ s390-tools-1.diff (IBM)
+ s390-tools-2.diff (IBM)
+ s390-tools-3.diff (IBM)
+ s390-tools-4.diff (IBM)
+ s390-tools-5.diff (IBM)
|
|
Recommended OCO modules 31-bit
The recommended lcs, qdio, qeth 31-bit kernel 2.4.17
OCO-modules of 2002-02-18 are functionally equivalent to the
2002-01-21 recommended kernel 2.4.7 OCO-modules.
On-demand timer 31-bit kernels need:
lcs-2.4.17-s390-1-timer.tar.gz, qdio-2.4.17-s390-1-timer.tar.gz,
and qeth-2.4.17-s390-1-timer.tar.gz.
Standard 100 Hertz timer 31-bit kernels need:
lcs-2.4.17-s390-1.tar.gz, qdio-2.4.17-s390-1.tar.gz, and
qeth-2.4.17-s390-1.tar.gz.
Recommended OCO modules 64-bit
The recommended lcs, qdio, qeth 64-bit kernel 2.4.17
OCO-modules of 2002-02-18 are functionally equivalent to the
2002-01-21 recommended kernel 2.4.7 OCO-modules.
On-demand timer 64-bit kernels need:
lcs-2.4.17-s390x-1-timer.tar.gz, qdio-2.4.17-s390x-1-timer.tar.gz,
and qeth-2.4.17-s390x-1-timer.tar.gz.
Standard 100 Hertz timer 64-bit kernels need:
lcs-2.4.17-s390x-1.tar.gz, qdio-2.4.17-s390x-1.tar.gz, and
qeth-2.4.17-s390x-1.tar.gz.
|
|
The 2002-02-05 set of Linux Kernel version 2.4.17 recommended
patches for Linux for S/390 and Linux for zSeries provides currency
work: The current recommended kernel 2.4.7 code base has been
adapted to kernel 2.4.17. This code has only been tested very
rudimentarily and is provided for interested power users as part of
our currency work.
Please note that the "on-demand-timer" and "order 2 allocation
relief" patches also required adaptions (see below).
Furthermore the 31-bit and 64-bit OCO-modules lcs, qdio, qeth are
provided functionally equivalent to the recommended 2002-01-21
kernel 2.4.7 OCO-modules.
It should be possible to build recommended drivers using:
- kernel, kernel-headers, kerntypes 2.4.17
- gcc 2.95.3
- glibc, glibc-devel 2.2.4
- binutils 2.11.90.0.27
- gdb 5.0 (Note that the 2001-09-11 gdb 5.1 alpha-patch is
recommended)
- modutils 2.4.7 (Note that the 2001-08-20 modutils 2.4.6
alpha-patch is integrated into modutils 2.4.7 and no additional
patch on top is required)
- s390-tools 1.0
- strace 4.2 (2001-01-19 snapshot from Red Hat 7.1)
and the recommended 31-bit and 64-bit OCO-modules lcs, qdio, qeth.
As we are not aware of any Kernel 2.4.17-specific restrictions,
the kernel 2.4.7 Restrictions "August 2001
stream" also apply.
Please see the kernel 2.4 Documentation "August 2001
stream" page for the 31-bit and 64-bit manuals, which may be
helpful.
linux-2.4.17-s390.tar.gz
MD5
recommended (2002-02-05)
Release notes:
This patch contains the current recommended kernel 2.4.7 code
base adapted to kernel 2.4.17.
To create the complete linux kernel sources, the following
patches need to be applied in sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
linux-2.4.17-timer.tar.gz
MD5
recommended On demand timer patch (2002-02-05) (superseded)
Release notes:
On demand timer patch:
Category operating system. Contains a patch for the linux kernel
2.4.17 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_HZ_TIMER that
lets you choose between the old and the new behavior. Note that
you'll need different lcs, qdio, and qeth modules if you use the no
hz timer option.
To create the
complete linux kernel sources, the following patches need to be
applied in sequence:
linux-2.4.17.tar.gz (see www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-timer.diff (IBM)
-
linux-2.4.17-order2.tar.gz
MD5
recommended
Patch for "order 2 allocation relief" (2002-02-05)
(superseded)
This patch is an adaption of the 2002-02-05 kernel 2.4.7 "order
2 allocation relief" patch to kernel 2.4.17.
| Description: |
Order 2 allocation relief. |
| Symptom: |
Under stress and after long uptimes of a 64 bit system the
error message "__alloc_pages: 2-order allocation failed." appears
and either the fork of a new process fails or an active process
dies. |
| Problem: |
The order 2 allocation problem is based in the size of the
region and segment tables as defined by the zSeries architecture. A
full region or segment table in 64 bit mode takes 16 KB of
contiguous real memory. The page allocation routines do not
guarantee that a higher order allocation will succeed due to memory
fragmentation. |
| Solution: |
The order 2 allocation fix is supposed to reduce the number of
order 2 allocations for the region and segment tables to a minimum.
To do so it uses a feature of the architecture that allows to
create incomplete region and segment tables. In almost all cases a
process does not need full region or segment tables. If a full
region or segment table is needed it is reallocated to the full
size. |
Important notices:
- This patch is
very S/390 specific and breaks all other architectures.
- This patch does only work for a 64-bit Linux for zSeries kernel
and should not be applied if you intend to build a 31-bit
kernel.
- This patch is now compatible with the 2002-02-05
"on-demand timer" patch.
To create the complete linux kernel sources, the following
patches need to be applied in sequence:
linux-2.4.17.tar.gz (www.kernel.org)
+ linux-2.4.17-s390.diff (IBM)
+ linux-2.4.17-order2.diff (IBM)
|
|
Recommended OCO modules 31-bit
(superseded)
The recommended lcs, qdio, qeth 31-bit kernel 2.4.17
OCO-modules of 2002-02-05 are functionally equivalent to the
2002-01-21 recommended kernel 2.4.7 OCO-modules.
On-demand timer 31-bit kernels need: lcs-2.4.17-s390-timer.tar.gz,
qdio-2.4.17-s390-timer.tar.gz, and
qeth-2.4.17-s390-timer.tar.gz.
Standard 100 Hertz timer 31-bit kernels need:
lcs-2.4.17-s390.tar.gz, qdio-2.4.17-s390.tar.gz, and
qeth-2.4.17-s390.tar.gz.
Recommended OCO modules 64-bit
(superseded)
The recommended lcs, qdio, qeth 64-bit kernel 2.4.17
OCO-modules of 2002-02-05 are functionally equivalent to the
2002-01-21 recommended kernel 2.4.7 OCO-modules.
On-demand timer 64-bit kernels need: lcs-2.4.17-s390x-timer.tar.gz,
qdio-2.4.17-s390x-timer.tar.gz, and
qeth-2.4.17-s390x-timer.tar.gz.
Standard 100 Hertz timer 64-bit kernels need:
lcs-2.4.17-s390x.tar.gz, qdio-2.4.17-s390x.tar.gz, and
qeth-2.4.17-s390x.tar.gz.
|
linux-2.4.7-s390-5.tar.gz
MD5
recommended (2002-01-21)
This patch contains the following linux kernel bug fixes:
| Description: |
Initial ramdisk problem. |
| Symptom: |
Kernel fails to find a filesystem on an initial ramdisk if the
root filesystem does not live on the ramdisk. |
| Problem: |
The segment descriptor in the init thread points to the user
space instead of pointing to the kernel space. |
| Solution: |
Correct the segment descriptor. |
| Description: |
Signal information incomplete. |
| Symptom: |
The information in the siginfo_t on entry to a signal handler
does not contain all information it should contain. |
| Problem: |
The exception handlers do not pass a siginfo structure to the
do_trap function. Therefore the si_code and the address of the
fault are not passed to the user space signal handler. |
| Solution: |
Create and pass siginfo structures to do_trap for the different
signal handlers. |
| Description: |
31 bit emulation of sys_select. |
| Symptom: |
31 bit programs on 64 bit linux hang. |
| Problem: |
The conversion of the struct timeval in sys32_select is done
incorrectly. This leads to huge timeout values, causing the 31 bit
programs to "hang". |
| Solution: |
Correct the struct timeval conversion. |
| Description: |
31-bit emulation of sys_semctl. |
| Symptom: |
Problems with 31 bit programs on 64-bit Linux. |
| Problem: |
The conversion of struct ipc64_perm was done incorrectly. This
could lead to incorrect permission settings being passed to the
sys_semctl system call. |
| Solution: |
Correct the struct ipc64_perm conversion. |
| Description: |
CMS minidisks on 64-bit. |
| Symptom: |
On 64-bit Linux, CMS minidisks are not detected. |
| Problem: |
The partition detection code contained code that was not
portable to 64-bit. This caused CMS labels to be incorrectly parsed
and therefore CMS minidisks were not detected. |
| Solution: |
Fix partition detection. |
In addition, the patch contains the following feature:
- Add IOCTL
translation support for the crypto driver to the 31-bit emulation
layer. This allows accessing the crypto driver from 31-bit
applications running in a 64-bit system. (See z90crypt 64-bit
OCO-modules.)
Everybody should apply this patch.
To create the complete linux kernel sources, the following
patches need to be applied in sequence:
linux-2.4.7.tar.gz (www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
linux-2.4.7-timer-3.tar.gz
MD5
recommended (2002-01-21) (superseded)
Release notes:
On demand timer patch:
Category operating system. Contains a patch for the linux kernel
2.4.7 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_HZ_TIMER that
lets you choose between the old and the new behavior. Note that
you'll need different lcs, qdio, qeth, and z90crypt modules if you
use the no hz timer option.
Important notice:
In earlier versions of the timer patch, kernels built with the
patch applied but with CONFIG_NO_HZ_TIMER switched off were
still incompatible with the regular OCO modules (and also to
the timer-patch OCO modules). This problem is fixed in this version
of the patch. If CONFIG_NO_HZ_TIMER is switched off, the kernel is
now compatible with the regular OCO modules.
Note that the "order 2 allocation relief" patch for 64 bit is
not compatible with the "on-demand timer" patch.
linux-2.4.7-order2-3.tar.gz
MD5
recommended (2002-01-21) (superseded)
This patch is identical with the
experimental 2.4.7 "order 2 allocation relief" patch from
2001-12-12. It has been moved from the experimental to the
recommended state for 64 bit.
| Description: |
Order 2 allocation relief. (Applies to 64-bit,
only) |
| Symptom: |
Under stress and after long uptimes of a 64 bit system the
error message "__alloc_pages: 2-order allocation failed." appears
and either the fork of a new process fails or an active process
dies. |
| Problem: |
The order 2 allocation problem is based in the size of the
region and segment tables as defined by the zSeries architecture. A
full region or segment table in 64 bit mode takes 16 KB of
contiguous real memory. The page allocation routines do not
guarantee that a higher order allocation will succeed due to memory
fragmentation. |
| Solution: |
The order 2 allocation fix is supposed to reduce the number of
order 2 allocations for the region and segment tables to a minimum.
To do so it uses a feature of the architecture that allows to
create incomplete region and segment tables. In almost all cases a
process does not need full region or segment tables. If a full
region or segment table is needed it is reallocated to the full
size. |
Important notices:
- This patch is very S/390 specific and breaks all other
architectures.
- This patch does only work for a 64-bit Linux for zSeries kernel
and should not be applied if you intend to build a 31-bit
kernel.
- This patch is incompatible with the "On-demand timer
patch". You currently cannot apply both patches to the same
kernel.
- Earlier versions of this patch required the use of special OCO
modules. This is no longer the case with this patch: the regular
OCO modules (for standard 100 Hz timer) can be used.
To create the complete linux kernel sources, the following
patches need to be applied in sequence:
linux-2.4.7.tar.gz (www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
+ linux-2.4.7-s390-5.diff (IBM)
+ linux-2.4.7-order2-3.diff (IBM)
|
|
Recommended OCO modules 31-bit
The lcs, qdio, qeth 31-bit and 64-bit OCO-modules
of 2002-01-21 are replacements for the previously recommended
modules.
HiperSockets support for qdio and qeth
- The support of HiperSockets was tested completely for Linux for
S/390 running under LPAR.
-
HiperSockets support for VM-guests is available on z/VM 4.2,
only, and requires the application of PTFs for APAR VM62938. -
Please check the VM service information for latest available
updates. (VM Info-APAR II12444 contains useful information for
using Linux under VM.)
- The regression tests for Linux for S/390 HiperSockets support
for VM-guests are still in progress.
OCO-modules lcs, qdio,qeth, and z90crypt must be selected correctly
for kernels with or without the 2002-01-21 "on-demand timer" patch
applied.
On-demand timer 31-bit kernels with the 2002-01-21 patches now
need: lcs-2.4.7-s390-6-timer.tar.gz,
qdio-2.4.7-s390-7-timer.tar.gz, qeth-2.4.7-s390-7-timer.tar.gz, and
z90crypt-2.4.7-s390-2-timer.tar.gz.
Standard 100 Hertz timer 31-bit kernels with the 2002-01-21 patches
now need: lcs-2.4.7-s390-6.tar.gz, qdio-2.4.7-s390-7.tar.gz,
qeth-2.4.7-s390-7.tar.gz, and z90crypt-2.4.7-s390-2.tar.gz.
Recommended OCO modules 64-bit
(superseded)
OCO-modules lcs, qdio, qeth, and z90crypt must be selected
correctly for kernels with or without the 2002-01-21 "on-demand
timer" patch applied.
Note that the "order 2 allocation relief" patch is now recommended
and furthermore no longer requires special OCOs.
HiperSockets support for qdio and qeth
- The support of HiperSockets was tested completely for Linux for
zSeries running under LPAR.
- HiperSockets support for VM-guests is available on z/VM 4.2,
only, and requires the application of PTFs for APAR VM62938.
Please check the VM service information for latest available
updates. (VM Info-APAR II12444 contains useful information for
using Linux under VM.)
- The regression tests for Linux for zSeries HiperSockets support
for VM-guests are still in progress.
On-demand timer 64-bit kernels with the 2002-01-21 patches now
need: lcs-2.4.7-s390x-6-timer.tar.gz,
qdio-2.4.7-s390x-7-timer.tar.gz, and
qeth-2.4.7-s390x-7-timer.tar.gz
Standard 100 Hertz timer 64-bit kernels with the 2002-01-21 patches
now need: lcs-2.4.7-s390x-6.tar.gz, qdio-2.4.7-s390x-7.tar.gz, and
qeth-2.4.7-s390x-7.tar.gz
|
s390-tools-4.tar.gz
MD5
recommended (2001-12-12) (superseded)
This patch contains the following s390-tools bug fix:
| Description: |
fdasd: missing 390 data set name for big disks. |
| Symptom: |
One of the 390 data set names, which exists for each partition,
is missing for modell 9 DASDs. |
| Problem: |
The modell 9 DASD needs a special freespace label within the
VTOC. In this case the "last available FMT1 DSCB"-pointer wasn't
set to the right label. |
| Solution: |
This pointer is now set correctly. |
|
Everybody should apply this patch.
To create the complete S/390 tools sources, the following patches
need to be applied in sequence:
s390-tools.tar.gz (IBM)
+ s390-tools-1.diff (IBM)
+ s390-tools-2.diff (IBM)
+ s390-tools-3.diff (IBM)
+ s390-tools-4.diff (IBM)
|
|
Recommended OCO modules 31-bit
(superseded)
The lcs, qdio, qeth 31-bit and 64-bit OCO-modules
of 2001-12-12 are replacements for the previously recommended
modules.
HiperSockets support for qdio and qeth
- The support of HiperSockets was tested for Linux for S/390
running under LPAR only.
- Linux for S/390 HiperSockets support for VM-guests on z/VM 4.2
requires the application of z/VM-PTFs (e.g. APAR VM62938). Please
check the VM service information for latest available updates.
OCO-modules lcs, qdio, and qeth must be selected correctly for
kernels with or without the 2001-11-23 "on-demand timer" patch
applied.
On-demand timer 31-bit kernels with the 2001-11-23 patches now
need: lcs-2.4.7-s390-5-timer.tar.gz,
qdio-2.4.7-s390-6-timer.tar.gz, and
qeth-2.4.7-s390-6-timer.tar.gz.
Standard 100 Hertz timer 31-bit kernels with the 2001-11-23 patches
now need: lcs-2.4.7-s390-5.tar.gz, qdio-2.4.7-s390-6.tar.gz, and
qeth-2.4.7-s390-6.tar.gz.
Recommended OCO modules 64-bit
(superseded)
OCO-modules lcs, qdio, and qeth must be selected correctly for
kernels with or without the 2001-11-23 "on-demand timer" patch
applied.
HiperSockets support for qdio and qeth
- The support of HiperSockets was tested for Linux for zSeries
running under LPAR only.
- Linux for zSeries HiperSockets support for VM-guests on z/VM
4.2 requires the application of z/VM-PTFs (e.g. APAR VM62938).
Please check the VM service information for latest available
updates.
On-demand timer 64-bit kernels with the 2001-11-23 patches now
need: lcs-2.4.7-s390x-5-timer.tar.gz,
qdio-2.4.7-s390x-6-timer.tar.gz, and
qeth-2.4.7-s390x-6-timer.tar.gz
Standard 100 Hertz timer 64-bit kernels with the 2001-11-23 patches
now need: lcs-2.4.7-s390x-5.tar.gz, qdio-2.4.7-s390x-6.tar.gz, and
qeth-2.4.7-s390x-6.tar.gz
|
The 2001-11-23 set of Linux Kernel version 2.4.7 recommended
patches for Linux for S/390 and Linux for zSeries deliver several
fixes and updates.
Furthermore the 31-bit and 64-bit recommended OCO-modules lcs,
qdio, qeth have been updated with bug-fixes.
Together with the 2001-11-09, 2001-10-12 and 2001-09-14 patches
applied on top of the first set (2001-08-20) of kernel 2.4.7
recommended patches, Linux for S/390 31-bit distributions and Linux
for zSeries 64-bit distributions can be built using:
- kernel, kernel-headers, kerntypes 2.4.7
- gcc 2.95.3
- glibc, glibc-devel 2.2.4
- binutils 2.11.90.0.27
- gdb 5.0 (Note that the 2001-09-11 gdb 5.1 alpha-patch is
experimental, not recommended)
- modutils 2.4.7 (Note that the 2001-08-20 modutils 2.4.6
alpha-patch is integrated into modutils 2.4.7 and no additional
patch on top is required)
- s390-tools 1.0
- strace 4.2 (2001-01-19 snapshot from Red Hat 7.1)
and the updated recommended 31-bit and 64-bit OCO-modules lcs,
qdio, qeth.
Please check out the Restrictions "August 2001
stream" page on Kernel 2.4.7.
Please refer to the Experimental "August 2001 stream"
page for an experimental kernel 2.4.7 patch for 64-bit
distributions and the matching 64-bit OCO modules.
Please see the kernel 2.4 Documentation "August 2001
stream" page for the 31-bit and 64-bit manuals.
"On-demand Timer"
linux-2.4.7-s390-4.tar.gz
MD5
recommended (2001-11-23)
Release notes:
This patch contains the following linux kernel bug fixes:
| Description: |
Compilation of sysinfo. |
| Symptom: |
/proc/sysinfo is missing. |
| Problem: |
The file that contains the implementation of the new
/proc/sysinfo entry has not been added to the Makefile. Hence it is
not compiled and /proc/sysinfo is missing in the running
system. |
| Solution: |
Add sysinfo.o to the s390 drivers Makefile. |
| Description: |
Export dasd_device_from_kdev. |
| Symptom: |
No symptom. |
| Problem: |
A dasd module can't use the dasd_device_from_kdev function
because it is inline and the symbol name is not exported. This
function is needed if a dasd module wants to use dynamic i/o
controls. |
| Solution: |
Export symbol dasd_device_from_kdev. |
| Description: |
A kernel built without the proc filesystem panics during
boot. |
| Symptom: |
When CONFIG_PROC_FS is not selected, the kernel will compile
but panic during boot when trying to create a /proc entry in
s390io. |
| Problem: |
The common I/O layer tries to create /proc entries even though
the proc filesystem is disabled. |
| Solution: |
Exclude the proc filesystem interface functions from s390io if
the proc filesystem is switched off. |
| Description: |
Signal problem in the VFS layer. |
| Symptom: |
Endless kernel loop. |
| Problem: |
The signal info codes from the kernel header file siginfo.h
miss some bits that are used internally to control the handling of
the signal. |
| Solution: |
Add the missing bits to the siginfo codes. |
| Description: |
Network throughput problem with high cpu load. |
| Symptom: |
CPU intensive workload slows down network traffic. |
| Problem: |
The wakeup of a process does not cause a preemptive reschedule
of the CPU intensive process due to a comparison problem between
unsigned integers of different size. |
| Solution: |
Fix the comparison so that the preemptive reschedule
works. |
| Description: |
CTC problem on machines with more that 2G memory. |
| Symptom: |
Very slow data flow when using TCP/IP (e.g. ftp
transfers). |
| Problem: |
Usage of IDA lists with CTC did not work, resulting in a lot of
dropped packets due to TCP checksum errors. |
| Solution: |
Using memcpy to low memory transfer buffer instead of IDA
lists. |
Everybody should apply this patch.
To create the complete linux kernel sources, the following
patches need to be applied in sequence:
linux-2.4.7.tar.gz (www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
+ linux-2.4.7-s390-4.diff (IBM)
linux-2.4.7-s390-2-timer.tar.gz
MD5
recommended (2001-11-23) (superseded)
Release notes:
On demand timer patch:
Category operating system. Contains a patch for the linux kernel
2.4.7 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_HZ_TIMER that
lets you choose between the old and the new behavior. Note that
you'll need different lcs, qdio, and qeth modules if you use the no
hz timer option.
|
|
Recommended OCO modules 31-bit
(superseded)
The lcs, qdio, qeth 31-bit and 64-bit OCO-modules
of 2001-11-23 are replacements for the previously recommended
modules.
OCO-modules lcs, qdio, and qeth must be selected correctly for
kernels with or without the 2001-11-23 "on-demand timer" patch
applied.
On-demand timer 31-bit kernels with the 2001-11-23 patches now
need: lcs-2.4.7-s390-4-timer.tar.gz,
qdio-2.4.7-s390-5-timer.tar.gz, and
qeth-2.4.7-s390-5-timer.tar.gz.
Standard 100 Hertz timer 31-bit kernels with the 2001-11-23 patches
now need: lcs-2.4.7-s390-4.tar.gz, qdio-2.4.7-s390-5.tar.gz, and
qeth-2.4.7-s390-5.tar.gz.
Recommended OCO modules 64-bit
(superseded)
OCO-modules lcs, qdio, and qeth must be selected correctly for
kernels with or without the 2001-11-23 "on-demand timer" patch
applied.
On-demand timer 64-bit kernels with the 2001-11-23 patches now
need: lcs-2.4.7-s390x-4-timer.tar.gz,
qdio-2.4.7-s390x-5-timer.tar.gz, and
qeth-2.4.7-s390x-5-timer.tar.gz
Standard 100 Hertz timer 64-bit kernels with the 2001-11-23 patches
now need: lcs-2.4.7-s390x-4.tar.gz, qdio-2.4.7-s390x-5.tar.gz, and
qeth-2.4.7-s390x-5.tar.gz
|
The 2001-11-09 set of Linux Kernel version 2.4.7 and s390 tools
recommended patches for Linux for S/390 and Linux for zSeries
deliver several fixes and updates.
Furthermore the 31-bit and 64-bit recommended OCO-modules lcs,
qdio, qeth have been updated with bug-fixes.
Together with the 2001-10-12 and 2001-09-14 patches applied on
top of the first set (2001-08-20) of kernel 2.4.7 recommended
patches, Linux for S/390 31-bit distributions and Linux for zSeries
64-bit distributions can be built using:
- kernel, kernel-headers, kerntypes 2.4.7
- gcc 2.95.3
- glibc, glibc-devel 2.2.4
- binutils 2.11.90.0.27
- gdb 5.0 (Note that the 2001-09-11 gdb 5.1 alpha-patch is
experimental, not recommended)
- modutils 2.4.7 (Note that the 2001-08-20 modutils 2.4.6
alpha-patch is integrated into modutils 2.4.7 and no additional
patch on top is required)
- s390-tools 1.0
- strace 4.2 (2001-01-19 snapshot from Red Hat 7.1)
and the updated recommended 31-bit and 64-bit OCO-modules lcs,
qdio, qeth.
Please check out the Restrictions "August 2001
stream" page on Kernel 2.4.7.
Please refer to the Experimental "August 2001 stream"
page for an experimental kernel 2.4.7 patch for 64-bit
distributions and the matching 64-bit OCO modules. An updated
z90crypt 31-bit OCO module is also provided there.
Please see the kernel 2.4 Documentation "August 2001
stream" page for the 31-bit and 64-bit manuals.
"On-demand Timer"
- The 2001-10-12 kernel 2.4.7 patches included a replacement for
the "on-demand timer" (introduced 2001-09-14).
Important notice: The OCO-modules lcs, qdio, and qeth
must be selected correctly for kernels with or without the
"on-demand timer" patch applied:
- On-demand timer kernels now need:
lcs-2.4.7-s390[x]-3-timer.tar.gz,
qdio-2.4.7-s390[x]-4-timer.tar.gz, and
qeth-2.4.7-s390[x]-4-timer.tar.gz
- Standard 100 Hertz timer kernels now need:
lcs-2.4.7-s390[x]-3.tar.gz, qdio-2.4.7-s390[x]-4.tar.gz, and
qeth-2.4.7-s390[x]-4.tar.gz
- An updated z90crypt 31-bit OCO-module is also provided.
-
linux-2.4.7-s390-3.tar.gz
MD5
recommended (2001-11-09)
Release notes:
This patch contains the following linux kernel bug fixes:
| Description: |
Reset of files in VM reader. |
| Symptom: |
The files in the VM reader running on a P/390 are not
resetted. |
| Problem: |
The test that used to decide if a reset should be done is wrong
if the system is running on a P/390. |
| Solution: |
Make the decision if the reset should be done only dependent on
the VM flag in the cpu id. |
| Description: |
PFAULT on 31 bit. |
| Symptom: |
No efficiency improvement with pfault on 31 bit. |
| Problem: |
The check in the pfault interrupt handler for the pfault
subcode is wrong. The interrupt handler is left without doing
anything. The system doesn't crash but you won't see a benefit
either. |
| Solution: |
Fix the subcode check. |
| Description: |
llseek in the 31 bit emulation. |
| Symptom: |
31 bit programs running under the 31 bit emulation layer on a
64 bit system create huge files with size > 4GB. |
| Problem: |
The llseek system call in the 31 bit emulation layer is
converted incorrectly. |
| Solution: |
Fix the conversion routine for llseek. |
| Description: |
Locking problem in dasd driver. |
| Symptom: |
Kernel crash after formatting a device. |
| Problem: |
The function that cancels the format ccw in case of an error
doesn't lock the dasd device structure properly. This is a race
condition against the end of the i/o and can crash the system due
to null pointer access. |
| Solution: |
Properly lock the dasd device structures. |
| Description: |
Block padding for the short blocks of the common disk
layout. |
| Symptom: |
The first few blocks of a dasd formatted for the common disk
layout contain random data in the rear end of the block. |
| Problem: |
The first few blocks of a dasd formatted with the common disk
layout are physically shorter then the block size of the device.
The linux buffer for these blocks contain random data in the suffix
of the blocks that is not backed by phsical data. |
| Solution: |
Pad the suffix of the short blocks with byte pattern 0xe5. |
| Description: |
Channel device layer configuration. |
| Symptom: |
Additional parameters after an "add_parms" statement are not
recognized. |
| Problem: |
After parsing the add_parms statement the input pointer is not
moved to the next string. |
| Solution: |
Move the next string after parsing the add_parms
statement. |
| Description: |
I/O layer doesn't deliver interrupts. |
| Symptom: |
The device interrupt handler of a terminated ccw is not always
called. For example the halt of the long running rewind of a tape
device does not trigger the tape device interrupt handler. |
| Problem: |
The expression if a device has ending status does not cover all
cases. |
| Solution: |
Correctly check for ending status. |
| Description: |
System information. |
| Symptom: |
None. |
| Problem: |
A means to get information about the system configuration in
the user space is needed. The store system information instruction
is priviledged and can not be used from user space. |
| Solution: |
Provide a proc file system entry that contains the data that
can be extracted from the store system information
instruction. |
| Description: |
Busy loop in the partition detection |
| Symptom: |
The system hangs in the partition detection. |
| Problem: |
The skip of format 4/5/7 labels doesn't increase the number of
the label block. This leads to a busy loop that reads the same
block over and over again. |
| Solution: |
Increase the block number for format 4/5/7 label blocks. |
Everybody should apply this patch.
To create the complete linux kernel sources, the following
patches need to be applied in sequence:
linux-2.4.7.tar.gz (www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
+ linux-2.4.7-s390-3.diff (IBM)
|
s390-tools-3.tar.gz
MD5
recommended(2001-11-09) (superseded)
This patch contains the new s390-tool dasdview, which could be
used to display DASD and VTOC information or to dump the content of
a DASD to the console. For more information see the dasdview man
page.
In addition are there the following bug fixes:
| Description: |
fdasd: new menu entry. |
| Symptom: |
There was no way to see the z/OS data set names. |
| Problem: |
The mapping between partition number in the device node and the
z/OS data set name could change in case you do some strange
re-partitioning. There was no way to display this mapping. |
| Solution: |
New fdasd menu entry 's' to show the mapping between partition
number in the device node and the z/OS data set name. |
|
| Description: |
fdasd: partition number in z/OS data set name. |
| Symptom: |
Confusing mapping between partition number in the device node
and the z/OS data set name. |
| Problem: |
The partition number in the device node starts counting with
"1"and the partition number in the z/OS data set name started
counting with "0". |
| Solution: |
Both start counting from "1" and older partitions will be
converted automatically to the new numbering schema. |
|
| Description: |
dasdfmt: cylinderwise formatting. |
| Symptom: |
dasdfmt formats the disk cylinderwise if you are using the '-p'
or '-m' option, otherwise the disk will be formatted as one big
part. |
| Problem: |
none. |
| Solution: |
We will format cylinderwise in every case now. |
|
| Description: |
dasdfmt: signal handler. |
| Symptom: |
dasdfmt leaves the disk in the accepted state in case of an
abruption (e.g. Ctrl+C). |
| Problem: |
The disk is unusable until you reset it. |
| Solution: |
A signal handler sets the DASD back to the 'not formatted'
state in case of a abruption. |
Everybody should apply this patch.
To create the complete S/390 tools sources, the following patches
need to be applied in sequence:
s390-tools.tar.gz (IBM)
+ s390-tools-1.diff (IBM)
+ s390-tools-2.diff (IBM)
+ s390-tools-3.diff (IBM)
|
|
Recommended OCO modules 31-bit
(superseded)
The lcs, qdio, qeth 31-bit and 64-bit OCO-modules
of 2001-11-09 are replacements for the previously recommended
modules.
OCO-modules lcs, qdio, and qeth must be selected correctly for
kernels with or without the 2001-10-12 "on-demand timer" patch
applied.
On-demand timer 31-bit kernels with the 2001-11-09 patches now
need: lcs-2.4.7-s390-3-timer.tar.gz,
qdio-2.4.7-s390-4-timer.tar.gz, and
qeth-2.4.7-s390-4-timer.tar.gz.
Standard 100 Hertz timer 31-bit kernels with the 2001-11-09 patches
now need: lcs-2.4.7-s390-3.tar.gz, qdio-2.4.7-s390-4.tar.gz, and
qeth-2.4.7-s390-4.tar.gz.
Recommended OCO modules 64-bit
(superseded)
OCO-modules lcs, qdio, and qeth must be selected correctly for
kernels with or without the 2001-10-12 "on-demand timer" patch
applied.
On-demand timer 64-bit kernels with the 2001-11-09 patches now
need: lcs-2.4.7-s390x-3-timer.tar.gz,
qdio-2.4.7-s390x-4-timer.tar.gz, and
qeth-2.4.7-s390x-4-timer.tar.gz
Standard 100 Hertz timer 64-bit kernels with the 2001-11-09 patches
now need: lcs-2.4.7-s390x-3.tar.gz, qdio-2.4.7-s390x-4.tar.gz, and
qeth-2.4.7-s390x-4.tar.gz
|
linux-2.4.7-s390-2.tar.gz
MD5
This patch contains the following linux kernel bug fixes:
| Description: |
Pagex interrupts can overwrite program check information. |
| Symptom: |
User program crashes. |
| Problem: |
The pagex interrupt could overwrite the information in the
lowcore about the last program check because interrupts are
reenabled to early. The program check is then handled incorrectly
after the pagex interrupt returns. |
| Solution: |
Do not reenable the interrupts in the first level program check
handler. Let the second level program handler decide when the
interrupts should be reenabled. |
| Description: |
Inline assembly contraints too weak for latest compiler. |
| Symptom: |
Assembler error messages compiling the kernel. |
| Problem: |
The contraints of some inline assemblies allow a full memory
reference with offset, base and index register for instructions
that only accept memory references with offset and base
register. |
| Solution: |
Reload the full memory reference to a register or use the "a"
constraint in the inline assemblies. |
| Description: |
bottom half scheduling. |
| Symptom: |
Idle system load one instead of zero. |
| Problem: |
The timer interrupt handler dosn't call irq_enter/irq_exit
early enough causing the softirq daemon to be scheduled. The now
runnable softirq daemon increases the load and is scheduled
normally just to return immediatly. This only causes a slight
increase in the cpu usage the load is not really one. |
| Solution: |
Call irq_enter just after entering the timer interrupt handler
and irq_exit just before leaving. |
| Description: |
Missing symbol strstr. |
| Symptom: |
The load of a module fails because of undefined symbol
strstr. |
| Problem: |
The strstr function is not exported by the kernel. |
| Solution: |
Export the strstr function. |
| Description: |
Dasd performance problem. |
| Symptom: |
The dasd driver uses too much cpu. |
| Problem: |
The profiling code to collect the information for
/proc/dasd/statistics takes too much time. |
| Solution: |
Deactivate the dasd profiling. To reenable it the DASD_PROFILE
define needs to be set. |
| Description: |
Proc interface for dynamic addition/removal of dasd
devices. |
| Symptom: |
Dynamic add/remove of dasd devices does not succeed. |
| Problem: |
The /proc/dasd/devices interface doesn't accept strings ending
with a newline. |
| Solution: |
Strip newline from strings written to /proc/dasd/devices. |
| Description: |
Stopping tape driver operations. |
| Symptom: |
Kernel crashes after stopping tape operations. |
| Problem: |
If a tape operations is canceled the tape i/o request is not
stopped but the memory area that is used by the operation is freed.
The reused memory can be clobbered by the still running i/o
request. |
| Solution: |
Wait uninterruptible for the end of tape i/o requests. |
| Description: |
CTC i/o timeout problem. |
| Symptom: |
Kernel message "kernel timer added twice at ...". |
| Problem: |
The i/o timeout for the CTC channels is not deleted in all
cases. |
| Solution: |
Remove pending timer in the channel restart function. |
| Description: |
TCP/IP problems with sockets in TIME_WAIT state. |
| Symptom: |
Kernel crashes under heavy TCP/IP load. |
| Problem: |
There are two problems in the common TCP/IP code with regard to
the handling of sockets in the TIME_WAIT state. The first is a typo
that causes the reference count of the wrong socket to be
decremented and the second it a race condition. Both problems can
lead to clobbered socket memory. |
| Solution: |
Decrement reference count of the correct socket and avoid the
race condition by increasing the reference count. |
Everybody should apply this patch.
To create the
complete linux kernel sources, the following patches need to be
applied in sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
+ linux-2.4.7-s390-2.diff (IBM)
-
linux-2.4.7-s390-timer.tar.gz
MD5
recommended (2001-10-12)
(superseded)
Release notes:
On demand timer patch
Category operating system. Contains a patch for the linux kernel
2.4.7 that will change 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_HZ_TIMER that
lets you choose between the old and the new behavior. Note that
you'll need different lcs and qeth modules if you use the no hz
timer option.
|
binutils-2.11.90.0.27-s390-1.tar.gz
MD5
recommended (2001-10-12)
Release notes:
This patch contains the following binutils bug fix:
| Description: |
Warnings about zero index or base registers misleading. |
| Symptom: |
The assembler issues warnings about zero index or base
registers. |
| Problem: |
Explicitly specified zero index or base registers can indicate
faulty statements because if the register 0 is used as part of an
address 0 is added to the effective address instead of the content
of register 0. Sometimes it is useful to get these warnings but in
other cases there messages can be confusing. |
| Solution: |
Add an option "-mwarn-areg-zero" that enables the warnings
about zero index or base registers. Default is off. |
The patch contains the following additions and changes:
- Testcase library for the GNU assembler.
- Automatic generation of the instruction table from
s390-opc.txt.
Everybody should apply this patch.
To create the complete binutils sources, the following patches
need to be applied in sequence:
binutils-2.11.90.0.27.tar.gz (see
ftp://www.kernel.org/pub/linux/devel/binutils/)
+ binutils-2.11.90.0.27-s390.diff (IBM)
+ binutils-2.11.90.0.27-s390-1.diff (IBM)
gcc-2.95.3-s390-2.tar.gz
MD5
recommended (2001-10-12)
This patch contains the following compiler bug fixes:
| Description: |
Incorrect use of LA (load address) instruction. |
| Symptom: |
LA used to add integers. |
| Problem: |
In some rare cases, the compiler would generate code using the
LA instruction to perform an integer addition. However, the LA
instruction does in fact do only a 31-bit addition, and hence can
only be safely used to compute 31-bit addresses, not arbitrary
32-bit integers. |
| Solution: |
Make sure that LA is never used unless it is known that the
result of LA will be used as an address. |
| Description: |
Bug in compiler common code (regmove). |
| Symptom: |
Incorrect code is generated. |
| Problem: |
In some rare cases, the compiler would generate code that
clobbers incoming function arguments. This was caused by a bug in
the regmove pass, which didn't properly check for that case. |
| Solution: |
Fix regmove. |
| Description: |
Bug in debug information generation. |
| Symptom: |
Unresolved symbols when linking optimized code compiled with
debug information. |
| Problem: |
In some rare cases, when linking code compiled with both high
optimization level and debug information, the debug data could
contain symbol references to symbols that were not actually present
in the code any more, because the optimizer had managed to
completely eliminate them. This would cause unresolved symbol
errors.
The problem would show up only for floating point variables that
are constant throughout a function.
|
| Solution: |
Don't emit debug data for those variables. |
| Description: |
Incorrect profiling code. |
| Symptom: |
Function profiling does not work (31-bit only). |
| Problem: |
The code emitted by the compiler when doing function profiling
(gcc -p) was incorrect. |
| Solution: |
Fix profiling code. |
| Description: |
Inefficient code generation. |
| Symptom: |
Performance regressions compared to gcc 2.95.2. |
| Problem: |
In some cases, performance of code generated with the latest
compiler was worse than performance of code generated with our gcc
2.95.2 based compilers. The reason for this is that the changes
introduced to support better condition code handling, while having
an overall positive effect on performance, could in some cases
result in worse code because other parts of the optimizer were
confused by the now more complex RTL code. In particular, this
affected the instruction scheduler and the use of base + index
register addressing modes. |
| Solution: |
Improve performance in those cases by:
- making better use of base + index addressing.
- improving the scheduler machine description.
- using the Haifa scheduler by default.
|
As it is not
easily predictable which source code triggers the code generation
bugs fixed here, everyone using the compiler should apply this
patch.
To create the
complete compiler sources, the following patches need to be applied
in sequence:
gcc-2.95.3.tar.gz (see gcc.gnu.org)
+ gcc-2.95.3-s390.diff (IBM)
+ gcc-2.95.3-s390-1.diff (IBM)
+ gcc-2.95.3-s390-2.diff (IBM)
glibc-2.2.4-s390-1.tar.gz
MD5
recommended (2001-10-12)
This patch contains the following glibc bug fixes:
| Description: |
Warnings about zero index or base registers misleading. |
| Symptom: |
Endless loop or crashes in user programs that use string
streams. |
| Problem: |
Using sputback on a strstreambuf object and subsequently
deleting it without reading the characters back would cause an
invalid memory area to be freed. That can lead to crashed or
endless loops. |
| Solution: |
Switch back to correct memory area in destructor function for
the strstreambuf object. |
| Description: |
64 bit pthread long jump function broken. |
| Symptom: |
pthread cleanup function not called on cancel. |
| Problem: |
The unwinding of the stack to a previous location in the
pthread long jump function fails because of an incorrect address
comparison. |
| Solution: |
Fix address comparison. |
Everybody should apply this patch.
To create the
complete glibc sources, the following patches need to be applied in
sequence:
glibc-2.2.4.tar.gz (see www.gnu.org/software/libc)
+ glibc-linuxthreads-2.2.4.tar.gz (see
www.gnu.org/software/libc)
+ glibc-2.2.4-s390.diff (IBM)
|
s390-tools-2.tar.gz
MD5
recommended (2001-10-12) (superseded)
This patch contains the following s390-tools bug fixes:
| Description: |
s390-tools default install location. |
| Symptom: |
The s390-tools binaries were installed into /bin. |
| Problem: |
As system administration tools, the default install location
for the s390-tools binaries should be /sbin, not /bin. |
| Solution: |
Change default install location to /sbin. |
| Description: |
fdasd creates invalid partitions. |
| Symptom: |
Error message "BUG: overlapping free space extents in FMT5
DSCB!" |
| Problem: |
fdasd miscalculated the partition borders if the option -c is
used. |
| Solution: |
Correct calculation. |
Everybody should apply this patch.
To create the
complete S/390 tools sources, the following patches need to be
applied in sequence:
s390-tools.tar.gz (IBM)
+ s390-tools-1.diff (IBM)
+ s390-tools-2.diff (IBM)
Note:
There is a new lkcdutils version (4.0) which contains the dump
analysis tool "lcrash" with Linux for zSeries support (64-bit).
With this version of lcrash, it is possible to analyze 64-bit Linux
for zSeries system memory dumps. You can download it at:
http://lkcd.sourceforge.net/download/4.0/lkcdutils
|
gdb-5.0-s390-2.tar.gz
MD5
recommended (2001-10-12)
This patch contains the following gdb bug fixes:
| Description: |
Incorrect stack frame analysis. |
| Symptom: |
gdb doesn't show the (full) stack backtrace. |
| Problem: |
In some cases, the stack frame analysis would get confused,
causing gdb to not show the full stack backtrace.
The problem was especially noticable on 64-bit, and when
backtracing out of a signal handler or glibc system call.
|
| Solution: |
Improved stack frame analysis. |
You should apply this patch if you are experiencing problems
with stack backtraces (for 64-bit support you should apply the
patch in any case).
To create the
complete gdb sources, the following patches need to be applied in
sequence:
gdb-5.0.tar.gz (see sourceware.cygnus.com/gdb)
+ gdb-5.0-s390.diff (IBM)
+ gdb-5.0-s390-1.diff (IBM)
+ gdb-5.0-s390-2.diff (IBM)
strace-4.2.20010119-s390-1.tar.gz
MD5
recommended (2001-10-12)
This patch contains the following strace bug fix:
| Description: |
Follow-fork failed on 64-bit. |
| Symptom: |
strace -f does not work on 64-bit. |
| Problem: |
The follow-fork mechanism inserts an instruction into the
target process. This was not correctly adapted to 64-bit. |
| Solution: |
Fixed incorrect instruction. |
You should apply
this patch if you want to use strace on the 64-bit zSeries
architecture.
To create the
complete strace sources, the following patches need to be applied
in sequence:
strace-4.2.20010119.tar.gz (RedHat 7.1)
+ strace-4.2.20010119-s390.diff (IBM)
+ strace-4.2.20010119-s390-1.diff (IBM)
|
|
Recommended OCO modules (31-bit) - qdio and qeth device
drivers (superseded)
The following network device drivers are compatible with the
Linux kernel version 2.4.7 as of 2001-09-14 and are object code
only.
HiperSockets support for qdio and qeth
The qdio and qeth OCO modules based on kernel level 2.4.7 now
support HiperSockets as well as OSA-Express QDIO cards. The support
of HiperSockets was tested for Linux for S/390 running under LPAR
only.
In the Documentation "August 2001
stream" section you can find the Linux for S/390 Device Drivers
and Installation Commands manual and the new HiperSockets Device
Driver manual, which describe the use of these device drivers.
Configuration considerations:
Note: If you are using the linux-2.4.7-timer.diff and have
the CONFIG_NO_HZ_TIMER option switched on, you will have to use the
lcs or qeth module with the timer option (e.g.
lcs-2.4.7-s390-timer.o instead of lcs-2.4.7-s390-1.o)
Restrictions for QDIO base support and OSA-Express Driver:
- Multicasting has to be switched on in the kernel.
- The OSA Express Driver needs QDIO base support.
- Starting with microcode level 0146, OSA-Express QDIO require a
portname to be set in the device driver. This portname is specified
using "add_parms,0x10,portname:FOOBAR" (more details in the chandev
man page).
- Currently, OSA-Express QDIO and HiperSockets do not provide
broadcast functionality.
Broadcast functionality is only available on OSA-2 hardware.
LCS driver
The LCS driver remains unchanged since 2001-09-14.
Experimental OCO modules (64-bit) - qdio and qeth device
drivers (superseded)
The following experimental 64-bit device drivers are compatible
with Linux kernel version 2.4.7 as of 2001-09-14 and are object
code only.
The qdio and qeth OCO modules now also support HiperSockets for
Linux for S/390 running under LPAR.
For configuration considerations refer to the corresponding
31-bit OCO modules as of 2001-09-28.
Note: If you are using the linux-2.4.7-timer.diff and
have the CONFIG_NO_HZ_TIMER option switched on, you will have to
use the modules with timer (e.g. qeth-2.4.7-s390x-2-timer.o instead
of qeth-2.4.7-s390x-2.o).
Experimental OCO module (31-bit) - z90crypt device driver
(superseded)
The z90crypt device driver provides an I/O-like interface to any
PCI Cryptographic Coprocessors (PCICC) attached to an S/390. The
only cryptographic function currently supported is RSA PKCS private
key decrypt.
Installation and usage are described in the included README
file. Note that unless your system has at least one PCICC, this
driver does not work.
|
linux-2.4.7-s390-1.tar.gz
MD5
recommended
Release notes:
This patch contains the following linux kernel bug fixes:
| Description: |
IUCV driver restrictions. |
| Symptom: |
Only 20 IUCV connections can be defined. |
| Problem: |
Static netdevice array only has room for 20 connections. |
| Solution: |
Complete rework of the IUCV driver. Now it uses the same state
machine approach like the CTC driver and dynamically allocates all
structures. |
| Description: |
Asynchronous interrupt kernel stack. |
| Symptom: |
Kernel crashes under heavy load. |
| Problem: |
With the new softirq scheme the kernel stack usage has
increased significantly. In the worst case the kernel stack
contains the stack frames for a system call, a program check, a
softirq and a hard irq. If the kernel stack overflows the task
structure is clobbered and this normally ends in a kernel
crash. |
| Solution: |
To reduce the kernel stack usage a second stack was introduced.
This stack contains the stack frames of asynchronous interrupts and
the stack frames used by execution of the softirq functions. |
| Description: |
Memory detection routine. |
| Symptom: |
Processes get killed with addressing exceptions. |
| Problem: |
In the boot process the full range of addresses between the end
of the kernel and the end of storage is added and later on unusable
areas are recognized. The removal of these areas doesn't work and
the areas are accessed as normal memory. |
| Solution: |
Create a list of usable memory blocks early in the boot process
and do not add the unusable memory in the first place. |
| Description: |
SMP inter-processor communication. |
| Symptom: |
Kernel crashes. |
| Problem: |
The next pointer in the list of functions to be called on a
processor might get corrupted if the storage of a list element is
reused to early. |
| Solution: |
Complete rework of smp_call_function to allow only for a single
outstanding function call and add a lock to protect against
concurrent uses. |
| Description: |
Internal timestamps inexact. |
| Symptom: |
Newer version of ping warn about "time of day goes back". |
| Problem: |
The timestamps used in the socket buffers are created by a call
over the function pointer do_get_fast_time. By default this pointer
refers to a functions that just copies the content of xtime without
adjusting it with the use of the hardware clock. |
| Solution: |
Set the pointer do_get_fast_timer to a function that uses the
tod clock to get precise time stamps. |
| Description: |
IEEE emulation for tceb, tcdb and tcxb. |
| Symptom: |
On machines without a real IEEE fpu the emulation warns about
unimplemented instructions like tceb, tcdb, tcxb, diebr and
didbr. |
| Problem: |
The emulation functions for some IEEE instructions have not
been implemented yet. |
| Solution: |
Implement some of the missing IEEE emulation functions. |
| Note: |
The two instructions diebr and didbr are still missing but the
GNU C compiler is not using them right now. |
| Description: |
Locking problems with module insertion/removal. |
| Symptom: |
Process and/or kernel crashes. |
| Problem: |
While modules are inserted/removed processes can crash if they
are revolving page faults at the same time the module_list is
changed. |
| Solution: |
Get the modlist_lock before searching the exception tables for
program checks. |
| Description: |
Dynamic attach/detach of devices. |
| Symptom: |
The dynamic attach of devices sometimes does not work. |
| Problem: |
The enabling of a subchannel with msch can fail for the first
try, the second try works. |
| Solution: |
After the first msch do a stsch, check if the device really is
enabled and retry if not. |
| Description: |
Dasd statistics. |
| Symptom: |
The information in /proc/dasd/statistics is incorrect. |
| Problem: |
The dasd profiling information is collected after the
processing for a request has finished, voiding the profiling
information. |
| Solution: |
Collect the profiling information before the request is
ended. |
| Description: |
Dasd autoprobe. |
| Symptom: |
The removal of the dasd module inserted without parameter
causes an oops. |
| Problem: |
For autoprobe the detected dasds are not enabled and no request
queue is allocated. The disable routine that is called when the
module is removed tries to free the non-existent request
queue. |
| Solution: |
Add a check for this condition. |
| Description: |
Dynamic dasd devices. |
| Symptom: |
Attaching/detaching dasd devices from linux causes kernel
crashes. |
| Problem: |
Deactivation of a dasd device either by a set off or a machine
check was not done correctly. |
| Solution: |
Correct deactivation code. |
| Description: |
Minidisk devices. |
| Symptom: |
Using the minidisk discipline of the dasd driver can cause
kernel crashes. |
| Problem: |
The request queue is changed in the minidisk interrupt function
without holding the device lock. A concurrent access to the request
queue on a different processor can destroy the request list. |
| Solution: |
Acquire the device lock in the interrupt function before
modifying the request queue. |
| Description: |
Debug area flush. |
| Symptom: |
None. |
| Problem: |
To analyse a problem it would be useful if the debug area can
be flushed of old entries. |
| Solution: |
Add an entry in the /proc filesystem that allows to flush the
debug area. |
| Description: |
Pfault handling. |
| Symptom: |
Pfault does not improve the cpu usage of linux if VM starts
paging linux guest memory. |
| Problem: |
A check in the pfault interrupt routine for the pfault subcode
is wrong. The processor resumes execution of the faulting process
immediatly which causes another pfault interrupt until the maximum
number of pfault interrupts is reached. Then the guest page fault
is resolved synchronously. |
| Solution: |
Fix the check. |
| Description: |
Rebooting 64 bit linux under zVM doesn't work. |
| Symptom: |
After all processes have been killed and all but the boot cpu
have been deactivated linux stops without restarting. |
| Problem: |
To reboot linux under VM the diagnose 8 is used to issue an IPL
command to VM. The diagnose 8 is not yet capable of accessing
memory above 2GB. The output buffer for the command was allocated
on the kernel stack that can reside above 2GB if the machine has
enough storage. |
| Solution: |
Use a static output buffer for passing the command and protect
against concurrent uses with a spinlock. |
| Description: |
Socket time stamps in 31 bit programs under 64 bit linux. |
| Symptom: |
31 bit programs get errors calling SIOCGSTAMP ioctl. |
| Problem: |
An ioctl was missing in the 31 bit emulation layer. |
| Solution: |
Add the iotcl. |
| Description: |
stat64 call in 31 bit programs under 64 bit linux. |
| Symptom: |
31 bit programs get wrong data calling stat64. |
| Problem: |
The 31 bit emulation of stat64 used an incorrect stat64
structure layout. |
| Solution: |
Use the correct stat64 structure. |
| Description: |
Signal delivery in 31 bit programs under 64 bit linux. |
| Symptom: |
31 bit programs are dumping their core. |
| Problem: |
The delivery of a signal to a 31 bit program under 64 bit linux
leads to segmentation faults because the signal handler was called
in the 64 bit addressing mode. |
| Solution: |
Set the correct mask for 31 bit addressing in the program
status word when delivering signals. |
| Description: |
CTC driver crashed with more then 2GB. |
| Symptom: |
Kernel crashes if CTC is used with more then 2GB memory. |
| Problem: |
The idal bit in the channel command words is handled
incorrectly. |
| Solution: |
Correctly set the idal bit. |
Everybody should apply this patch.
To create the
complete linux kernel sources, the following patches need to be
applied in sequence:
linux-2.4.7.tar.gz (see www.kernel.org)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-1.diff (IBM)
-
linux-2.4.7-timer.tar.gz
MD5
recommended
(superseded)
Release notes:
On demand timer patch
Category operating system. Contains a patch for the linux kernel
2.4.7 that will change 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_HZ_TIMER that
lets you choose between the old and the new behavior. Note that
you'll need different lcs and qeth modules if you use the no hz
timer option.
|
|
Experimental OCO modules (64-bit)
(superseded)
The following experimental 64-bit device drivers are compatible
with Linux kernel version 2.4.7 as of 2001-09-14 and are object
code only. Documentation on their use can be found in the Documentation section.
Note: If you are using the linux-2.4.7-timer.diff and have
the CONFIG_NO_HZ_TIMER option switched on, you will have to use
lcs-2.4.7-s390x-timer.o module instead of lcs-2.4.7-s390x-1.o and
qeth-2.4.7-s390x-timer.o instead of qeth-2.4.7-s390x-1.o.
Restrictions for QDIO base support and OSA-Express Gigabit
Ethernet Driver:
- Multicasting has to be switched on in the kernel.
- The Gigabit Ethernet Driver needs QDIO base support.
|
binutils-2.11.90.0.27-brxlg.tar.gz
MD5
recommended
Release notes:
This patch contains the following binutils bug fix:
| Description: |
brxlg instruction syntax. |
| Symptom: |
Message "Error: unsupported relocation type" is issued
assembling brxlg. |
| Problem: |
The order of the operands of brxlg was entered incorrectly in
the instruction table of gas. |
| Solution: |
Correct the order of the operands of brxlg. |
Everybody using
the 64 bit compiler dated 2001-08-18 should apply this patch. The
brxlg is rarely used but some very big functions will require
it.
To create the
complete binutils sources, the following patches need to be applied
in sequence:
binutils-2.11.90.0.27.tar.gz (see
ftp://www.kernel.org/pub/linux/devel/binutils/)
+ binutils-2.11.90.0.27-s390.diff (IBM)
+ binutils-2.11.90.0.27-brxlg.diff (IBM)
gcc-2.95.3-s390-1.tar.gz
MD5
recommended
Release notes:
This patch contains the following compiler bug fixes:
| Description: |
Bad prolog code with -mno-backchain option. |
| Symptom: |
Incorrect prolog code is generated. |
| Problem: |
Even with the -mno-backchain option, it is sometimes necessary
to maintain a backchain, e.g. when the stack frame is too large.
The check whether this is the case was wrong. |
| Solution: |
Check for correct condition. |
| Description: |
Bug in compiler common code (cse). |
| Symptom: |
Incorrect code is generated. |
| Problem: |
Due to a bug in the cse phase, under some (rare) circumstances
it was possible that the compiler did not notice that a register
was modified by an instruction, and hence generated invalid code.
This can only occur at high optimization level, and has been
noticed only in a single test case. |
| Solution: |
Fix cse. |
| Description: |
Wrong type definitions in the Fortran frontend for 64-bit. |
| Symptom: |
The Fortran frontend and the Fortran libraries use inconsistent
type definitions. |
| Problem: |
The Fortran support libaries try to find out the sizes of the
various integer data type by evaluating the ..._SIZE_TYPE macros in
header files. This breaks on S/390, as e.g. LONG_SIZE_TYPE is not a
compile-time constant (it depends on whether 32-bit or 64-bit code
is being generated). As a result, when building the Fortran
libraries for 64-bit, type definitions don't match what the Fortran
compiler expects, causing a variety of run-time problems. |
| Solution: |
Change the type definitions to work both on 32-bit and
64-bit. |
| Note: |
This is just a workaround, not a proper fix. It is not
guaranteed to work on non-S/390 architectures. This problem is
fixed correctly in gcc 3.0. |
As it is not
easily predictable which source code triggers the code generation
bugs fixed here, everyone using the compiler should apply this
patch.
To create the
complete compiler sources, the following patches need to be applied
in sequence:
gcc-2.95.3.tar.gz (see gcc.gnu.org)
+ gcc-2.95.3-s390.diff (IBM)
+ gcc-2.95.3-s390-1.diff (IBM)
|
-
s390-tools-1.tar.gz
MD5
recommended
(superseded)
Release notes:
This patch contains the following s390-tools bug
fixes/improvements:
| Description: |
fdasd: VTOC format 5 DSCB support |
| Symptom: |
OS/390 or z/OS cannot read free space information. |
| Problem: |
The FMT5 DSCB written by fdasd was empty. |
| Solution: |
Fdasd writes now a correct FMT5 DSCB containing free space
information. |
| Description: |
fdasd: VTOC format 7 DSCB support |
| Symptom: |
OS/390 or z/OS cannot read free space information on large
disks (>65535 tracks). |
| Problem: |
The FMT7 DSCB was missing. |
| Solution: |
Fdasd writes now in case of a large disk in addition to the
FMT5 a FMT7 DSCB containing free space information. |
| Description: |
fdasd: command line mode for one partition |
| Symptom: |
None. |
| Problem: |
Fdasd goes for every disk in interactive mode. You could not
use scripts for a large amount of disks. |
| Solution: |
The -a option of fdasd creates one big partition using the
whole disk without switching in interactive mode. |
| Description: |
fdasd: command line mode using a config file |
| Symptom: |
None. |
| Problem: |
Creating more than one partition in command line mode (e.g.
using scripts). |
| Solution: |
The -c option of fdasd uses a config file to create several
partitions without switching in interactive mode. |
| Description: |
fdasd: supress messages |
| Symptom: |
None. |
| Problem: |
Non-interactive mode of fdasd (-a or -c) produce to much output
(e.g. using scripts) |
| Solution: |
The -s option of fdasd to suppress messages. |
| Description: |
fdasd: wrong OS/390 data set name |
| Symptom: |
The data set name of the same partition has changed from an
OS/390 point of view. |
| Problem: |
Fdasd has changed the OS/390 data set name for a partition in
case you delete and re-create a partition within the same fdasd
session. |
| Solution: |
The OS/390 data set name does not change anymore. |
| Description: |
fdasd: OS/390 data set name contains blanks |
| Symptom: |
OS/390 is not able to read the data set names created by
fdasd. |
| Problem: |
The volume serial contained in the data set name was filled up
with blanks in case it had less than 6 characters. |
| Solution: |
The OS/390 data set name contains no blanks anymore and can
have different length, depending on the volser length. |
| Description: |
fdasd: read-only disk access |
| Symptom: |
Fdasd seems to write to a read-only disk, but doesn't really
write to that disk. |
| Problem: |
Fdasd doesn't complain about read-only disks, because the
fwrite function calls returned wrong values. |
| Solution: |
fdasd checks now for read-only disks and complains about
them. |
| Description: |
fdasd: wrong free space detection while adding partitions |
| Symptom: |
Fdasd seems not to recognize values for new partitions within
the range of existing partitions, but moves the value right behind
the existing partition without saying anything. |
| Problem: |
There was a message missing. |
| Solution: |
Fdasd gives the user a message, in case it moves input
values. |
| Description: |
fdasd: re-create the whole VTOC |
| Symptom: |
None. |
| Problem: |
How to re-create the whole VTOC without deleting every single
partition or in case the VTOC is corrupted. |
| Solution: |
Fdasd got a new menu entry 'r', which re-creates the VTOC and
deletes all partitions. |
| Description: |
dasdfmt: VTOC format 7 DSCB support |
| Symptom: |
OS/390 was not able to access large disks (>65536 trks)
correctly. |
| Problem: |
There was only a FMT5 DSCB containing free space information
OS/390 needs in case of a large disk a FMT7 DSCB. |
| Solution: |
Dasdfmt writes always a FMT5 DSCB and in case of a large disk
in addition a FMT7 DSCB. |
| Description: |
dasdfmt: formatting with a blksize >4096 or <512 |
| Symptom: |
The Disk remains in 'accepted' state and is no longer
usable. |
| Problem: |
The dasd driver returns error messages and forces dasdfmt to
terminate. |
| Solution: |
Dasdfmt checks now the given blksize and complains in case
blksize > 4096 or blksize < 512. |
| Description: |
dasdfmt: booting from a non-bootable disk |
| Symptom: |
System hangs with a 'program interrupt loop'. |
| Problem: |
Booting from a non-bootable disk results in a program interrupt
loop. |
| Solution: |
Dasdfmt writes now S/390 compatible boot straps while
formatting to get a 'disabled wait' in case of booting from a
non-bootable disk. |
| Description: |
Hashmarks for dasdfmt |
| Symptom: |
None. |
| Problem: |
Format progress is not visible and progress bar option is not
applicable for x3270 emulation. |
| Solution: |
Prints a hashmark every x cylinders, where x is an optional
parameter. |
| Description: |
Progress bar for dasdfmt. |
| Symptom: |
None. |
| Problem: |
Format progress is not visible. |
| Solution: |
Print a progress bar using the -p option. It is updated after
each cylinder. |
| Description: |
Multi volume support for system dump (tape 3480/90) |
| Symptom: |
Dump is incomplete. |
| Problem: |
The dump of a linux image won't fit on a single cartridge if
the memory size of the image is bigger then the capacity of the
cartridge. |
| Solution: |
Allow dumping on several tape cartridges. The zgetdump tool can
copy a multi volume dump to a file system in order to analyze
it. |
| Description: |
Tape device display support. |
| Symptom: |
The end of the system dump process is hard to find out. |
| Problem: |
The dump process stops by loading a disabled wait psw. This
fact is only reflected on the SE where it can easily be
overlooked. |
| Solution: |
Use the tape display to indicate the dump progress. |
| Description: |
64 bit support for dasd and tape dump. |
| Symptom: |
The 31 bit dump records will only copy up to 2GB of system
storage and the registers of all processors. |
| Note: |
To get 64 bit enabled dump tools, the s390-tools packages needs
to be compiled with the 64 bit tool chain. |
Everybody should apply this patch.
To create the
complete s390-tools sources, the following patches need to be
applied in sequence:
s390-tools.tar.gz (IBM)
+ s390-tools-1.diff (IBM)
|
gdb-5.0-s390-1.tar.gz
MD5
recommended
Release notes:
This patch contains the following gdb bug fix:
| Description: |
gdbserver support. |
| Problem: |
Compiling a cross debugger for S/390 is not possible. |
| Solution: |
Provide the support for cross debugging for S/390. |
| Note: |
The gdbserver doesn't support debugging multithreaded
applications on S/390 or any other platform. This patch also fixes
the target signal remapping for all platforms (for example SIGUSR1
used to be deliveres as SIGBUS). |
Everybody who
wants to setup a gdbserver will need this patch.
To create the
complete gdb sources, the following patches need to be applied in
sequence:
gdb-5.0.tar.gz (see sourceware.cygnus.com/gdb)
+ gdb-5.0-s390.diff (IBM)
+ gdb-5.0-s390-1.diff (IBM)
|
- kernel 2.4.7, kernel-headers
Category operating system. Contains the Linux kernel source code as
well as the S/390 specific layer.
The following patch contains bug fixes and new features for the
Linux kernel version 2.4.7. The summary of important changes:
- Device File System is supported for all devices.
- Tape support. The tape device driver is no longer
experimental.
- Dynamic I/O improvements. This includes support for adding and
removing devices that are managed by the channel device layer.
- DASD error recovery. The complete set of error recovery
procedures for ECKD devices is implemented.
- Standard S/390 disk layout. A new DASD disk format is
introduced to Linux for S/390. A disk with the new format can have
up to three partitions and is mountable by any zSeries operating
system. A new formatting tool is used to create the new format (see
s390-tools package).
- The user space tools dasdfmt and silo are removed. The new
package s390-tools contains the replacement programs.
- All recent experimental bug fixes are integrated.
linux-2.4.7-s390.tar.gz
MD5
(2001-08-20)
linux-2.4.7 Kerntypes file
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.7.tar.gz (GPL)
+ linux-2.4.7-s390.diff (IBM)
+ linux-2.4.7-s390-kerntypes.diff (IBM)
linux-2.4.7-s390-kerntypes.tar.gz
MD5
(2001-08-20)
|
|
OCO modules (31-bit): (superseded)
These network device drivers are compatible with the Linux
kernel version 2.4.7 and are object code only. Documentation on
their use can be found in the Linux for S/390 device drivers manual
in the Documentation
section.
Restrictions for QDIO base support and OSA-Express Driver:
- Multicasting has to be switched on in the kernel.
- The OSA Express Driver needs QDIO base support.
experimental OCO modules (64-bit):
(superseded)
The following
experimental 64-bit device drivers are compatible with Linux kernel
version 2.4.7 and are object code only. Documentation on their use
can be found in the Documentation section.
Restrictions for QDIO base support and OSA-Express Gigabit
Ethernet Driver:
- Multicasting has to be switched on in the kernel.
- The Gigabit Ethernet Driver needs QDIO base support.
|
binutils
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.
The following patch contains a fix that adds a missing
instruction to the binutils.
binutils-2.11.90.0.27-s390.tar.gz
MD5
(2001-08-20)
gcc
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. 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.
The following patch adds support for the S/390 and the zSeries
to GNU C version 2.95.3. The S/390 / zSeries backend has been
completely reworked to optimize the generated code in regard to the
condition code handling.
gcc-2.95.3-s390.tar.gz
MD5
(2001-08-20)
glibc, glibc-devel
Category application development tool. These packages contain the
GNU C Runtime library for Linux.
The following patch contains some additional bug fixes that
enables the use of the glibc version 2.2.3 on S/390 and zSeries.
glibc-2.2.4-s390.tar.gz
MD5
(2001-08-20)
|
gdb
Category application development tool. Contains the GNU debugger.
It can be used as an interactive symbolic debugger as well as a
post-mortem debugger.
The following patch adds support for S/390 and zSeries to gdb
version 5.0.
gdb-5.0-s390.tar.gz
MD5
(2001-08-20)
strace
Category application development tool. This application writes a
trace of system calls to the operating system. The following patch
contains the backend for zSeries.
strace-4.2.20010119-s390.tar.gz
MD5
(2001-08-20)
|
|
 |
|
 |
|