Kernel patches

2004-10-07 kernel 2.4.21 bug fix patch 17 ("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-17-june2003.tar.gz / MD5 ... accumulated patch, recommended (2004-10-07)

linux-2.4.21-s390-17-june2003-patches.tar.gz / MD5 ... per-problem-patches, recommended (2004-10-07)

These patches contain the following linux kernel bug fixes:

Description:
dasd: Race in dasd_state_del_to_new().
Symptom:
Kernel Oops and BUG while setting device online/offline.
Problem:
In the list_for_each_entry loop free_page() is called. The page that was freed contains the next pointer on the lowmem_pool list.
Solution:
Use list_for_each_safe to prevent access to the element after it was freed.
Problem-ID:
11402
Description:
qdio: unnecessary queue checks with more than 64 thin interrupt devices.
Symptom:
When more than 64 thin interrupt capable devices exist, there is a small possibility that QDIO might perform unnecessary queue checks on these devices, resulting in slightly higher CPU consumption.
Problem:
There was an improper assignment statement in the qdio code.
Solution:
Fixed assignment statement.
Problem-ID:
11133
Description:
qeth: null-pointer dereference when doing query arp on a GuestLAN device.
Symptom:
When doing q query arp on a GuestLAN device (especially when the interface is not configured UP, yet) the kernel oopses as a result of a null-pointer dereference.
Problem:
Pointer to buffer to receive query arp data is initialized after a certain check which fails on GuestLAN when device is not configured UP.
Solution:
Initialize pointer before actually issuing the query arp command. That way, the pointer is ready for use in any case.
Problem-ID:
11134
Description:
qeth: wrong alignment of VLAN tag when using fake_ll.
Symptom:
When fake_ll is used the 4 bytes VLAN tag is misplaced in the header of received packets. Tools such as tcpdump display wrong data.
Problem:
VLAN tag was placed at the wrong position when fake_ll is used.
Solution:
Fix position of VLAN tag in conjunction with fake_ll.
Problem-ID:
11059
Description:
zfcp/zfcp_hbaapi: duplicate kfree when sending ELS commands.
Symptom:
Oopses and other weird error messages when sending ELS commands using zfcp_hbaapi.
Problem:
Struct send_els is freed twice.
Solution:
Do not free struct send_els in zfcp_fsf_send_els_handler because it is owned by upper layers.
Problem-ID:
11261
Description:
zfcp/zfcp_hbaapi: possible invalid kernel pointer dereference.
Symptom:
Possible invalid kernel pointer dereference on completion of ELS commands.
Problem:
Completion in zfcp_send_els structure should not be accessed directly but from a corresponding els_request_handler function in zfcp_fsf_send_els_handler() because the els_request_handler might free the zfcp_send_els structure.
Solution:
Call complete() of completion for ELS commands from corresponding els_request_handler function like it is done for CT requests.
Problem-ID:
11308
Description:
zfcp_hbaapi: possible instability due to incorrect serialization in read/ioctl.
Symptom:
Required serialization of read() and ioctl() methods for device zfcp_hbaapi is not guaranteed.
Problem:
Return code of down_interruptible is not checked.
Solution:
Check return code of down_interruptible and return -ERESTARTSYS if needed.
Problem-ID:
11260
Description:
zfcp: Kernel stack frame for zfcp_cfdc_dev_ioctl() is too big.
Symptom:
Each ioctl-call to the CFDC interface of the zfcp module caused an excessive stack frame of 424 bytes being allocated.
Problem:
The structure sense_data was declared as local variable (on stack).
Solution:
Use kmalloc() to allocate this structure.
Problem-ID:
11518
Description:
zfcp: Wrong handling of failed FSF requests for ELS commands.
Symptom:
Failure of ELS commands, e.g. link test.
Problem:
Wrong return value was set in zfcp_fsf_send_els_handler() for an FSF request with a bad FSF protocol status.
Solution:
Have zfcp_fsf_send_els_handler() return error code for early detected detected errors, like a bad FSF protocol status.
Problem-ID:
11520

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)

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.