Overview

Kernel version 2.2.16 based code drops include alpha patches, recommended and experimental OCO modules.

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

Kernel lcs patch

linux-2.2.16-lcs.tar.gz MD5 (2002-03-04)

This patch contains the source code for the lcs device driver.

To create the complete kernel sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (original kernel source)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-iucv.diff (IBM)
+ linux-2.2.16-pgtable.diff (IBM)
+ linux-2.2.16-sense.diff (IBM)
+ linux-2.2.16-signal.diff (IBM)
+ linux-2.2.16-pagecache.diff (IBM)
+ linux-2.2.16-iucv2.diff (IBM)
+ linux-2.2.16-io.diff (IBM)
+ linux-2.2.16-dasd_performance.diff (IBM)
+ linux-2.2.16-tape.diff (IBM)
+ linux-2.2.16-s390-dump.diff (IBM)
+ linux-2.2.16-fixes.diff (IBM)
+ linux-2.2.16-iucv3.diff (IBM)
+ linux-2.2.16-dasd_fba.diff (IBM)
+ linux-2.2.16-rva_perf.diff (IBM)
+ linux-2.2.16-kernel_symbols.diff (IBM)
+ linux-2.2.16-lcs.diff (IBM)

Everyone should apply this patch.

Kernel symbols fix

linux-2.2.16-kernel_symbols.tar.gz MD5 (2002-01-28)

This patch contains a kernel symbols fix for linux kernel version 2.2.16:

Description:
Not exported symbols cause module load to fail.
Symptom:
insmod or modprobe complain about unresolved symbols in module.
Problem:
Previous alphapatches caused dasd_mod to require some new symbols that were not exported, so that loading a dasd module would fail.
Solution:
Added symbols to arch/s390/kernel/s390_ksyms.c.

To create the complete kernel sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (original kernel source)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-iucv.diff (IBM)
+ linux-2.2.16-pgtable.diff (IBM)
+ linux-2.2.16-sense.diff (IBM)
+ linux-2.2.16-signal.diff (IBM)
+ linux-2.2.16-pagecache.diff (IBM)
+ linux-2.2.16-iucv2.diff (IBM)
+ linux-2.2.16-io.diff (IBM)
+ linux-2.2.16-dasd_performance.diff (IBM)
+ linux-2.2.16-tape.diff (IBM)
+ linux-2.2.16-s390-dump.diff (IBM)
+ linux-2.2.16-fixes.diff (IBM)
+ linux-2.2.16-iucv3.diff (IBM)
+ linux-2.2.16-dasd_fba.diff (IBM)
+ linux-2.2.16-rva_perf.diff (IBM)
+ linux-2.2.16-kernel_symbols.diff (IBM)

Everyone should apply this patch.

I/O layer fix

linux-2.2.16-rva_perf.tar.gz MD5 (2001-11-06)

This patch contains the following fix for the common I/O layer in linux kernel version 2.2.16:

Description:
Invalid generation of return codes in the common I/O layer causes overhead on RVA devices.
Symptom:
Severe degradation in RVA performance with 7/23 patches (zSeries).
Problem:
The return codes for s390_SetPGID and s390_SensePGID were messed up and incorrect error handling was initiated. This introduced unnecessary processing overhead on RVA devices.
Solution:
Incorrect code removed.

To create the complete kernel sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (GPL)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-iucv.diff (IBM)
+ linux-2.2.16-pgtable.diff (IBM)
+ linux-2.2.16-sense.diff (IBM)
+ linux-2.2.16-signal.diff (IBM)
+ linux-2.2.16-pagecache.diff (IBM)
+ linux-2.2.16-iucv2.diff (IBM)
+ linux-2.2.16-io.diff (IBM)
+ linux-2.2.16-dasd_performance.diff (IBM)
+ linux-2.2.16-tape.diff (IBM)
+ linux-2.2.16-s390-dump.diff (IBM)
+ linux-2.2.16-fixes.diff (IBM)
+ linux-2.2.16-iucv3.diff (IBM)
+ linux-2.2.16-dasd_fba.diff (IBM)
+ linux-2.2.16-rva_perf.diff (IBM)

Everyone should apply this patch.

DASD driver

linux-2.2.16-dasd_fba.tar.gz MD5 (2001-10-30)

This patch contains the following fix for the DASD driver for linux kernel version 2.2.16:

Description:
The max_blocks setting for FBA devices was wrong.
Symptom:
Message "ccwcache:Channel program to large to fit on one page" is printed, io errors occur.
Problem:
max_blocks was miscalculated because the define_extend and locate_record command words, which are always at the beginning of a chain, were not counted.
Solution:
The max_blocks calculation was fixed.

To create the complete kernel sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (GPL)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-iucv.diff (IBM)
+ linux-2.2.16-pgtable.diff (IBM)
+ linux-2.2.16-sense.diff (IBM)
+ linux-2.2.16-signal.diff (IBM)
+ linux-2.2.16-pagecache.diff (IBM)
+ linux-2.2.16-iucv2.diff (IBM)
+ linux-2.2.16-io.diff (IBM)
+ linux-2.2.16-dasd_performance.diff (IBM)
+ linux-2.2.16-tape.diff (IBM)
+ linux-2.2.16-s390-dump.diff (IBM)
+ linux-2.2.16-fixes.diff (IBM)
+ linux-2.2.16-iucv3.diff (IBM)
+ linux-2.2.16-dasd_fba.diff (IBM)

Everyone who is using FBA DASD devices should apply this patch.

IUCV fix

linux-2.2.16-iucv3.tar.gz MD5 (2001-10-11)

This patch contains the following fix for the IUCV driver for linux-2.2.16:

Description:
Segmentation error using a MP system and IUCV.
Symptom:
Get segment exception on 'shutdown -h now' with IUCV configured.
Problem:
The problem is caused when one CPU issues an iucv_declare_buffer (during registration or an incoming connection), and another CPU issues an iucv_retrieve_buffer (when unregistering). The retrieve buffer call must be done on the same CPU as the declare buffer call (or an operation exception results).
Solution:
The problem is solved by making sure that:

To create the complete kernel sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (GPL)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-iucv.diff (IBM)
+ linux-2.2.16-pgtable.diff (IBM)
+ linux-2.2.16-sense.diff (IBM)
+ linux-2.2.16-signal.diff (IBM)
+ linux-2.2.16-pagecache.diff (IBM)
+ linux-2.2.16-iucv2.diff (IBM)
+ linux-2.2.16-io.diff (IBM)
+ linux-2.2.16-dasd_performance.diff (IBM)
+ linux-2.2.16-tape.diff (IBM)
+ linux-2.2.16-s390-dump.diff (IBM)
+ linux-2.2.16-fixes.diff (IBM)
+ linux-2.2.16-iucv3.diff (IBM)

Fixes / Enhancements

Available fixes / enhancements


linux-2.2.16-fixes.tar.gz MD5 (2001-07-23)

This patch contains the following fixes for the linux kernel version 2.2.16:

Description:
Kernel reboot problem.
Symptom:
The system fails to start up correctly after a reboot.
Problem:
The CCW prefetch control bit in the operation request block was not set in the reipl routine. This leads to incorrect execution of self-modifying IPL CCW chains.
Description:
Symptom:
Problem:
During IPL/Boot the common I/O layer establishes path groupes during internal device recognition, regardless whether any device driver will eventually operate the device. This is now avoided unless a device driver explicitely claims ownership for a device.
Description:
in_interrupt counting incorrect
Symptom:
NFS ceases to work after some time.
Problem:
irq_enter/irq_exit was not done in the I/O interruption path. This makes cli() continue processing without waiting for the global_irq_lock although another processor is in interrupt. This leads to various other problems besides this one (NFS).
Description:
Parameter parsing problem.
Symptom:
Some multiline kernel parameter won't work.
Problem:
Some editors use the sequence 0x0d0a as line end delimiter instead of 0x0a. The character 0x0d was not converted to a blank which can confuse the parameter parsing.
Description:
User program crashes on entry to signal handler.
Symptom:
The SIGILL signal handler could crash trying to recover from special illegal instructions.
Problem:
Instructions that switch the address space control are intercepted by the linux kernel after the instruction has been executed. The access space control bits in the user PSW need to be resetted before calling the signal handler.
Description:
Console device node major 5/minor 1 does not work with 3215.
Symptom:
The 3215 device driver does not react to activity on the special device node major 5/minor 1.
Problem:
The 3215 function that is supposed to return the device number of the console device returned a wrong number.
Description:
Kernel problems related to the compiler version.
Symptom:
An "old" kernel (2.2.x) compiled with the new 2.95.3 compiler backend does not work at all.
Problem:
The new compiler backend has an improved condition code handling that makes better use of the condition code. This requires that all inline assemblies that clobber the condition code specify that fact on the clobber list.
Description:
Register information incorrect after a panic or a halt.
Symptom:
After a panic or a halt command the lowcores of the CPUs do not contain the dumped registers.
Problem:
The order "stop and store status" dumps the processor registers into absolute 0 and not into real 0. The fixed code now uses the orders "stop" and "store status at address" to make every CPU dump to its own prefix page.

To create the complete kernel sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (GPL)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-iucv.diff (IBM)
+ linux-2.2.16-pgtable.diff (IBM)
+ linux-2.2.16-sense.diff (IBM)
+ linux-2.2.16-signal.diff (IBM)
+ linux-2.2.16-pagecache.diff (IBM)
+ linux-2.2.16-iucv2.diff (IBM)
+ linux-2.2.16-io.diff (IBM)
+ linux-2.2.16-dasd_performance.diff (IBM)
+ linux-2.2.16-tape.diff (IBM)
+ linux-2.2.16-s390-dump.diff (IBM)
+ linux-2.2.16-fixes.diff (IBM)


linux-2.2.16-s390-dump.tar.gz MD5 (2001-07-23)

This patch provides two LINUX for S/390 stand alone dump records for generating system memory dumps on dasd volumes and tapes. It contains the following:

The dumps can be analyzed with the dump analysis tool 'lcrash' from the lkcdutils package. lkcdutils version 3.1.2 includes LINUX for S/390 support.

The dump records are built with 'make image' and are located in arch/s390/boot. The Kerntypes file can be built with 'make Kerntypes' which creates the file in the Linux toplevel directory.

For more details refer to the "Using the dump tools" manual in the Documentation section.

To create the complete kernel sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (GPL)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-iucv.diff (IBM)
+ linux-2.2.16-pgtable.diff (IBM)
+ linux-2.2.16-sense.diff (IBM)
+ linux-2.2.16-signal.diff (IBM)
+ linux-2.2.16-pagecache.diff (IBM)
+ linux-2.2.16-iucv2.diff (IBM)
+ linux-2.2.16-io.diff (IBM)
+ linux-2.2.16-dasd_performance.diff (IBM)
+ linux-2.2.16-tape.diff (IBM)
+ linux-2.2.16-s390-dump.diff (IBM)


linux-2.2.16-tape.tar.gz MD5 (2001-07-23)

This patch contains the following kernel enhancement:

This device driver can be used together with IBM 3480 or IBM 3490 magnetic tape subsystems and 100% compatibles.

The updated "LINUX for S/390 Device Drivers and Installation Commands" manual in the Documentation section contains a description of the tape device driver.

Everybody who needs to access these devices should apply this patch.

To create the complete kernel sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (Vanilla kernel)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-iucv.diff (IBM)
+ linux-2.2.16-pgtable.diff (IBM)
+ linux-2.2.16-sense.diff (IBM)
+ linux-2.2.16-signal.diff (IBM)
+ linux-2.2.16-pagecache.diff (IBM)
+ linux-2.2.16-iucv2.diff (IBM)
+ linux-2.2.16-io.diff (IBM)
+ linux-2.2.16-dasd_performance.diff (IBM)
+ linux-2.2.16-tape.diff (IBM)


linux-2.2.16-dasd_performance.tar.gz MD5 (2001-07-23)

This patch contains the following kernel performance fix:

Description:
Dynamically allocated DASD majors do not perform well.
Symptom:
The disk I/O performance for DASD devices in dynamically allocated majors (all but major 94, from /dev/dasdbm on) is poor.
Problem:
The generic block device layer does not perform merging of requests to these devices due to a static list of device driver's major numbers that support request merging.
Solution:
Introduce an array where the device driver writes down whether it supports request clustering or not when registering a dynamic major. Enhance the request merging code to evaluate this setting.

Everybody who uses more than 64 DASDs in a Linux image should apply this patch.

To create the complete kernel sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (Vanilla kernel)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-iucv.diff (IBM)
+ linux-2.2.16-pgtable.diff (IBM)
+ linux-2.2.16-sense.diff (IBM)
+ linux-2.2.16-signal.diff (IBM)
+ linux-2.2.16-pagecache.diff (IBM)
+ linux-2.2.16-iucv2.diff (IBM)
+ linux-2.2.16-io.diff (IBM)
+ linux-2.2.16-dasd_performance.diff (IBM)


linux-2.2.16-io.tar.gz MD5 (2001-05-18)

This patch contains the following kernel bug fix:

Description:
Kernel hangs on boot when certain devices are connected.
Symptom:
When booting Linux in an LPAR with certain devices connected, the boot process fails to complete ("Operating System Messages" are never displayed). When deactivating the chpid in question, the boot goes through.
Problem:
During device initialization, Linux tries to perform the Set Path Group ID operation on the device. If this results in an unit check, Linux will try to retry the operation. If the operation keeps failing, the loop should be aborted after a certain number of retries. Due to a bug, this retry count was not maintained correctly, causing an endless loop in certain situations.
Solution:
Limit the number of retries to 5.

Everybody should apply this patch.

To create the complete kernel sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (GPL)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-iucv.diff (IBM)
+ linux-2.2.16-pgtable.diff (IBM)
+ linux-2.2.16-sense.diff (IBM)
+ linux-2.2.16-signal.diff (IBM)
+ linux-2.2.16-pagecache.diff (IBM)
+ linux-2.2.16-iucv2.diff (IBM)
+ linux-2.2.16-io.diff (IBM)


linux-2.2.16-iucv2.tar.gz MD5 (2001-05-18)

This patch contains the following kernel bug fix:

Description:
Kernel crashes when using IUCV under load.
Symptom:
When putting high network load on the IUCV driver, the kernel crashes with messages like "kfree_skb passed an skb still on a list".
Problem:
When encountering certain error situations, the IUCV transmit handler will drop the packet, but pass an incorrect error code up to the Linux network layer that causes that layer to requeue the packet for retry. As the memory holding the packet data was already freed by the driver, this will cause crashes.
Solution:
Fixed behaviour of IUCV driver in transmit error situations.

Everybody who uses IUCV should apply this patch.

To create the complete kernel sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (GPL)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-iucv.diff (IBM)
+ linux-2.2.16-pgtable.diff (IBM)
+ linux-2.2.16-sense.diff (IBM)
+ linux-2.2.16-signal.diff (IBM)
+ linux-2.2.16-pagecache.diff (IBM)
+ linux-2.2.16-iucv2.diff (IBM)


linux-2.2.16-pagecache.tar.gz MD5 (2001-03-30)

This patch contains the following kernel bug fix:

Description:
Out of sync page cache and buffer cache.
Symptom:
Possible data corruption when writing to block devices (e.g. DASD or ramdisk).
Problem:
In very rare cases, writing to a block device updates only the buffer cache, not the page cache. While the modified data is nevertheless written to the device correctly, subsequent *reads* will retrieve out-of-date data from the page cache.

This is a bug in Linux common code which triggers only on architectures where kernel space and user space share the same range of addresses (e.g. S/390).

Solution:
Always update the page cache if required.

Note:
If you use DB2 UDB on Linux for S/390 and get error messages about "partial page writes", this is most likely caused by this bug.

Everybody should apply this patch.

To create the complete kernel sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (GPL)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-pgtable.diff (IBM)
+ linux-2.2.16-sense.diff (IBM)
+ linux-2.2.16-signal.diff (IBM)
+ linux-2.2.16-pagecache.diff (IBM)


alpha-patches.tar.gz MD5 (2001-02-23)

linux-2.2.16-dasd

This patch contains the following five DASD driver bug fixes:

Description:
Wrong DASD names.
Symptom:
The names of the 702th and the following DASD devices in the /proc filesystem are wrong.
Problem:
The calculation of the first and second letter in the DASD name is incorrect.
Solution:
Fix the calculation of DASD names.
Description: Unresolvable calls to unblank_console.
Symptom: The insertion of the DASD module fails with the message "dasd_mod.o: unresolved symbol unblank_console"
Problem:
The linux-2.2.16-dasd_erp patch incorporated a call to unblank_console for debugging purposes. Because the function unblank_console is not exported the load of the DASD module compiled with the dasd_erp patch fails.
Solution:
Remove the calls to unblank_console.
Description:
Bad current working directories after removal of the DASD module.
Symptom:
Segmentation faults after removal of the DASD module.
Problem:
The removal of the DASD module removes the /proc/dasd directory too. If the current working directory of a user process is in /proc/dasd that process might crash due to accesses to inodes that no longer exist.
Solution:
Prevent the removal of the DASD module as long as any user process has its current working directory in /proc/dasd.
Description:
Bad DASD major info structure.
Symptom:
Segmentation faults while reading /proc/dasd/devices.
Problem:
This only happens if there are too many DASD devices defined. In that case the allocation of a dynamic block major can fail. The incomplete DASD major info structure is erroneously added to the list of DASD majors.
Solution:
Move the insertion of the DASD major info structure to prevent adding an incomplete structure.
Description:
/proc/partitions too small.
Symptom: Errors creating logical volumes in a system with more than 130 DASD devices.
Problem:
The partitions /proc entry uses the simple form for /proc entries. This simple form is limited to 4k of data. With more than 130 DASD devices 4k is not enough.
Solution:
Use the alternative /proc entry api that allows for more than 4k of data.

Everybody should apply this patch.

To create the complete compiler sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (GPL)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)

linux-2.2.16-iucv

This patch contains the following IUCV driver bug fix:

Description:
IUCV crashes due to improper use of kmalloc.
Symptom:
Error message "kmem_grow: Called non-atomically from int" while using the iucv network driver.
Problem:
IUCV calls kmalloc within an interrupt with inappropriate options.
Solution:
Correct the calls to kmalloc.

You need this patch only if you are using iucv.

To create the complete compiler sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (GPL)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-iucv.diff (IBM)

linux-2.2.16-pgtable

This patch contains the following kernel bug fix:

Description:
Page directories allocated 4 instead of two pages.
Symptom:
Memory is wasted.
Problem:
Too many pages are allocated in the allocation and the release function for page directories.
Solution:
Correct the number of pages in the allocation and the release routines for page directories.

Everybody should apply this patch.

To create the complete compiler sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (GPL)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-iucv.diff (IBM)
+ linux-2.2.16-pgtable.diff (IBM)

linux-2.2.16-sense

This patch contains the following kernel bug fix:

Description:
Test for the presence of I/O sense data.
Symptom:
Device drivers may stop working or might start inappropriate recovery actions.
Problem:
The expression used to test if sense data is available missed some clauses.
Solution:
Add the missing clauses in the test for sense data.

Everybody should apply this patch.

To create the complete compiler sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (GPL)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-iucv.diff (IBM)
+ linux-2.2.16-pgtable.diff (IBM)
+ linux-2.2.16-sense.diff (IBM)

linux-2.2.16-signal

This patch contains the following kernel bug fix:

Description:
Corrects the test if an interrupted system call needs to be restarted.
Symptom:
A program can return from a system call with error -512 (ERESTARTSYS) although the system call should have been restarted.
Problem:
The check if a system call needs a restart is wrong.
Solution:
Correct the check.

In addition this patch adds two more parameters to the signal handler. These extra parameters are the trap number and the instruction address where the trap happened. This information was not added to the sigcontext structure to avoid breaking binary compatibility.

Everybody should apply this patch.

To create the complete compiler sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (GPL)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)
+ linux-2.2.16-iucv.diff (IBM)
+ linux-2.2.16-pgtable.diff (IBM)
+ linux-2.2.16-sense.diff (IBM)
+ linux-2.2.16-signal.diff (IBM)

linux-2.2.16-xchg

This patch contains the following kernel bug fix:

Description:
__xchg function didn't work for byte and halfword operands.
Symptom:
Device drivers that use __xchg won't work.
Problem:
__xchg on byte and halfword operands swapped the wrong bytes of the first argument.
Solution:
Correct the calculation in __xchg.
Note:
The __xchg function is used in kernel version 2.2.16 only on 4 byte words and is a inline function. Only kernel additions on top of 2.2.16 that have been compiled with the 2.2.16 header files can be affected.

You need this patch only if you compile kernel add-ons.

To create the complete compiler sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (GPL)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)
+ linux-2.2.16-dasd.diff (IBM)
+ linux-2.2.16-xchg.diff (IBM)


linux-2.2.16-dasd_erp.tar.gz MD5 (2001-01-29)

The patch adds error recovery functionality to the DASD device driver, which is essentially needed to support ESS (Shark). The device driver is enabled to deal with 'long busy' error conditions (action code '0x1D') and some related errors.

To create the complete kernel sources, the following patches need to be applied in sequence:
linux-2.2.16.tar.gz (Vanilla kernel)
+ linux-2.2.16.2-s390.diff (IBM)
+ linux-2.2.16-dasd_erp.diff (IBM)

OCO modules

Documentation on the use of these network device drivers can be found in the Linux for S/390 device drivers manual in the Documentation section.

qdio-2.2.16-2.tar.gz MD5 QDIO Base Support (2001-05-02)
qeth-2.2.16-2.tar.gz MD5 OSA-Express Driver (2001-05-02)
lcs-2_2_16_1.tar.gz MD5 LCS driver (e.g. ethernet, fast ethernet, token ring) (2000-06-19)

Restrictions for QDIO base support and OSA-Express Driver:

Code drop

binutils
Category application development tool. The binutils package is a collection of various development tools like a linker, a utility for creating, modifying and extracting from archives, a tool that displays information from object files, a tool to generate an index to the contents of an archive and so on.

binutils-2.10-s390.tar.gz MD5 (2000-12-07)

gcc
Category application development tool. Contains the C Compiler front-end including architecture dependent back-ends like the S/390 back-end that generates executables for LINUX/390. The gcc is an application that can be built to run on many different platforms and does not need to run on LINUX for S/390.

gcc-2.95.2.4-s390.tar.gz MD5 (2000-12-07)

gdb
Category application development tool. Contains the GNU debugger. It can be used as an interactive symbolic debugger as well as post-mortem debugger.

gdb-5.0.1-s390.tar.gz MD5 (2000-12-07)

glibc, glibc-devel
Category application development tool. These packages contain the GNU C Runtime library for LINUX.

glibc-2.1.3.3-s390.tar.gz MD5 (2000-12-07)

glibc-linuxthreads-2.1.3.3-s390.tar.gz MD5 (2000-12-07)

kernel, kernel-headers
Category operating system. Contains the LINUX kernel source code as well as the S/390 specific layer.

linux-2.2.16.2-s390.tar.gz MD5 (2000-12-07)

strace
Category application development tool. This application writes a trace of system calls to the operating system.

strace-4.2.2-s390.diff.tar.gz MD5 (2000-08-18)

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.