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

linux-2.6.5-s390-09-april2004-patches.tar.gz / MD5 ... per-problem-patches, recommended (2004-11-12)

These patches contain the following linux kernel bug fixes:

Description:
kernel: incorrect registers in core dumps.
Symptom:
The registers stored in a core dump do not contain the correct values that had been present at the time of the fault that caused the generation of the dump.
Problem:
The implementation of ELF_CORE_COPY_REGS, ELF_CORE_COPY_FPREGS, and ELF_CORE_COPY_TASK_REGS for the elf binary format is incorrect.
Solution:
Store the content of the access registers in ELF_CORE_COPY_REGS, use the content of the cpus fpu registers if ELF_CORE_COPY_FPREGS is called for the current process and add a definition for ELF_CORE_COPY_TASK_REGS and ELF_CORE_COPY_FPREGS to the 32 bit compatability elf loader.
Problem-ID:
12315
Description:
lcs: device will not start anymore after first detection.
Symptom:
After setting an lcs device online, ifup <lcs net device> will fail with error "LCS:Error in opening device". Another symptom is that the lcs device receives packets and reports them as malformed or invalid via the debug feature.
Problem:
After the first call of lcs_stop_channels the state of the channels is not correct so that a second detection will fail.
Solution:
Set the correct state in lcs_stop_channel so that halt and clear will work properly.
Problem-ID:
12211
Description:
qdio/qeth: performance decrease compared to Linux 2.4.
Symptom:
For certain workloads (especially transaction oriented) users may experience a performance decrease of qeth connections compared to Linux 2.4.
Problem:
Unconditional sprintf debug statements in qdio module.
Solution:
Encapsulate debug statement with a new config option 'CONFIG_QDIO_DEBUG'.
Problem-ID:
12205
Description:
qeth: add check for HiperSockets on z800/z900.
Symptom:
On z800 and z900 machines HiperSockets broadcast traffic may result in high ksoftirqd cpu usage.
Problem:
On z800 and z900 HiperSockets does not support broadcast. Outbound packets may not be handled and keep our queues busy.
Solution:
Drop outbound broadcast packets for HiperSockets on z800 and z900.
Problem-ID:
12247
Description:
qeth: errors in IP address registration.
Symptom:
During start-up of a network interface, registration of IP addresses can fail, resulting in a non-operational interface.
Problem:
Function that registers IP addresses is called concurrently from two different threads, resulting in inconsistent IP address lists.
Solution:
Eliminate one thread (SET_MC_THREAD) and call function qeth_set_ip_addr_list only from SET_IP_THREAD.
Problem-ID:
9424
Description:
qeth: no error message displayed in /var/log/messages when registration of IP addresses fails.
Symptom:
When registration of IP addresses with the hardware fails this is not indicated to the user through a message in /var/log/messages.
Problem:
Printing an error message was disabled.
Solution:
Enabled output of an error message for setip failures.
Problem-ID:
11314
Description:
qeth: socket write queue is blocked and ksoftirqd yields 100% cpu load when cable is pulled.
Symptom:
When the network cable of an OSA card is pulled, the sockets write queue is blocked and fills up. Also the cpu load goes to 100% caused by ksoftirqd.
Problem:
We call netif_stop_queue when we detect cable pull. Normal behavior would be that the queue keeps running and the driver just drops packets and increments tx error count. Furthermore, we must not return an error code for this case but return NETDEV_TX_OK. Otherwise, the stack tries resending again and again which leads to 100% cpu load caused by ksoftirqd.
Solution:
Do not call netif_stop_queue in case of cable pull. Return NETDEV_TX_OK for outbound errors other than -EBUSY.
Problem-ID:
12134
Description:
zfcp: FCP port cannot recover after aborted name server request.
Symptom:
Due to faulty handling of aborted name server requests, ports are erroneously marked as failed, after which such a port is not automatically recovered anymore.
Problem:
zfcp_fsf_gid_pn_handler() does not check if the corresponding request has succesfully completed. Hence the flag ZFCP_STATUS_PORT_INVALID_WWPN is set if a name server request was aborted, causing the port to be marked as failed.
Solution:
Check if the request was succesfully executed before response is evaluated in zfcp_fsf_gid_pn_handler().
Problem-ID:
12175

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)

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.