[SCSI] qla2xxx: Correct locking during NVRAM manipulation.
Commit2c96d8d0c1
pushed the acquisition of hardware_lock to too fine a level, which in turn will cause problems with cond_resched()s added with40a2e34a94
. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
committed by
James Bottomley
parent
024e8ac044
commit
bbfb21daa3
@@ -869,11 +869,9 @@ qla24xx_write_nvram_data(scsi_qla_host_t *ha, uint8_t *buf, uint32_t naddr,
|
|||||||
uint32_t i;
|
uint32_t i;
|
||||||
uint32_t *dwptr;
|
uint32_t *dwptr;
|
||||||
struct device_reg_24xx __iomem *reg = &ha->iobase->isp24;
|
struct device_reg_24xx __iomem *reg = &ha->iobase->isp24;
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
ret = QLA_SUCCESS;
|
ret = QLA_SUCCESS;
|
||||||
|
|
||||||
spin_lock_irqsave(&ha->hardware_lock, flags);
|
|
||||||
/* Enable flash write. */
|
/* Enable flash write. */
|
||||||
WRT_REG_DWORD(®->ctrl_status,
|
WRT_REG_DWORD(®->ctrl_status,
|
||||||
RD_REG_DWORD(®->ctrl_status) | CSRX_FLASH_ENABLE);
|
RD_REG_DWORD(®->ctrl_status) | CSRX_FLASH_ENABLE);
|
||||||
@@ -907,7 +905,6 @@ qla24xx_write_nvram_data(scsi_qla_host_t *ha, uint8_t *buf, uint32_t naddr,
|
|||||||
WRT_REG_DWORD(®->ctrl_status,
|
WRT_REG_DWORD(®->ctrl_status,
|
||||||
RD_REG_DWORD(®->ctrl_status) & ~CSRX_FLASH_ENABLE);
|
RD_REG_DWORD(®->ctrl_status) & ~CSRX_FLASH_ENABLE);
|
||||||
RD_REG_DWORD(®->ctrl_status); /* PCI Posting. */
|
RD_REG_DWORD(®->ctrl_status); /* PCI Posting. */
|
||||||
spin_unlock_irqrestore(&ha->hardware_lock, flags);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user