This patch contains the following linux kernel bug fixes:
Description:
cio: 5 minutes timeout after setting chpid offline.
Symptom:
After setting a path to a DASD offline at the SE, I/O hangs on that
DASD for 5 minutes, then continues.
Problem:
I/O for which an interrupt will not be reported after the channel
path has been disabled was not terminated by the common I/O layer,
causing the dasd MIH to hit after 5 minutes.
Solution:
Be more aggressive in terminating I/O after setting a channel path
offline. Also make sure to generate a fake irb if the device
driver issues an I/O request after being notified of the killed
I/O and clear residual information from the irb before trying to
start the delayed verification.
Problem-ID:
25507
Description:
cio: Fix some path grouping and path verification related problems.
Symptom:
Hangs when paths become unavailable and available.
Problem:
Multipath devices for which SetPGID is not supported are not
handled well.
Only the first path is checked for a previously set PGID.
PGIDs are not reset before re-boot.
Solution:
Use NOP ccws for path verification (sans path grouping) when Set
PGID is not supported.
Check for PGIDs already set with SensePGID on all paths and try
to find a common one. Moan if no common PGID can be found (and
use NOP verification). If no PGIDs have been set, use the css
global PGID (as before).
Immediately before re-boot, issue RESET CHANNEL PATH (rcp) on all
chpids.
Problem-ID:
25511
Description:
qeth: qethconf not adding ipa entries.
Symptom:
dmesg shows "qeth: Invalid IP address format!"
Problem:
incorrect / insufficient IP-address checking of qeth.
Solution:
Correct qeth IP-address checking (IPv4 and IPv6 addresses).
Cover correct function for IP address attribute storing
with "echo" and "echo -n", i.e. string termination with \n or \0.
Problem-ID:
24645
Description:
xpram: module parameter parsing.
Symptom:
Module parameters for xpram are not parsed or parsed in a wrong way.
Problem:
The xpram module uses the module_param_array directive with an
int parameter which causes the kernel to automatically parse
the passed numbers. This will cause errors if arguments are
omitted or cause wrong results if arguments have size qualifiers.
Solution:
Use module_param_array with charp and parse the arguments later.
Problem-ID:
25393
Description:
zfcp: ERP "deadlock" when registering a SCSI device or remote port (partII).
Symptom:
I/O stall when SCSI commands fail during SCSI device or remote
port registration.
Problem:
zfcp ERP waits for completion of SCSI device or remote port
registration. The registration failed and an adapter re-open is
triggered via scsi_eh. For the adapter re-open the ERP thread
of zfcp is needed but this thread is blocked.
Solution:
Change adapter re-open for bus/host reset and scsi_er_timer to
dismiss all FSF requests if ERP is already pending on the adapter.
Thus the ERP thread will not block and can process further
erp_actions.
Problem-ID:
23989
Description:
zfcp: failed paths remain unavailable.
Symptom:
If a path fails it cannot be recovered completely. Although
zfcp will detect that the path is up again the corresponding
SCSI device is offlined.
Problem:
SCSI device is offlined because zfcp does not use the dev_loss_tmo
and fc_remote_port_delete functionality provided by the fc
transport class.
Solution:
Make use of fc_remote_port_delete/dev_loss_tmo.
This prevents the SCSI stack from offlining SCSI devices
when a target port becomes unavailable.
Problem-ID:
23720
Everybody should apply this patch.
To create the complete linux kernel sources, the following
patches need to be applied in sequence: