Hi, > --- a/drivers/scsi/hpsa.c > +++ b/drivers/scsi/hpsa.c > @@ -1380,17 +1380,24 @@ static void hpsa_scsi_do_simple_cmd_core_if_no_lockup(struct ctlr_info *h, > } > } > > +#define MAX_DRIVER_CMD_RETRIES 25 > static void hpsa_scsi_do_simple_cmd_with_retry(struct ctlr_info *h, > struct CommandList *c, int data_direction) > { > - int retry_count = 0; > + int backoff_time = 10, retry_count = 0; > > do { > memset(c->err_info, 0, sizeof(*c->err_info)); > hpsa_scsi_do_simple_cmd_core(h, c); > retry_count++; > + if (retry_count > 3) { > + msleep(backoff_time); for 10ms isn't it better to avoid using msleep? Andi > + if (backoff_time < 1000) > + backoff_time *= 2; > + } > } while ((check_for_unit_attention(h, c) || > - check_for_busy(h, c)) && retry_count <= 3); > + check_for_busy(h, c)) && > + retry_count <= MAX_DRIVER_CMD_RETRIES); > hpsa_pci_unmap(h->pdev, c, 1, data_direction); > } -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html