[SCSI] arcmsr: Fix hardware wait loops
authorJeff Garzik <jeff@garzik.org>
Fri, 27 Jul 2007 17:00:48 +0000 (13:00 -0400)
committerJames Bottomley <jejb@mulgrave.localdomain>
Fri, 12 Oct 2007 18:50:48 +0000 (14:50 -0400)
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>
drivers/scsi/arcmsr/arcmsr_hba.c

index 50e1310..7832a10 100644 (file)
@@ -2092,8 +2092,10 @@ static void arcmsr_iop_reset(struct AdapterControlBlock *acb)
        if (atomic_read(&acb->ccboutstandingcount) != 0) {
                /* talk to iop 331 outstanding command aborted */
                arcmsr_abort_allcmd(acb);
+
                /* wait for 3 sec for all command aborted*/
                ssleep(3);
+
                /* disable all outbound interrupt */
                intmask_org = arcmsr_disable_outbound_ints(acb);
                /* clear all outbound posted Q */