Skip to content

Commit

Permalink
[SCSI] qla2xxx: Add cond_resched() calls during HBA flash manipulation.
Browse files Browse the repository at this point in the history
We're observing soft lockups during HBA FLASH retrieval and
update.  Add cond_resched() each time around the tight-loops
during flash read()s/write()s.

Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
  • Loading branch information
Andrew Vasquez authored and James Bottomley committed Mar 20, 2007
1 parent ed67708 commit 40a2e34
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions drivers/scsi/qla2xxx/qla_sup.c
Original file line number Diff line number Diff line change
Expand Up @@ -466,6 +466,7 @@ qla24xx_read_flash_dword(scsi_qla_host_t *ha, uint32_t addr)
udelay(10);
else
rval = QLA_FUNCTION_TIMEOUT;
cond_resched();
}

/* TODO: What happens if we time out? */
Expand Down Expand Up @@ -508,6 +509,7 @@ qla24xx_write_flash_dword(scsi_qla_host_t *ha, uint32_t addr, uint32_t data)
udelay(10);
else
rval = QLA_FUNCTION_TIMEOUT;
cond_resched();
}
return rval;
}
Expand Down Expand Up @@ -1255,6 +1257,7 @@ qla2x00_poll_flash(scsi_qla_host_t *ha, uint32_t addr, uint8_t poll_data,
}
udelay(10);
barrier();
cond_resched();
}
return status;
}
Expand Down Expand Up @@ -1403,6 +1406,7 @@ qla2x00_read_flash_data(scsi_qla_host_t *ha, uint8_t *tmp_buf, uint32_t saddr,
if (saddr % 100)
udelay(10);
*tmp_buf = data;
cond_resched();
}
}

Expand Down Expand Up @@ -1689,6 +1693,7 @@ qla2x00_write_optrom_data(struct scsi_qla_host *ha, uint8_t *buf,
rval = QLA_FUNCTION_FAILED;
break;
}
cond_resched();
}
} while (0);
qla2x00_flash_disable(ha);
Expand Down

0 comments on commit 40a2e34

Please sign in to comment.