aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi_error.c
diff options
context:
space:
mode:
authorBrian King <brking@linux.vnet.ibm.com>2007-04-19 14:59:59 -0400
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-05-06 10:33:12 -0400
commite555db930f7512491485cfc43df4306192835373 (patch)
treee1048808198385236bad31e778528725d53178c3 /drivers/scsi/scsi_error.c
parent2a4aa2c4b206c77b7cf522300ae9b616b0a883a4 (diff)
[SCSI] use sysfs configured timeout for EH Start Unit timeout
Use the sysfs configurable timeout when issuing a START_UNIT command from the scsi error handler. This is needed for devices which take longer than thirty seconds to respond to the start unit. The problem was observed when sending a start unit to a disk array device in an ipr RAID adapter, which results in the adapter firmware sending potentially multiple commands to physical devices as a result of this command, which ended up timing out sometimes. This patch does not change the default value used for this command. Signed-off-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/scsi_error.c')
-rw-r--r--drivers/scsi/scsi_error.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
index 3963e7013bd9..e8350c562d24 100644
--- a/drivers/scsi/scsi_error.c
+++ b/drivers/scsi/scsi_error.c
@@ -38,7 +38,6 @@
38#include "scsi_logging.h" 38#include "scsi_logging.h"
39 39
40#define SENSE_TIMEOUT (10*HZ) 40#define SENSE_TIMEOUT (10*HZ)
41#define START_UNIT_TIMEOUT (30*HZ)
42 41
43/* 42/*
44 * These should *probably* be handled by the host itself. 43 * These should *probably* be handled by the host itself.
@@ -936,7 +935,7 @@ static int scsi_eh_try_stu(struct scsi_cmnd *scmd)
936 935
937 for (i = 0; rtn == NEEDS_RETRY && i < 2; i++) 936 for (i = 0; rtn == NEEDS_RETRY && i < 2; i++)
938 rtn = scsi_send_eh_cmnd(scmd, stu_command, 6, 937 rtn = scsi_send_eh_cmnd(scmd, stu_command, 6,
939 START_UNIT_TIMEOUT, 0); 938 scmd->device->timeout, 0);
940 939
941 if (rtn == SUCCESS) 940 if (rtn == SUCCESS)
942 return 0; 941 return 0;