 |

Kernel 2.6 based: October 2005 stream
|
 |
|
 |
|
jump to next patch
jump
to xref jump to Download
Area
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-15-october2005.tar.gz
/ MD5 ... accumulated patch, recommended (2007-05-31)
linux-2.6.16-s390-15-october2005-patches.tar.gz
/ MD5 ... per-problem-patches, recommended (2007-05-31)
This patch contains the following linux kernel bug fixes:
| Description: |
cio: Device status validity. |
| Symptom: |
Device driver assumes final status for request while it is not. |
| Problem: |
Device status in IRB contains channel end/device end, but it is
invalid. |
| Solution: |
Only accumulate device status field in IRB if it is valid. |
| Problem-ID: |
34136 |
| Description: |
cio: Handle clear interrupts correctly. |
| Symptom: |
ioctl(BIODASDDISABLE) hangs. |
| Problem: |
The dasd driver issues a clear subchannel for an I/O for which
no final status has been received. The common I/O layer had
accumulated a primary status into its internal IRB to which
the interrupt for the clear subchannel is accumulated,
resulting in an IRB not recognized as final status and not
delivered to the dasd driver. |
| Solution: |
Wipe internal IRB if the clear function bit is set before
accumulating bits from the irb in order to follow hardware
behavior. |
| Problem-ID: |
32612 |
| Description: |
cio: Re-start path verification after aborting internal I/O. |
| Symptom: |
Devices are not informed of a no-path state but get an deferred
cc=3 when trying to start I/O. |
| Problem: |
Path verification triggered by changes to the available CHPIDs
will be interrupted by another change but not re-started. This
results in an invalid path mask. |
| Solution: |
Make sure to completely re-start path verification when changing
the available paths. |
| Problem-ID: |
33533 |
| Description: |
cmm2: locking problem in shmem_getpage. |
| Symptom: |
Message "BUG: sleeping function called from invalid context at
/include/linux/pagemap.h:155". |
| Problem: |
shmem_getpage takes a spinlock then does a lookup in the swap
cache. If a page is found but can not be made stable it is
discarded. The page_discard function is called while still
holding the lock and calls lock_page which might sleep. |
| Solution: |
Release the lock before discarding the page and then re-acquire
the lock. |
| Problem-ID: |
- |
| Note: |
applicable for 64-bit Linux, only |
| Description: |
dasd: Add sysfs-attribute 'status' and generate uevent(CHANGE)
for the ccw-device. |
| Symptom: |
Device status not available in user-space. |
| Problem: |
Since status information for DASD devices is not available in
user-space, it is not possible for user-space applications to
implement appropriate processing. |
| Solution: |
Make status available via sysfs and generate uevent for each
status change. |
| Problem-ID: |
29168 |
| Description: |
dasd: Race condition in dasd_eckd_dump_sense. |
| Symptom: |
Kernel crash in dasd_eckd_dump_sense. |
| Problem: |
Data access outside allocated buffer because the routine did
not take care about IDALs. |
| Solution: |
Check for IDALs flag set in CCW. |
| Problem-ID: |
- |
| Description: |
kernel: Enable user-copy functions for non-GPL modules. |
| Symptom: |
Non-GPL kernel modules cannot use user-copy functions. |
| Problem: |
The uaccess_ops struct is exported via EXPORT_SYMBOL_GPL,
which prevents all non-GPL modules from using any user-copy
function. |
| Solution: |
Export uaccess_ops struct via EXPORT_SYMBOL. |
| Problem-ID: |
- |
| Description: |
kernel: Handling of page table entries of discarded swap pages. |
| Symptom: |
Anonymous, swapped memory gets zero in the forked process. |
| Problem: |
The copy of the page table entries is not done correctly
when copy_page_range is called e.g. by fork for a page table
that contains entries to discarded swap pages. |
| Solution: |
Fix the placement of the check for discarded pages in
copy_one_pte and replace PTEs to a discarded swap pages
with the correct swap entry. |
| Problem-ID: |
- |
| Description: |
kernel: Handling of remap_file_pages and discarded pages. |
| Symptom: |
Pages remapped with remap_file_pages appear at the wrong
offset in the mmap after the pages went through a discard. |
| Problem: |
The PTEs of a non-linear mapping are replaced with the
empty PTE when a page gets discarded. |
| Solution: |
Replace the PTEs of non-linear mappings of discarded pages
with the correct file PTE. |
| Problem-ID: |
- |
| Note: |
applicable for 64-bit Linux, only |
| Description: |
qdio: Time calculation is wrong. |
| Symptom: |
Time calculation in qdio_get_micros does not
return microseconds as expected. |
| Problem: |
The return value of get_clock is shifted by 10,
which does not return microseconds. |
| Solution: |
Use value 12 for shift operation to get microseconds. |
| Problem-ID: |
34529 |
| Description: |
qdio: Too many interrupts on qdio-driven devices. |
| Symptom: |
qdio is getting more interrupts than needed. |
| Problem: |
Appropriate Data Channel is used without QEBSM support.
When receiving a bunch of SBALs on the input queue
which are in state PRIMED, qdio is processing them
sequentially and set their state from 0x82 to 0x80.
But it never sets the last one to 0x81 which should be
set to avoid further interrupts. |
| Solution: |
On the last SBAL set its state to 0x81 to avoid
further interrupts. |
| Problem-ID: |
34522 |
| Note: |
applicable for 64-bit Linux, only |
| Description: |
qdio: System hang with zfcp in case of adapter problems. |
| Symptom: |
System hang after enforced zfcp adapter outage for
Linux on System z running under z/VM. |
| Problem: |
The QDIO-QEBSM-support (V=V-support) is active.
The enforced adapter outage results in a ccq-value 65
returned from the adapter after an outbound request,
where qdio-buffers have to be set to PRIMED state.
In case of a returned ccq value 65 none of the qdio
buffers might be set to PRIMED, which causes an endless
loop in the qdio-code. |
| Solution: |
Stop trying to set qdio-buffers to PRIMED state, if an
attempt returns with 0 as the number of processed
buffers. |
| Problem-ID: |
33046 |
| Description: |
qeth: Keep set layer2 MAC address (Virtual NIC recovery). |
| Symptom: |
After Virtual NIC recovery old MAC address is not kept. |
| Problem: |
If a z/VM Virtual NIC is coupled to a LAN of type.
QDIO ETHER, z/VM generates an initial MAC address.
This MAC address can be changed later on. But after
qeth recovery of such a device, a changed MAC address
is lost and the z/VM-generated MAC address is used. |
| Solution: |
If running under z/VM with a Virtual NIC layer2 qeth
interface, a set MAC address should be kept after qeth
recovery.
This is especially important for a bonding setup over
Virtual NICs. |
| Problem-ID: |
33480 |
| Description: |
zfcp: Fix initialization of zfcp FSF timer. |
| Symptom: |
The command san_disc -c PORT_LIST does not show all the
available PORTs. Furthermore, it gives different results each time. |
| Problem: |
FSF timer was not correctly initialized, it was already expired
at the time of initialization. |
| Solution: |
Correctly initialize the timer with jiffies+timeout. |
| Problem-ID: |
32828 |
| Note: |
applicable for 64-bit Linux, only |
| Description: |
zfcp: I/O stall after deleting and path checker changes after
re-enabling zfcp device. |
| Symptom: |
Setting one zfcp device offline using chccwdev in a multipath
environment and waiting will lead to I/O stall on all paths.
After setting the zfcp device back online using chccwdev,
the devices with I/O stall will have a different path checker. |
| Problem: |
Devices corresponding to the deleted units are never freed. This
has the effect that 'slave_destroy' is never called and zfcp
still thinks that this unit is registered
(ZFCP_STATUS_UNIT_REGISTERED is still set). Hence the erp
routine is not called correctly and the unit is not enabled
properly. |
| Solution: |
Do not delete rport and the sdev. Just set the host to block on
'offline'. Host online would then just remove the blocked status
and everything would be good again. |
| Problem-ID: |
32746 |
| Note: |
applicable for 64-bit Linux, only |
| Description: |
zfcp: I/O stall with blast during cable pull with linebreaker. |
| Symptom: |
Running I/O on many filesystems while simulating 1.5min
cable pulls between storage system and switch results in
I/O stalls on most filesystems. |
| Problem: |
The scsi_er_timer for an adapter was used twice.
One usage was for an abort or a unit reset. Second
usage must have happened when zfcp_scsi_eh_timed_out handler
was called. Problem is that the timer was deleted by one
user and the adapter is stuck. So there is no timer active to
trigger an adapter re-open. |
| Solution: |
Introduced struct timer_list to struct zfcp_fsf_req.
So if a timer is needed for an FSF request, fsf_req->timer
can be used. |
| Problem-ID: |
27943 |
| Note: |
applicable for 64-bit Linux, only |
| Description: |
zfcp_hbaapi: Add license macro. |
| Symptom: |
Loading of zfcp_hbaapi module fails with error message:
"Unknown symbol in module, or unknown parameter (see dmesg)"
dmesg shows:
"zfcp_hbaapi: module license 'unspecified' taints kernel.
zfcp_hbaapi: Unknown symbol uaccess". |
| Problem: |
Only GPL modules are allowed to access the kernel function uaccess. |
| Solution: |
Add the license macro MODULE_LICENSE("GPL") to zfcp_hbaapi. The
GPL license was already specified in the file header, now the
kernel module loader knows about it, too. |
| Problem-ID: |
32724 |
| Note: |
applicable for 64-bit Linux, only |
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)
|
|
 |
|
 |