diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2007-03-12 13:41:29 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-03-20 11:50:50 -0400 |
commit | fecf97882a8f1e9b52627c30322232c18060aa2c (patch) | |
tree | 141aed958f83c588f37ff7e4ed7c08909ec056ea /drivers/scsi/qla2xxx | |
parent | 40a2e34a94c336b716f631b2952d233e1ba76e3c (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.c | 6 |
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 * | |||
1453 | qla2x00_read_optrom_data(struct scsi_qla_host *ha, uint8_t *buf, | 1453 | qla2x00_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(®->ctrl_status, CSR_ISP_SOFT_RESET); | 1503 | WRT_REG_WORD(®->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); |