]> git.ipfire.org Git - ipfire-2.x.git/blob - src/patches/suse-2.6.27.31/patches.arch/s390-15-03-zfcp-recover-stall.patch
Add a patch to fix Intel E100 wake-on-lan problems.
[ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.arch / s390-15-03-zfcp-recover-stall.patch
1 From: Gerald Schaefer <geraldsc@de.ibm.com>
2 Subject: zfcp: Recover from stalled outbound queue
3 References: bnc#518291,LTC#54460
4
5 Symptom: In some error scenarious, the channel can stall. To
6 Linux this looks like a stall in the outbound queue.
7 Linux has to recover this.
8 Problem: There is no trigger to recover the queues if the outbound
9 queue stalls.
10 Solution: When trying to issue a non-SCSI command, zfcp waits for
11 5 seconds to get a free SBAL in the queue. Use this timeout
12 as a trigger: If after 5 seconds there is no free SBAL,
13 assume a stalled outbound queue and trigger recovery.
14
15 Acked-by: John Jolly <jjolly@suse.de>
16 ---
17 drivers/s390/scsi/zfcp_dbf.c | 2 +-
18 drivers/s390/scsi/zfcp_fsf.c | 5 ++++-
19 2 files changed, 5 insertions(+), 2 deletions(-)
20
21 --- a/drivers/s390/scsi/zfcp_fsf.c 2009-06-23 14:24:48.000000000 +0200
22 +++ b/drivers/s390/scsi/zfcp_fsf.c 2009-06-23 14:26:00.000000000 +0200
23 @@ -668,8 +668,11 @@ static int zfcp_fsf_req_sbal_get(struct
24 zfcp_fsf_sbal_check(adapter), 5 * HZ);
25 if (ret > 0)
26 return 0;
27 - if (!ret)
28 + if (!ret) {
29 atomic_inc(&adapter->qdio_outb_full);
30 + /* assume hanging outbound queue, try queue recovery */
31 + zfcp_erp_adapter_reopen(adapter, 0, 77, NULL);
32 + }
33
34 spin_lock_bh(&adapter->req_q_lock);
35 return -EIO;
36 --- a/drivers/s390/scsi/zfcp_dbf.c 2009-06-23 14:20:41.000000000 +0200
37 +++ b/drivers/s390/scsi/zfcp_dbf.c 2009-06-23 14:25:50.000000000 +0200
38 @@ -567,7 +567,7 @@ static const char *zfcp_rec_dbf_ids[] =
39 [74] = "unit recovery follow-up after successful port recovery",
40 [75] = "port recovery retry after failure",
41 [76] = "unit recovery retry after failure",
42 - [77] = "",
43 + [77] = "adapter reopen from queue stall",
44 [78] = "duplicate request id",
45 [79] = "link down",
46 [80] = "exclusive read-only unit access unsupported",