[SCSI] qla1280: Drop host_lock while requesting firmware
request_firmware() may sleep and it appears to be safe to release the spinlock here. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Cc: stable@kernel.org Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
committed by
James Bottomley
parent
7c56533cf4
commit
2cec802980
@@ -1640,8 +1640,10 @@ qla1280_load_firmware_pio(struct scsi_qla_host *ha)
|
|||||||
uint16_t mb[MAILBOX_REGISTER_COUNT], i;
|
uint16_t mb[MAILBOX_REGISTER_COUNT], i;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
spin_unlock_irq(ha->host->host_lock);
|
||||||
err = request_firmware(&fw, ql1280_board_tbl[ha->devnum].fwname,
|
err = request_firmware(&fw, ql1280_board_tbl[ha->devnum].fwname,
|
||||||
&ha->pdev->dev);
|
&ha->pdev->dev);
|
||||||
|
spin_lock_irq(ha->host->host_lock);
|
||||||
if (err) {
|
if (err) {
|
||||||
printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
|
printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
|
||||||
ql1280_board_tbl[ha->devnum].fwname, err);
|
ql1280_board_tbl[ha->devnum].fwname, err);
|
||||||
@@ -1699,8 +1701,10 @@ qla1280_load_firmware_dma(struct scsi_qla_host *ha)
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
spin_unlock_irq(ha->host->host_lock);
|
||||||
err = request_firmware(&fw, ql1280_board_tbl[ha->devnum].fwname,
|
err = request_firmware(&fw, ql1280_board_tbl[ha->devnum].fwname,
|
||||||
&ha->pdev->dev);
|
&ha->pdev->dev);
|
||||||
|
spin_lock_irq(ha->host->host_lock);
|
||||||
if (err) {
|
if (err) {
|
||||||
printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
|
printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
|
||||||
ql1280_board_tbl[ha->devnum].fwname, err);
|
ql1280_board_tbl[ha->devnum].fwname, err);
|
||||||
|
Reference in New Issue
Block a user