2006-04-12 kernel 2.6.5 bug fix patch 34 ("April 2004")

If you download any software from this web site please be aware of the Warranty Disclaimer and Limitation of Liabilities.

linux-2.6.5-s390-34-april2004.tar.gz / MD5 ... accumulated patch, recommended (2006-04-12)

linux-2.6.5-s390-34-april2004-patches.tar.gz / MD5 ... per-problem-patches, recommended (2006-04-12)

These patches contain the following linux kernel bug fixes:

Description:
cio: Setting devices online does not fail as expected.
Symptom:
When setting a device online fails, ccw_device_set_online() returns with 0 nonetheless.
Problem:
Set ret to 0 instead of checking it for 0.
Solution:
Replace (ret = 0) with (ret == 0).
Problem-ID:
22299
Description:
cio: Deadlocks during machine checks.
Symptom:
During path gone machine check handling, deadlocks occur.
Problem:
A spin lock was taken, but interrupts were not disabled.
Solution:
Use spin_lock_irq() instead of spin_lock() during path machine check handling.
Problem-ID:
22300
Description:
dasd: Fixed open_count usage.
Symptom:
It is possible to start second dasdfmt on same device.
Problem:
The open_count is increased for every opener, that includes the blkdev_get in dasd_scan_partitions.
This tampers the open_count in BIODASDINFO.
Solution:
Hide the internal open from user-space.
Problem-ID:
21445
Description:
kernel: iucv message limit for smsg.
Symptom:
Error message in z/VM log: "Error 57 occurred sending memory management notification to user ...".
Problem:
The message limit on the iucv connect call for the smsg module is too low.
Solution:
Increase the smsg message limit to 255.
Problem-ID:
22169
Description:
kernel: spin lock retry performance.
Symptom:
Decreased performance if running with spin_retry != 0.
Problem:
Currently the spin lock code tries up to spin_retry times to grab a lock using the cs instruction. The cs instruction has exclusive access to a memory region and therefore invalidates the appropriate cache line of all other CPUs. If there is contention on a lock this leads to cache line trashing.
Solution:
Check wether a cs instruction is likely to succeed before the instruction gets actually executed.
Problem-ID:
22170
Description:
kernel: strnlen_user() may return wrong values.
Symptom:
strnlen_user() returns n if string is longer than n characters and -EFAULT on exception.
Problem:
strnlen_user() should return n+1 if string is longer than n characters and 0 on exception.
Solution:
Make strnlen_user() return the right values.
Problem-ID:
21974
Description:
kernel: make cmm related proc entries world readable.
Symptom:
Permission denied when trying to read from /proc/sys/vm/cmm_*.
Problem:
The permission bits for the cmm entries in the /proc filesystem are set to 0600.
Solution:
Set the permission bits to 0644.
Problem-ID:
22497
Description:
kernel: Missing error check on signal frame setup.
Symptom:
User space application does not return to kernel after signal handling.
Problem:
The return value of __put_user() which writes the syscall opcode to user space is not checked. Even if this __put_user() fails the user space application will run again instead of sending it a SIGSEGV.
Solution:
Check return value of __put_user().
Problem-ID:
23074
Note:
This patch contains a bug. Please apply patch linux-2.6.5-s390-35 (Problem-ID 23074) which contains a fix.
Description:
net:ctc: The former experimental and untested tty feature of the ctc network driver shows some problems. As this feature is not known to be used it is removed now.
Symptom:
n/a
Problem:
n/a
Solution:
Remove experimental and untested feature.
Problem-ID:
22098
Description:
qeth: qethconf not adding IPv4 addresses.
Symptom:
/var/log/messages "kernel: qeth: Invalid IP address format!"
Problem:
Incorrect syntax checking of IPv4 addresses.
Solution:
Change result checking of sscanf invocation.
Problem-ID:
22637
Description:
qeth: tx_bytes and rx_bytes counter are not set properly.
Symptom:
TX and RX byte counter are wrong when comparing them with VM counter.
Problem:
qeth driver incorrectly counted the qdio header size for each skb.
Solution:
Do not add the qdio header size to TX and RX counter. Just count the payload without any hardware header size.
Problem-ID:
22956
Description:
qeth: setting of attribute "route6" to "primary_router" works only once.
Symptom:
Set route6 attribute to primary_router and then back to no_router. When trying to set primary_router again, qeth reports a failure message in dmesg and does not set route6 to primary_router.
Problem:
When setting route6 attribute back to no_router, qeth does not issue an IP ASSIST command to reset router value to no_router. Once primary_router is set, device stays in this mode.
Solution:
Issue an IP ASSIST command when no_router is set in route6. Device will be reset and thus will not longer run as a primary router.
Problem-ID:
22965
Description:
qeth: /proc/qeth_perf reports negative times.
Symptom:
On heavy loaded systems /proc/qeth_perf shows several negative values.
Problem:
On heavy loaded systems /proc/qeth_perf shows several negative values.
Solution:
Corrected formatting statements.
Problem-ID:
22991
Description:
z90crypt: Analysis revealed unreachable code.
Symptom:
Error messages never generated under certain conditions.
Problem:
Extraneous check of variable for non-zero value.
Solution:
Remove extraneous check.
Problem-ID:
22772
Description:
z90crypt: Analysis revealed a possible memory overlay.
Symptom:
Kernel oops.
Problem:
Incorrect size for an array.
Solution:
Use sizeof() as the array dimension.
Problem-ID:
22773

Everybody should apply this patch.

To create the complete linux kernel sources, the following patches need to be applied in sequence:

linux-2.6.5.tar.gz (see www.kernel.org/pub/linux/kernel/v2.6)
+ linux-2.6.5-s390-base-april2004.diff (IBM)
+ linux-2.6.5-s390-01-april2004.diff (IBM)
+ xipfs612 (see linuxvm.org/patches/index.html)
+ xipfs622 (see linuxvm.org/patches/index.html)
+ linux-2.6.5-s390-02-april2004.diff (IBM)
+ linux-2.6.5-s390-03-april2004.diff (IBM)
+ single threaded workqueue patch (see marc.theaimsgroup.com/?l=bk-commits-head&m=108305028322900&q=raw)
+ linux-2.6.5-s390-04-april2004.diff (IBM)
+ linux-2.6.5-s390-05-april2004.diff (IBM)
+ linux-2.6.5-s390-06-april2004.diff (IBM)
+ linux-2.6.5-s390-07-april2004.diff (IBM)
+ linux-2.6.5-s390-08-april2004.diff (IBM)
+ linux-2.6.5-s390-09-april2004.diff (IBM)
+ linux-2.6.5-s390-10-april2004.diff (IBM)
+ linux-2.6.5-s390-11-april2004.diff (IBM)
+ linux-2.6.5-s390-12-april2004.diff (IBM)
+ linux-2.6.5-s390-13-april2004.diff (IBM)
+ linux-2.6.5-s390-14-april2004.diff (IBM)
+ linux-2.6.5-s390-15-april2004.diff (IBM)
+ linux-2.6.5-s390-16-april2004.diff (IBM)
+ linux-2.6.5-s390-17-april2004.diff (IBM)
+ linux-2.6.5-s390-18-april2004.diff (IBM)
+ linux-2.6.5-s390-19-april2004.diff (IBM)
+ linux-2.6.5-s390-20-april2004.diff (IBM)
+ linux-2.6.5-s390-21-april2004.diff (IBM)
+ linux-2.6.5-s390-22-april2004.diff (IBM)
+ linux-2.6.5-s390-23-april2004.diff (IBM)
+ linux-2.6.5-s390-24-april2004.diff (IBM)
+ linux-2.6.5-s390-25-april2004.diff (IBM)
+ linux-2.6.5-s390-26-april2004.diff (IBM)
+ linux-2.6.5-s390-27-april2004.diff (IBM)
+ linux-2.6.5-s390-28-april2004.diff (IBM)
+ linux-2.6.5-s390-29-april2004.diff (IBM)
+ linux-2.6.5-s390-30-april2004.diff (IBM)
+ linux-2.6.5-s390-31-april2004.diff (IBM)
+ linux-2.6.5-s390-32-april2004.diff (IBM)
+ linux-2.6.5-s390-33-april2004.diff (IBM)
+ linux-2.6.5-s390-34-april2004.diff (IBM)

Contact the IBM team

If you want to contact the Linux on System z IBM team refer to the Contact the Linux on System z IBM team page.