[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:
parent
7c56533cf4
commit
2cec802980
1 changed files with 4 additions and 0 deletions
|
@ -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);
|
||||||
|
|
Loading…
Add table
Reference in a new issue