36 lines
1.2 KiB
Diff
36 lines
1.2 KiB
Diff
|
commit 480c1e36532fc2783834d9582a11fbf1d493af42
|
||
|
Author: Ben Hutchings <ben@decadent.org.uk>
|
||
|
Date: Sun Aug 16 03:42:24 2009 +0100
|
||
|
|
||
|
qla1280: Drop host_lock while requesting firmware
|
||
|
|
||
|
request_firmware() may sleep and it appears to be safe to release the
|
||
|
spinlock here.
|
||
|
|
||
|
diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c
|
||
|
index 5defe5e..97cbf12 100644
|
||
|
--- a/drivers/scsi/qla1280.c
|
||
|
+++ b/drivers/scsi/qla1280.c
|
||
|
@@ -1642,8 +1642,10 @@ qla1280_load_firmware_pio(struct scsi_qla_host *ha)
|
||
|
uint16_t mb[MAILBOX_REGISTER_COUNT], i;
|
||
|
int err;
|
||
|
|
||
|
+ spin_unlock_irq(ha->host->host_lock);
|
||
|
err = request_firmware(&fw, ql1280_board_tbl[ha->devnum].fwname,
|
||
|
&ha->pdev->dev);
|
||
|
+ spin_lock_irq(ha->host->host_lock);
|
||
|
if (err) {
|
||
|
printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
|
||
|
ql1280_board_tbl[ha->devnum].fwname, err);
|
||
|
@@ -1701,8 +1703,10 @@ qla1280_load_firmware_dma(struct scsi_qla_host *ha)
|
||
|
return -ENOMEM;
|
||
|
#endif
|
||
|
|
||
|
+ spin_unlock_irq(ha->host->host_lock);
|
||
|
err = request_firmware(&fw, ql1280_board_tbl[ha->devnum].fwname,
|
||
|
&ha->pdev->dev);
|
||
|
+ spin_lock_irq(ha->host->host_lock);
|
||
|
if (err) {
|
||
|
printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
|
||
|
ql1280_board_tbl[ha->devnum].fwname, err);
|