]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - src/patches/suse-2.6.27.31/patches.fixes/scsi-ipr-fix-PCI-permanent-error-handler
Move xen patchset to new version's subdir.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.fixes / scsi-ipr-fix-PCI-permanent-error-handler
CommitLineData
00e5a55c
BS
1From: Kleber S. Souza <klebers@linux.vnet.ibm.com>
2Date: Mon, 4 May 2009 13:41:02 +0000 (-0300)
3Subject: [SCSI] ipr: fix PCI permanent error handler
4Patch-mainline: 2.6.31, expected
5References: bnc#505925
6
7[SCSI] ipr: fix PCI permanent error handler
8
9The ipr driver can hang if it encounters enough PCI errors
10to trigger the permanent error handler. The driver will attempt
11to initiate a "bringdown" of the adapter and fail all pending
12ops back. However, this bringdown is unlike any other bringdown
13of the adapter in the code as the driver. In this code path we
14end up failing back ops with allow_cmds still set to 1. This results
15in some commands, the HCAM commands in particular, getting immediately
16re-issued to the adapter on the done call, which results in
17an infinite loop in ipr_fail_all_ops. Fix this by setting allow_cmds
18to zero in this path.
19
20Signed-off-by: Kleber S. Souza <klebers@linux.vnet.ibm.com>
21[brking@linux.vnet.ibm.com: alternate patch substituted]
22Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
23Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
24Acked-by: Jeff Mahoney <jeffm@suse.com>
25---
26
27 drivers/scsi/ipr.c | 1 +
28 1 file changed, 1 insertion(+)
29
30--- a/drivers/scsi/ipr.c
31+++ b/drivers/scsi/ipr.c
32@@ -7007,6 +7007,7 @@ static void ipr_pci_perm_failure(struct
33 ioa_cfg->sdt_state = ABORT_DUMP;
34 ioa_cfg->reset_retries = IPR_NUM_RESET_RELOAD_RETRIES;
35 ioa_cfg->in_ioa_bringdown = 1;
36+ ioa_cfg->allow_cmds = 0;
37 ipr_initiate_ioa_reset(ioa_cfg, IPR_SHUTDOWN_NONE);
38 spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags);
39 }