[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>
This commit is contained in:
parent
095862ab98
commit
24430458bb
@ -2092,8 +2092,10 @@ static void arcmsr_iop_reset(struct AdapterControlBlock *acb)
|
|||||||
if (atomic_read(&acb->ccboutstandingcount) != 0) {
|
if (atomic_read(&acb->ccboutstandingcount) != 0) {
|
||||||
/* talk to iop 331 outstanding command aborted */
|
/* talk to iop 331 outstanding command aborted */
|
||||||
arcmsr_abort_allcmd(acb);
|
arcmsr_abort_allcmd(acb);
|
||||||
|
|
||||||
/* wait for 3 sec for all command aborted*/
|
/* wait for 3 sec for all command aborted*/
|
||||||
ssleep(3);
|
ssleep(3);
|
||||||
|
|
||||||
/* disable all outbound interrupt */
|
/* disable all outbound interrupt */
|
||||||
intmask_org = arcmsr_disable_outbound_ints(acb);
|
intmask_org = arcmsr_disable_outbound_ints(acb);
|
||||||
/* clear all outbound posted Q */
|
/* clear all outbound posted Q */
|
||||||
|
Loading…
Reference in New Issue
Block a user