[kernel] r14176 - in dists/trunk/linux-2.6/debian: . patches/bugfix/all patches/series
Ben Hutchings
benh at alioth.debian.org
Sun Aug 23 15:26:32 UTC 2009
Author: benh
Date: Sun Aug 23 15:26:30 2009
New Revision: 14176
Log:
qla1280: Release spinlock when requesting firmware (closes: #543244)
Added:
dists/trunk/linux-2.6/debian/patches/bugfix/all/drivers-scsi-qla1280-request-firmware-unlocked.patch
Modified:
dists/trunk/linux-2.6/debian/changelog
dists/trunk/linux-2.6/debian/patches/series/base
Modified: dists/trunk/linux-2.6/debian/changelog
==============================================================================
--- dists/trunk/linux-2.6/debian/changelog Sun Aug 23 15:22:20 2009 (r14175)
+++ dists/trunk/linux-2.6/debian/changelog Sun Aug 23 15:26:30 2009 (r14176)
@@ -61,6 +61,7 @@
* 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
Added: dists/trunk/linux-2.6/debian/patches/bugfix/all/drivers-scsi-qla1280-request-firmware-unlocked.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/all/drivers-scsi-qla1280-request-firmware-unlocked.patch Sun Aug 23 15:26:30 2009 (r14176)
@@ -0,0 +1,35 @@
+commit 480c1e36532fc2783834d9582a11fbf1d493af42
+Author: Ben Hutchings <ben at 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);
Modified: dists/trunk/linux-2.6/debian/patches/series/base
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/base Sun Aug 23 15:22:20 2009 (r14175)
+++ dists/trunk/linux-2.6/debian/patches/series/base Sun Aug 23 15:26:30 2009 (r14176)
@@ -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
More information about the Kernel-svn-changes
mailing list