aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2007-07-27 13:00:48 -0400
committerJames Bottomley <jejb@mulgrave.localdomain>2007-10-12 14:50:48 -0400
commit24430458bb924e371ff894e26bfa9f73707f53fb (patch)
treea2daedb710c7f41a80efd33be16412bef719d91b /drivers
parent095862ab982a56fb4ea237420bb8fcf1393ca287 (diff)
[SCSI] arcmsr: Fix hardware wait loops
Remove _interruptible, since receiving a signal while waiting on a hardware condition will simply cause the driver to busy-wait. Using msleep_interruptible() is rarely the right thing to do, when waiting on a hardware condition to change. Also, replace msleep with ssleep while doing this, where appropriate. [jejb: fix up merge conflict] Signed-off-by: Jeff Garzik <jeff@garzik.org> Acked-by: Nick Cheng <nick.cheng@areca.com.tw> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/arcmsr/arcmsr_hba.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/arcmsr/arcmsr_hba.c b/drivers/scsi/arcmsr/arcmsr_hba.c
index 50e1310ce983..7832a10dc47f 100644
--- a/drivers/scsi/arcmsr/arcmsr_hba.c
+++ b/drivers/scsi/arcmsr/arcmsr_hba.c
@@ -2092,8 +2092,10 @@ static void arcmsr_iop_reset(struct AdapterControlBlock *acb)
2092 if (atomic_read(&acb->ccboutstandingcount) != 0) { 2092 if (atomic_read(&acb->ccboutstandingcount) != 0) {
2093 /* talk to iop 331 outstanding command aborted */ 2093 /* talk to iop 331 outstanding command aborted */
2094 arcmsr_abort_allcmd(acb); 2094 arcmsr_abort_allcmd(acb);
2095
2095 /* wait for 3 sec for all command aborted*/ 2096 /* wait for 3 sec for all command aborted*/
2096 ssleep(3); 2097 ssleep(3);
2098
2097 /* disable all outbound interrupt */ 2099 /* disable all outbound interrupt */
2098 intmask_org = arcmsr_disable_outbound_ints(acb); 2100 intmask_org = arcmsr_disable_outbound_ints(acb);
2099 /* clear all outbound posted Q */ 2101 /* clear all outbound posted Q */