2004-08-31 kernel 2.6.5 bug fix patch 07 ("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-07-april2004.tar.gz / MD5 ... accumulated patch, recommended (2004-08-31)

linux-2.6.5-s390-07-april2004-patches.tar.gz / MD5 ... per-problem-patches, recommended (2004-08-31)

These patches contain the following linux kernel bug fixes:

Description:
cio: Disconnected devices do not become available again.
Symptom:
When a disconnected device becomes available again on the same subchannel, it stays disconnected instead of becoming online again.
Problem:
A check in ccw_device_online() on the state of the formerly disconnected device fails.
Solution:
Set state to DEV_STATE_OFFLINE before calling ccw_device_online() for the disconnected device.
Problem-ID:
10337
Description:
cio: Problems after errors on ESS ("Shark") on high I/O load.
Symptom:
Data miscompares under exceptional conditions.
Problem:
While waiting for the interrupt for a basic sense, an IFCC might occur. Because the code only checked for no unit check, the device driver is called with zero sense data while the common I/O layer claims sense data is available, which confused the dasd driver.
Solution:
Also check for channel end on an interrupt after basic sense and retry, if needed.
Problem-ID:
10452
Description:
dasd: Broken ccw programs on systems with >= 2GB memory.
Symptom:
On systems with more then 2GB ram and dasd devices with block sizes smaller then 4096 bytes the ccw programs may contain errors. The I/O request will be rejected, is not recoverable and results in an I/O error.
Problem:
A ccw uses indirect data addressing to read or write data from a page above the 2GB line. Due to a bug such indirect addressing is used for data areas that end right below this line. In that case there is no memory reserved to hold that address, and it is written into the data area of the locate record ccw instead. Thus the locate record ccw is broken and the I/O request is rejected by the I/O subsystem.
Solution:
Fix function idal_is_need to give correct results in all cases.
Problem-ID:
10794
Description:
kernel: Partition detection does not work on FBA volumes, that have been prepared with CPFMTXA.
Symptom:
Disk does not have any partitions.
Problem:
Partition detection code runs into eckd compatible disk layout path.
Solution:
Make code path for eckd cdl conditional, i.e. only when eckd cdl disk has been found on media detection of dasd driver.
Problem-ID:
10529
Description:
lcs: Problems in LAN command handling.
Symptom:
Kernel panic might occur, race conditions causing hanging on shutdown and endless running/waiting kernel threads are some symptoms which may happen.
Problem:
Problems in thread handling and also LAN cmd handling, as LAN cmd reply structure has not been allocated via kmalloc and timer has been deleted with wrong function.
Solution:
Use del_timer_sync instead of del_timer; allocate (kmalloc) reply structure and free it when done.
Problem-ID:
9897
Description:
lcs: Potential deadlock when configuring LCS devices.
Symptom:
During configuration of LCS devices the system might end up in a deadlock.
Problem:
card->ipm_lock is held while calling lcs commands that result in interrupts. If the same lock is needed within the interrupt handler, the system hangs.
Solution:
Release ipm_lock before issuing the lcs commands. Take it back after the commands complete.
Problem-ID:
10914
Description:
network: Multicast notifier chain causes problems and is redundant as a similar mechanism already exists in the kernel.
Symptom:
Redundant set_multicast_list calls using notify_call_chain may cause lcs to hang.
Problem:
Lcs may hang using the multicast chain.
Solution:
Removed multicast chains and introduced a new device feature flag NETIF_F_MC_ALL to trigger a dev_mc_upload on every multicast address.
Problem-ID:
5921
Description:
qdio: Network connection to the system hangs after some days during file system stress.
Symptom:
System is running but not reachable via network.
Problem:
Lost initiative on QDIO inbound queue.
Solution:
Corrected an if statement as the function should also be called for OSA devices.
Problem-ID:
10745
Description:
qeth: Only 'ifup' OSA cards detected by osasnmpd.
Symptom:
Osasnmpd can only handle cards if they are in up state. Cards which are available but not up are ignored by osasnmpd.
Problem:
IOCTL to check if network device is an OSA card fails because of a wrong if statement in qeth_main.c.
Solution:
Change if statement in qeth_main.c (qeth_do_ioctl).
Problem-ID:
10683
Description:
sclp: Startup problem after reboot.
Symptom:
On rare occasions, a Linux system using the SCLP console/terminal driver (usually LPAR) will have problems with starting up after performing a reboot.
Problem:
During reboot, pending SCLP requests are not cleared and may interfer with the rebooted Linux instance.
Solution:
Before reboot, notify the SCLP interface that requests are no longer accepted by the operating system.
Problem-ID:
10757
Description:
zfcp: IOCTL handler of CFDC does not check for FSF request completion status.
Symptom:
IOCTL handler of CFDC returns to actcli tool an FSF status 0, which means for actcli tool FSF_GOOD, even if protocol status is other than FSF_PROT_GOOD or FSF_PROT_FSF_STATUS_PRESENTED.
Problem:
IOCTL handler of CFDC does not check either protocol status or FSF request status for a completion code.
Solution:
Return an error code to actcli tool if FSF request can not be processed by FCP adapter.
Problem-ID:
10583
Description:
zfcp: Rejected SCSI commands on system shutdown.
Symptom:
I/O error messages on system shutdown.
Problem:
Functions registered to the reboot notifier callchain get called when there are still I/O requests pending. Since the zfcp LLDD registers a function to this chain in order to shut down QDIO queues on system shutdown this might lead to I/O errors.
Solution:
Do not register zcfp LLDD function to reboot notifier callchain. Instead add a shutdown callback function to the driver structure.
Problem-ID:
10352
Description:
zfcp: Device set offline after error recovery has finished.
Symptom:
On cable pull SCSI devices are set offline after error recovery has finished.
Problem:
In error recovery close_physical_port is triggered. But structures for close_physical_port were not properly filled. Outstanding SCSI commands were not aborted and devices were set offline.
Solution:
Set up structures for close_physical_port correctly.
Problem-ID:
10304
Description:
zfcp: Wrong handling of rejected ELS commands.
Symptom:
Rejects of ELS commands are not (properly) detected.
Problem:
Reject of an ELS command is indicated by a certain FSF status and the reject payload is given in a status qualifier word. The previous assumption was that a rejected ELS command completes normally and that the reject payload is delivered in response buffers.
Solution:
Do not check whether an ELS command was rejected using response buffers: Evaluate FSF status and status qualifier words, instead.
Problem-ID:
10549
Description:
zfcp: Wrong return value for sysfs unit_remove attribute.
Symptom:
Error when writing to unit_remove attribute from user space.
Problem:
Function which handles the sysfs unit_remove attribute always returns with an error.
Solution:
Fix return code.
Problem-ID:
10353

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)

Note: If you apply the above patches, you need as a minimum the 2004-07-30 version of the tape_3590 OCO module "tape_3590-2.6.5-s390(x)-01-april2004.tar.gz".

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.