aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx
diff options
context:
space:
mode:
authorAndrew Vasquez <andrew.vasquez@qlogic.com>2007-03-12 13:41:29 -0400
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-03-20 11:50:50 -0400
commitfecf97882a8f1e9b52627c30322232c18060aa2c (patch)
tree141aed958f83c588f37ff7e4ed7c08909ec056ea /drivers/scsi/qla2xxx
parent40a2e34a94c336b716f631b2952d233e1ba76e3c (diff)
[SCSI] qla2xxx: Drop acquisition of hardware_lock during flash manipulations.
There's no need given, I/O has been quiesced, RISC interrupts have been disabled, and finally the RISC has been paused. Flash manipulation on ISP21xx, ISP22xx, and ISP23xx parts requires the RISC to go through a full reset to recover. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/qla2xxx')
-rw-r--r--drivers/scsi/qla2xxx/qla_sup.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/drivers/scsi/qla2xxx/qla_sup.c b/drivers/scsi/qla2xxx/qla_sup.c
index 362d041419fc..206bda093da2 100644
--- a/drivers/scsi/qla2xxx/qla_sup.c
+++ b/drivers/scsi/qla2xxx/qla_sup.c
@@ -1453,7 +1453,6 @@ uint8_t *
1453qla2x00_read_optrom_data(struct scsi_qla_host *ha, uint8_t *buf, 1453qla2x00_read_optrom_data(struct scsi_qla_host *ha, uint8_t *buf,
1454 uint32_t offset, uint32_t length) 1454 uint32_t offset, uint32_t length)
1455{ 1455{
1456 unsigned long flags;
1457 uint32_t addr, midpoint; 1456 uint32_t addr, midpoint;
1458 uint8_t *data; 1457 uint8_t *data;
1459 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; 1458 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp;
@@ -1462,7 +1461,6 @@ qla2x00_read_optrom_data(struct scsi_qla_host *ha, uint8_t *buf,
1462 qla2x00_suspend_hba(ha); 1461 qla2x00_suspend_hba(ha);
1463 1462
1464 /* Go with read. */ 1463 /* Go with read. */
1465 spin_lock_irqsave(&ha->hardware_lock, flags);
1466 midpoint = ha->optrom_size / 2; 1464 midpoint = ha->optrom_size / 2;
1467 1465
1468 qla2x00_flash_enable(ha); 1466 qla2x00_flash_enable(ha);
@@ -1477,7 +1475,6 @@ qla2x00_read_optrom_data(struct scsi_qla_host *ha, uint8_t *buf,
1477 *data = qla2x00_read_flash_byte(ha, addr); 1475 *data = qla2x00_read_flash_byte(ha, addr);
1478 } 1476 }
1479 qla2x00_flash_disable(ha); 1477 qla2x00_flash_disable(ha);
1480 spin_unlock_irqrestore(&ha->hardware_lock, flags);
1481 1478
1482 /* Resume HBA. */ 1479 /* Resume HBA. */
1483 qla2x00_resume_hba(ha); 1480 qla2x00_resume_hba(ha);
@@ -1491,7 +1488,6 @@ qla2x00_write_optrom_data(struct scsi_qla_host *ha, uint8_t *buf,
1491{ 1488{
1492 1489
1493 int rval; 1490 int rval;
1494 unsigned long flags;
1495 uint8_t man_id, flash_id, sec_number, data; 1491 uint8_t man_id, flash_id, sec_number, data;
1496 uint16_t wd; 1492 uint16_t wd;
1497 uint32_t addr, liter, sec_mask, rest_addr; 1493 uint32_t addr, liter, sec_mask, rest_addr;
@@ -1504,7 +1500,6 @@ qla2x00_write_optrom_data(struct scsi_qla_host *ha, uint8_t *buf,
1504 sec_number = 0; 1500 sec_number = 0;
1505 1501
1506 /* Reset ISP chip. */ 1502 /* Reset ISP chip. */
1507 spin_lock_irqsave(&ha->hardware_lock, flags);
1508 WRT_REG_WORD(&reg->ctrl_status, CSR_ISP_SOFT_RESET); 1503 WRT_REG_WORD(&reg->ctrl_status, CSR_ISP_SOFT_RESET);
1509 pci_read_config_word(ha->pdev, PCI_COMMAND, &wd); 1504 pci_read_config_word(ha->pdev, PCI_COMMAND, &wd);
1510 1505
@@ -1697,7 +1692,6 @@ update_flash:
1697 } 1692 }
1698 } while (0); 1693 } while (0);
1699 qla2x00_flash_disable(ha); 1694 qla2x00_flash_disable(ha);
1700 spin_unlock_irqrestore(&ha->hardware_lock, flags);
1701 1695
1702 /* Resume HBA. */ 1696 /* Resume HBA. */
1703 qla2x00_resume_hba(ha); 1697 qla2x00_resume_hba(ha);