2007-10-12 kernel 2.6.16 bug fix patch 17 ("October 2005")

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

linux-2.6.16-s390-17-october2005.tar.gz / MD5 ... accumulated patch, recommended (2007-10-12)

linux-2.6.16-s390-17-october2005-patches.tar.gz / MD5 ... per-problem-patches, recommended (2007-10-12)

This patch contains the following linux kernel bug fixes:

Description:
cio: Disable channel path measurements on shutdown/re-boot.
Symptom:
Memory corruptions if channel path measurements have been used on the machine in the past.
Problem:
When channel path measurements are enabled, the channel subsystem is handed a memory area it can write to. If channel path measurements are not disabled before reboot, the channel subsystem will continue to write to those areas if no subsystem re-set happened.
Solution:
Disable channel path measurements via a re-boot notifier if they are still enabled.
Problem-ID:
39069
Description:
hypfs: Inode corruption due to missing locking.
Symptom:
Kernel panic.
Problem:
hypfs removes the whole hypfs directory tree and creates a new one, when a process triggers an update by writing to the "update" attribute. When removing and creating files, it is necessary to lock the inode of the parent directory where the files reside. Currently hypfs does not lock the parent inode, which can lead to inode corruption.
Solution:
Introduce correct locking and fix i_nlink reference counting for inodes, when creating directories.
Problem-ID:
37643
Description:
kernel: Shared memory may not be volatile.
Symptom:
Error message "BUG: spinlock bad magic on CPU ..." if spinlock debugging is enabled.
Problem:
Shared memory pages can be written to the swap device. A shared memory page with a backing is made volatile, but page_unmap_all can not deal with shared memory pages. It treats the pages like file mapped pages but the i_mmap_lock is not initialized for the swapper_space.
Solution:
Check for shared memory pages in __page_discardable and do not make them volatile.
Problem-ID:
38927
Note:
applicable for 64-bit Linux, only
Description:
kernel: Too few page cache pages in state volatile.
Symptom:
The performance of the system running with cmma=on is lower than it could be.
Problem:
The check against the page counter in put_page_testzero does not take into account that the counter is biased by -1. The effect is that if the second to last reference is released no page_make_volatile call is done - which leaves the page in stable. This happens for the pages of files that are accessed solely by sys_read/sys_write.
Solution:
Correct the check against the page counter.
Problem-ID:
38500
Note:
applicable for 64-bit Linux, only
Description:
qdio: Fix EQBS handling on CCQ96.
Symptom:
FCP devices hang when running under z/VM with QIOASSIST=ON and high I/O rates.
Problem:
qdio returned from EQBS instruction in any case after Return Code CCQ=96 was issued, regardless whether buffer states were extracted or not.
Solution:
Return Code processing of EQBS changed so that buffers are returned and if no buffers were extracted the instruction is repeated at once.
Problem-ID:
34583
Description:
qdio/qeth: Make sure sent skbs are freed in time.
Symptom:
Re-boot hang during iptables shutdown.
Problem:
qdio/qeth does not always free up sent skbs in a finite amount of time (as documented in Documentation/networking/driver.txt)
Solution:
Always check for the completion of an skb sent, because freeing of sent skbs in qeth is triggered by such a final completion check.
Problem-ID:
30634
Description:
qeth: Crash during re-boot after failing online setting.
Symptom:
Kernel panic in qeth_reboot_event.
Problem:
Online setting of a qeth device may fail for instance because of:

Such a device is still returned in a driver_for_each_device loop processed in qeth_reboot_event(), which calls qeth_clear_qdio_buffers().

Solution:
Make sure qeth_clear_output_buffer() is called only, if the qdio queues have been successfully allocated during initialization of a qeth device.
Problem-ID:
Description:
qeth: Make qeth driver loadable without ipv6 module.
Symptom:
A qeth module built with ipv6 support will not load when ipv6 module is not loaded.
Problem:
The qeth driver is using basic ipv6 functions which are needed to register IPv6 IP addresses. These functions are not available when ipv6 module is not loaded.
Solution:
Use symbol_put/symbol_get and get function addresses when available and call them. Use wrapper functions then in qeth.
Problem-ID:
38330 (also 19880)
Description:
qeth: Recognize "exclusively used"-RC from Hydra3.
Symptom:
Specific error message missing for dedicated OSA.
Problem:
A Hydra3 type OSA-card might be exclusively used by a non-Linux host.
Solution:
Even though Linux does not make use of exclusively used OSA-cards, qeth should be prepared to receive a bad RC for some initialization steps. A meaningful message is now given, if an OSA-device is set online, even though the OSA-adapter is already exclusively used by another host.
Problem-ID:
27787
Description:
zcrypt: Fix PCIXCC/CEX2C error recovery.
Symptom:
zcrypt fails by setting all PCIXCC/CEX2C cards offline for a certain type of invalid keys.
Problem:
zcrypt does not handle rc=12/rs=769 request responses correctly.
Solution:
Modify convert_type86_ica() to handle these error codes correctly.
Problem-ID:
37390
Description:
zfcp: Error messages when LUN 0 is present.
Symptom:
When the FCP LUN 0 is present, the kernel messages can contain lots of messages like
"scsi: host 0 channel 0 id 1 lun2 has a LUN larger than allowed by the host adapter".
Problem:
The FC transport class triggers a scan for units. This triggers a REPORT LUNS command. When the units should be added to zfcp, this fails with the above message.
Solution:
Introduce a flag that prevents the scan from the FC transport class.
Problem-ID:
38491
Description:
zfcp: zfcp_scsi_eh_abort_handler or zfcp_scsi_eh_device_reset_handler hanging after CHPID off/on.
Symptom:
scsi_error_handler hanging, I/O stall.
Problem:
Both functions are waiting for completion of a failed fsf_request.
Solution:
Return NULL instead of failed fsf request in zfcp_fsf_abort_fcp_command and zfcp_fsf_send_fcp_command_task_management_handler.
Problem-ID:
38085

Everybody should apply this patch.

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

linux-2.6.16.tar.gz (from http://www.kernel.org/pub/linux/kernel/v2.6)
+ linux-2.6.16-s390-base-october2005.diff (IBM)
+ linux-2.6.16-s390-01-october2005.diff (IBM)
+ linux-2.6.16-s390-02-october2005.diff (IBM)
+ linux-2.6.16-s390-03-october2005.diff (IBM)
+ linux-2.6.16-s390-04-october2005.diff (IBM)
+ linux-2.6.16-s390-05-october2005.diff (IBM)
+ linux-2.6.16-s390-06-october2005.diff (IBM)
+ linux-2.6.16-s390-07-october2005.diff (IBM)
+ linux-2.6.16-s390-08-october2005.diff (IBM)
+ linux-2.6.16-s390-09-october2005.diff (IBM)
+ linux-2.6.16-s390-10-october2005.diff (IBM)
+ linux-2.6.16-s390-11-october2005.diff (IBM)
+ linux-2.6.16-s390-12-october2005.diff (IBM)
+ linux-2.6.16-s390-13-october2005.diff (IBM)
+ linux-2.6.16-s390-14-october2005.diff (IBM)
+ linux-2.6.16-s390-15-october2005.diff (IBM)
+ linux-2.6.16-s390-16-october2005.diff (IBM)
+ linux-2.6.16-s390-17-october2005.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.