2005-01-24 kernel 2.6.5 bug fix patch 12 ("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-12-april2004.tar.gz / MD5 ... accumulated patch, recommended (2005-01-24)

linux-2.6.5-s390-12-april2004-patches.tar.gz / MD5 ... per-problem-patches, recommended (2005-01-24)

These patches contain the following linux kernel bug fixes:

Description:
cio: Various problems in machine check handling.
Symptom:
kslowcrw oops-es, subchannels and ccw devices do not reflect the current state of the machine, machine hangs after logical vary off/on.
Problem:
Double unregister of devices or live locks on the bus semaphores could be triggered. Check whether a device had a sibling in the tree was incorrect. Some information in subchannels was not updated.
Solution:
Rework machine check handling for devices: Do not de-register ccw devices directly from the subchannel's remove function but delay it. Subsequently, use bitops to prevent de-register of not yet registered ccw devices. Delete pending times after a machine check. Update ssd_info after de- and re-registering a device. Fix detection if another device needs to be de-registered when de- and re-registering. Fix some timing issues uncovered by the above changes.
Problem-ID:
12853
Description:
dasd: Possible memory access violation in low memory situations.
Symptom:
When using any of the release device, reserve device, unconditional reserve, or performance statistics IOCTLs in a low memory situation, memory access violations may occur.
Problem:
Incorrect return code checking when calling a memory allocation function within these IOCTLs. Instead of aborting, an error pointer is referenced and used as buffer.
Solution:
Correct return code checking.
Problem-ID:
12833
Description:
dasd: Unexpected behavior when using DASD DIAG access.
Symptom:
Accessing non-ECKD DASD devices via DIAG will fail for device formats with a block size other than 512 bytes. Also, after modifying the use_diag and ro sysfs-attributes of a DASD device which was not set online, reading these attributes will not return the modified value but default values.
Problem:
The format analysis routine expects a DIAG block read request to fail if expected and formatted block sizes do not match. This is not true for non-ECKD DASD devices. Also, the method to access the values for use_diag and ro incorrectly rely on data which is only present after a device is set online.
Solution:
The format analysis routine expects a DIAG block read request to fail if expected and formatted block sizes do not match. This is not true for non-ECKD DASD devices. Also, the method to access the values for use_diag and ro incorrectly rely on data which is only present after a device is set online.
Problem-ID:
12835
Description:
kernel: Race condition between no-HZ-timer and RCU.
Symptom:
System may stop during boot.
Problem:
Race condition for a CPU that has RCU pending and goes idle.
Solution:
Do not let the CPU go idle if RCU is pending for this CPU.
Problem-ID:
12972
Description:
qeth: Possible kernel BUG when displaying add4/6 sysfs attributes.
Symptom:
When displaying the ipa_takeover, vipa, or rxip add4/add6 sysfs attributes, a kernel BUG is triggered when a large number of ipa_takeover, vipa, or proxy ARP entries are registered.
Problem:
sysfs attributes may only display a buffer not larger than PAGE_SIZE.
Solution:
Check size of output buffer. Do not display more than PAGE_SIZE bytes.
Problem-ID:
12764
Description:
qeth: Check if AIF is available on hardware.
Symptom:
Activation of HiperSocket queues failed with rc=-5.
Problem:
Enabling of the AIF time delay disablement facility does fail if AIF is not supporterd on hardware (e.g. on z900).
Solution:
Check if AIF is available on hardware.
Problem-ID:
13256
Description:
tape: Discipline removal possible while tapes are online.
Symptom:
A discipline module can be removed while there are still devices online.
Problem:
Module count is not incremented/decremented correctly.
Solution:
Increment usage count when a device is set online and decrement the usage count when the device is set offline.
Problem-ID:
12856
Description:
xip2fs: Memory leak on unmount.
Symptom:
Slab cache (size 32 on 64bit) grows when doing lots of mount and umount combinations.
Problem:
Percpu_counter initialized in fill_super, but not destroyed in put_super.
Solution:
Destroy percpu_counter in put_super.
Problem-ID:
13020
Description:
zfcp: Data Miscompares with FCP attached FAStT and cable pull.
Symptom:
BLAST reported "File ID Miscompare" during test runs.
Problem:
During cable pull data underruns occurred for SCSI commands. The data underruns were not correctly reported to the SCSI stack. So the SCSI stack handled those commands as completed succesfully.
Solution:
Set DID_ERROR as result for SCSI commands with data underrun and correctly set resid field for such commands.
Problem-ID:
10999
Description:
zfcp: Several race conditions in zfcp.
Symptom:
Possible kernel Oops when: (1) Setting an adapter online and offline while units are attached, (2) Rebooting Linux after an adapter was set offline, (3) Port is removed while an ADISC command is pending.
Problem:
(1) Registration of devices at SCSI stack is asynchronous. (2) When debug feature is deregistered for an adapter some dbf-pointers are not cleared which are still used during reboot. (3) Missing reference counting in link-test-procedure.
Solution:
(1) Make registration of devices with SCSI stack synchronous. (2) Clear pointers after debug feature is deregistered for an adapter. (3) Increment reference count for ports during link-test-procedure.
Problem-ID:
13265
Description:
zfcp: z/VM-Guest hang-up on cable pull.
Symptom:
z/VM-Guest hang-up. (unable to login, no I/O, no answers to ping).
Problem:
Function del_timer_sync was called in interrupt context. This caused an endless loop in del_timer_sync.
Solution:
Use del_timer instead of del_timer_sync when running in interrupt context.
Problem-ID:
12858

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)

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.