2007-06-22 kernel 2.6.5 bug fix patch 43 ("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-43-april2004.tar.gz / MD5 ... accumulated patch, recommended (2007-06-22)

linux-2.6.5-s390-43-april2004-patches.tar.gz / MD5 ... per-problem-patches, recommended (2007-06-22)

These patches contain the following linux kernel bug fixes:

Description:
cio: Device status validity.
Symptom:
Device driver assumes final status for request while it is not.
Problem:
Device status in IRB contains channel end/device end, but it is invalid.
Solution:
Only accumulate device status field in IRB if it is valid.
Problem-ID:
34136
Description:
cio: Handle clear interrupts correctly.
Symptom:
ioctl(BIODASDDISABLE) hangs.
Problem:
The dasd driver issues a clear subchannel for an I/O for which no final status has been received. The common I/O layer had accumulated a primary status into its internal IRB to which the interrupt for the clear subchannel is accumulated, resulting in an IRB not recognized as final status and not delivered to the dasd driver.
Solution:
Wipe internal IRB if the clear function bit is set before accumulating bits from the IRB in order to follow hardware behavior.
Problem-ID:
32612
Description:
cio: I/O error after cable pulls.
Symptom:
After some cables to a DASD have been pulled, dasd unsuccessfully tries to submit I/O. After the re-tries for the error recovery have been exhausted, an I/O error is generated.
Problem:
When the common I/O layer tries to start delayed path verification, it detects a pending status and remembers to delay path verification further. However, the pending interrupt is an unsolicited interrupt, and no action is triggered.
Solution:
Re-start path verification when an unsolicited interrupt occurs if the doverify bit is set.
Problem-ID:
30958
Description:
cio: Re-start path verification after aborting internal I/O.
Symptom:
Devices are not informed of a no-path state but get an deferred cc=3 when trying to start I/O.
Problem:
Path verification triggered by changes to the available CHPIDs will be interrupted by another change but not re-started. This results in an invalid path mask.
Solution:
Make sure to completely re-start path verification when changing the available paths.
Problem-ID:
33533
Description:
cio: Retry internal operation on deferred condition code 1.
Symptom:
Devices do not come online because read configuration data fails.
Problem:
During read configuration data or read device characteristics, a status may become pending which results in a deferred condition code 1 and causes the operation to fail.
Solution:
Ignore the deferred condition code 1 since we have no way to deal with the pending status and do a retry of the operation.
Problem-ID:
32669
Description:
cio: Use path verification for last path gone after vary off.
Symptom:
dasd driver running out of re-tries after the last path for a device has been varied off.
Problem:
When the last path had been varied off, devices were being put on the slow path workqueue for evaluation (which may take some time), but the device driver was not prevented from committing I/O in the meantime (which failed due to no path left).
Solution:
Trigger path verification when the last path is varied off which will prevent the device driver from submitting further I/O until its notify function is called.
Problem-ID:
29856
Description:
cio: Device becomes not-operational after device offline.
Symptom:
When trying to set a ccw device offline, the device enters the not-operational state.
Problem:
An error during device shutdown will put the device into a not-operational state. Note that this will only occur when there is no other hardware CCW device when shutdown fails.
Solution:
Deregister CCW device when shutdown fails.
Problem-ID:
35129
Description:
qdio: Time calculation is wrong.
Symptom:
Time calculation in qdio_get_micros does not return microseconds as expected.
Problem:
The return value of get_clock is shifted by 10, which does not return microseconds.
Solution:
Use value 12 for shift operation to get microseconds.
Problem-ID:
34529
Description:
qeth: Keep layer2 MAC address set (Virtual NIC recovery).
Symptom:
After Virtual NIC recovery old MAC address is not kept.
Problem:
If a z/VM Virtual NIC is coupled to a LAN of type. QDIO ETHER, z/VM generates an initial MAC address. This MAC address can be changed later on. But after qeth recovery of such a device, a changed MAC address is lost and the z/VM-generated MAC address is used.
Solution:
If running under z/VM with a Virtual NIC layer2 qeth interface, a set MAC address should be kept after qeth recovery.
This is especially important for a bonding setup over Virtual NICs.
Problem-ID:
33480
Description:
qeth: Connection hang with AWM and EDDP.
Symptom:
Connection hang with AWM running on qeth device in EDDP mode.
Problem:
skb has no socket information stored (=NULL) when it is generated with skb_copy. Using skb->sk->sk_protocol to check for protocol type will result in invalid protocol and thus packet will not be transmitted.
Solution:
Just use sk_protocol as another parameter for qeth_eddp_create_context function.
Problem-ID:
32888
Description:
qeth: Increment sequence number for incoming packets.
Symptom:
SNA-traffic problems (Communication Controller for Linux on System z, CCL 1.1).
Problem:
CCL 1.1 can not handle SNA-traffic correctly.
Solution:
For proper CCL 1.1 support, sequence numbers need to be incremented for every arriving packet when using eth_type_trans.
Problem-ID:
32668
Description:
zfcp: Fix initialization of zfcp FSF timer.
Symptom:
The command san_disc -c PORT_LIST does not show all the available PORTs. Furthermore, it gives different results each time.
Problem:
FSF timer was not correctly initialized, it was already expired at the time of initialization.
Solution:
Correctly initialize the timer with jiffies+timeout.
Problem-ID:
32828
Description:
zfcp_hbaapi: Add license macro.
Symptom:
Loading of zfcp_hbaapi module fails with error message:
"Unknown symbol in module, or unknown parameter (see dmesg)"
dmesg shows:
"zfcp_hbaapi: module license 'unspecified' taints kernel.
zfcp_hbaapi: Unknown symbol uaccess".
Problem:
Only GPL modules are allowed to access the kernel function uaccess.
Solution:
Add the license macro MODULE_LICENSE("GPL") to zfcp_hbaapi. The GPL license was already specified in the file header, now the kernel module loader knows about it, too.
Problem-ID:
32724

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)
+ linux-2.6.5-s390-35-april2004.diff (IBM)
+ linux-2.6.5-s390-36-april2004.diff (IBM)
+ linux-2.6.5-s390-37-april2004.diff (IBM)
+ linux-2.6.5-s390-38-april2004.diff (IBM)
+ linux-2.6.5-s390-39-april2004.diff (IBM)
+ linux-2.6.5-s390-40-april2004.diff (IBM)
+ linux-2.6.5-s390-41-april2004.diff (IBM)
+ linux-2.6.5-s390-42-april2004.diff (IBM)
+ linux-2.6.5-s390-43-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.