Kernel patches

2005-09-23 kernel 2.4.21 bug fix patch 30 ("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-30-june2003.tar.gz / MD5 ... accumulated patch, recommended (2005-09-23)

linux-2.4.21-s390-30-june2003-patches.tar.gz / MD5 ... per-problem-patches, recommended (2005-09-23)

These patches contain the following linux kernel bug fixes:

Description:
ctc: A race condition and a busy wait performance problem caused by behavior of the transmit function.
Symptom:
Packet order reversion and performance loss.
Problem:
Spinlock too late and non optimal busy-flag usage.
Solution:
Moving spinlock up and changing busy-flag handling.
Problem-ID:
17067
Description:
ctcmpc: Missing storage free in exception case.
Symptom:
Slow leak of size-131072(DMA) buffers on system using ctcmpc channels can eventually cause system instability.
Problem:
ctcmpc did not free skb allocated if MPC group was not in the correct state to process received data. Can occur if data received during small window after one of the read-write channel pair channels went down.
Solution:
Add storage free when MPC group is not in a state to accept data.
Problem-ID:
17420
Description:
ctcmpc: Missing skb reference.
Symptom:
Slow leak of size-131072(DMA) buffers on system using ctcmpc channels.
Problem:
ctcmpc de-referenced a sweep skb when freeing but reference was not increased when allocated. Occurs more frequently when there are inactive MPC connections.
Solution:
Add skb reference when allocate sweep skb.
Problem-ID:
18161
Description:
kernel: pfault interrupt race.
Symptom:
Oops in __wake_up.
Problem:
There is a race in pfault_interrupt. That function gets called two times for each pfault notification. Once with a subcode of 0 (to indicate that a real page is not available) and once with a subcode of 0x80 (to indicate that the page is present again). Since the two external interrupts can be delivered on two different CPUs the order in which the two calls are made is unpredictable. To synchronize the two interrupts the pfault_wait entry in the thread structure is used. Now if the subcode 0x80 interrupt is delivered, first the pfault_wait variable is set to zero before the wake_up of the process is done. If the virtual CPU gets re-scheduled, the execution of the code can stop between clearing pfault_wait and waking up the process for an indefinite period of time. In the meantime the process which faulted on the missing host page can complete the subcode 0 interrupt. After pfault_interrupt has been left, the wait_queue_head_t structure on the kernel stack can get overwritten before the subcode 0x80 interrupt has done the wake_up. In addition the process can run to completion due to a signal. That will remove the task structure which is still needed for the wake up call.
Solution:
Remove the need for a wait queue allocated on the kernel stack by modifying the task state directly and setting of need_resched. Lock the task struct before clearing pfault_interrupt and unlock it again after the wake up call. That makes sure that even if the process that caused the pfault notification completed the subcode 0 interrupt it can not exit before the task has been unlocked again.
Problem-ID:
17661
Description:
qeth: Disable IPV6 for HiperSockets.
Symptom:
HiperSockets Network Concentrator does not work with newer HiperSockets microcode.
Problem:
IPV6 for HiperSockets is not fully implemented in the qeth driver. Since the latest HiperSockets microcode reports that IPV6 is supported, the qeth driver does not handle the IPV6 code paths correctly.
Solution:
Disable hard coded IPV6 support for HiperSockets in the qeth driver.
Problem-ID:
17438
Description:
zfcp: Unnecessarily alarming message about data underruns.
Symptom:
Message "A data underrun was detected..."
Problem:
Message is only informational, can occur during normal operation, and usually does not require user intervention. Message occurs with default logging level, though, and is apt to upset users.
Solution:
Change logging level of message, so that it does not occur with the zfcp default logging level.
Problem-ID:
17415
Description:
zfcp: Switch Reset leads to host crash.
Symptom:
Switch reset in a dual SAN with SVC attachment leads to Linux crash.
Problem:
Entries of fsf_req_list are deleted inside of list_for_each_entry() routine, which can not guarantee list consistency by entry deletion.
Solution:
Use list_for_each_safe() instead of list_for_each_entry() in function zfcp_fsf_req_dismiss_all().
Problem-ID:
16690

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)
+ linux-2.4.21-s390-17-june2003.diff (IBM)
+ linux-2.4.21-s390-18-fixed-june2003.diff (IBM)
+ linux-2.4.21-s390-19-june2003.diff (IBM)
+ linux-2.4.21-s390-20-june2003.diff (IBM)
+ linux-2.4.21-s390-21-june2003.diff (IBM)
+ linux-2.4.21-s390-22-june2003.diff (IBM)
+ linux-2.4.21-s390-23-june2003.diff (IBM)
+ linux-2.4.21-s390-24-june2003.diff (IBM)
+ linux-2.4.21-s390-25-june2003.diff (IBM)
+ linux-2.4.21-s390-26-june2003.diff (IBM)
+ linux-2.4.21-s390-27-june2003.diff (IBM)
+ linux-2.4.21-s390-28-june2003.diff (IBM)
+ linux-2.4.21-s390-29-june2003.diff (IBM)
+ linux-2.4.21-s390-30-june2003.diff (IBM)

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

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