Kernel patches

2004-09-14 kernel 2.4.21 bug fix patch 16 ("June 2003")

If you download any software from this web site please be aware of the Warranty Disclaimer and Limitation of Liabilities.

linux-2.4.21-s390-16-june2003.tar.gz / MD5 ... accumulated patch, recommended (2004-09-14)

linux-2.4.21-s390-16-june2003-patches.tar.gz / MD5 ... per-problem-patches, recommended (2004-09-14)

These patches contain the following linux kernel bug fixes:

Description:
dasd: Memory leak in dasd_statistics_write.
Symptom:
Increased memory consumption.
Problem:
Local allocated memory is not freed.
Solution:
Free memory.
Problem-ID:
10222
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:
kernel: Fix 31 bit emulation of mmap system call.
Symptom:
A memory map from a 31 bit program on a 64 bit kernel with no memory left below 2 GB line crashes the program.
Problem:
An anonymous mapping will return an address above the 2 GB line if there is not enough room below the line. The 31 bit emulation checks for this and unmaps the mapping which is unusable for a 31 bit program. The unmap call is done with the initial address which might be zero. In this case the first mapping in the address space is unmapped. This usually is the main executable.
Solution:
Use the address return by the do_mmap_pgoff call to do the unmap.
Problem-ID:
10614
Note:
applicable for 64 bit Linux, only
Description:
kernel: Fix 31 bit emulation of stat64, lstat64 and fstat64.
Symptom:
31 bit rpm generates invalid packages.
Problem:
The 31 bit emulation function for the stat64, lstat64, and fstat64 system calls always writes to the stat structure passed on the system call. The user stat structure may only be modified if the call to the internal function (which does the real work for stat64, lstat64, and fstat64) returns successfully.
Solution:
Check the return code of the internal function which implements stat64, lstat64, and fstat64 before copying the result structure back to user space.
Problem-ID:
10615
Note:
applicable for 64 bit Linux, only
Description:
sclp: Console causes system to hang.
Symptom:
Under certain types of console I/O stress (i.e. when a lot of console messages are generated by several CPUs at the same time), the system may hang.
Problem:
The handling of BUSY and NOT OPERATIONAL states of the SCLP interface is incorrect.
Solution:
Fixed handling of BUSY and NOT OPERATIONAL states.
Problem-ID:
9819
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: System hang on adapter detach.
Symptom:
System hangs.
Problem:
Race between calls of qdio_shutdown and do_QDIO. This can lead to enqueued requests for an adapter which is detached instead of returning the requests with error code.
Solution:
Eliminate race.
Problem-ID:
9757
Description:
zfcp: Wrong return code of fsf_req_create.
Symptom:
Addressing exception, system hangs.
Problem:
If QDIO queues are shut down, fsf_req_create may return with a NULL pointer but with a return code which indicates, that this pointer is actually pointing to a valid structure.
Solution:
Set return code correctly.
Problem-ID:
10200
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 FSF_GOOD to the actcli tool, 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 cannot be processed by FCP adapter.
Problem-ID:
10583
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: Possible adapter shutdown after invalid CT commands.
Symptom:
Adapter shutdown if invalid CT commands are sent via zfcp_hbaapi.
Problem:
An ULP_PROGRAMMING_ERROR can be provoked by specifying a wrong maximum residual size in the CT header of Generic Service commands. (Actually such a situation can only occur in conjunction with zfcp_hbaapi.) The ULP_PROGRAMMING_ERROR in turn triggers an adapter shutdown by mistake.
Solution:
Correct handling of ULP_PROGRAMMING_ERROR, i.e. do not shutdown the adapter.
Problem-ID:
10709
Description:
z90crypt: Certain 31-bit ioctl calls are not accepted on 64-bit kernel.
Symptom:
Certain ioctl() calls fail from 31-bit callers on 64-bit kernel.
Problem:
Some ioctl calls were not registered with register_ioctl32_conversion().
Solution:
Fix the table in arch/s390x/kernel/ioctl32.c.
Problem-ID:
10599
Note:
applicable for 64 bit Linux, only
Description:
z90crypt: Backport several bugfixes to service stream for 2.4.
Symptom:
domain=xx parameter ignored in certain situations.
Problem:
Incorrect checking in probe_crypto_domain.
Solution:
Remove unneeded check.
Additional changes that went in:
Problem-ID:
9373

Everybody should apply this patch.

To create the complete linux kernel sources, the following patches need to be applied in sequence:

linux-2.4.21.tar.gz (see www.kernel.org)
+ linux-2.4.21-s390-june2003.diff (IBM)
+ linux-2.4.21-s390-01-june2003.diff (IBM)
+ linux-2.4.21-s390-02-june2003.diff (IBM)
+ linux-2.4.21-s390-03-june2003.diff (IBM)
+ linux-2.4.21-s390-04-june2003.diff (IBM)
+ linux-2.4.21-s390-05-june2003.diff (IBM)
+ linux-2.4.21-s390-06-june2003.diff (IBM)
+ linux-2.4.21-s390-07-june2003.diff (IBM)
+ linux-2.4.21-s390-08-june2003.diff (IBM)
+ linux-2.4.21-s390-08-june2003.diff (IBM)
+ linux-2.4.21-s390-09-june2003.diff (IBM)
+ linux-2.4.21-s390-10-june2003.diff (IBM)
+ xip2fs1 (see linuxvm.org/patches/index.html)
+ xip2fs2 (see linuxvm.org/patches/index.html)
+ linux-2.4.21-s390-11-june2003.diff (IBM)
+ linux-2.4.21-s390-12-june2003.diff (IBM)
+ linux-2.4.21-s390-13-june2003.diff (IBM)
+ linux-2.4.21-s390-14-june2003.diff (IBM)
+ linux-2.4.21-s390-15-june2003.diff (IBM)
+ linux-2.4.21-s390-16-june2003.diff (IBM)

Note: If On-demand timer is required, apply as last patch:
+ linux-2.4.21-s390-timer-03-june2003.diff (IBM)

Note: If you apply the above patches, you need as a minimum the 2004-07-14 version of the tape_3590 OCO module "tape3590-2.4.21-s390(x)-02-june2003.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.