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".