qla1280: Release spinlock when requesting firmware (closes: #543244)

svn path=/dists/trunk/linux-2.6/; revision=14176
This commit is contained in:
Ben Hutchings 2009-08-23 15:26:30 +00:00
parent 933e1459b8
commit 1ac47640d3
3 changed files with 37 additions and 0 deletions

1
debian/changelog vendored
View File

@ -61,6 +61,7 @@ linux-2.6 (2.6.31~rc7-1~experimental.1) UNRELEASED; urgency=low
* dvb-usb-af9005: remove firmware and disable
* Add warning on upgrade to a new upstream version where the system
appears to be missing necessary firmware files (closes: #541702)
* qla1280: Release spinlock when requesting firmware (closes: #543244)
[ Martin Michlmayr ]
* [armel/orion5x, armel/kirkwood] Set GPIO_SYSFS=y since these

View File

@ -0,0 +1,35 @@
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);

View File

@ -34,3 +34,4 @@
+ features/arm/openrd-machtype.patch
+ features/arm/openrd.patch
+ features/arm/openrd-sata.patch
+ bugfix/all/drivers-scsi-qla1280-request-firmware-unlocked.patch