|
@@ -10,6 +10,7 @@
|
|
|
#include <linux/vmalloc.h>
|
|
|
#include <linux/delay.h>
|
|
|
#include <linux/kthread.h>
|
|
|
+#include <linux/mutex.h>
|
|
|
|
|
|
#include <scsi/scsi_tcq.h>
|
|
|
#include <scsi/scsicam.h>
|
|
@@ -2634,7 +2635,7 @@ qla2x00_timer(scsi_qla_host_t *ha)
|
|
|
#define FW_FILE_ISP24XX "ql2400_fw.bin"
|
|
|
#define FW_FILE_ISP25XX "ql2500_fw.bin"
|
|
|
|
|
|
-static DECLARE_MUTEX(qla_fw_lock);
|
|
|
+static DEFINE_MUTEX(qla_fw_lock);
|
|
|
|
|
|
static struct fw_blob qla_fw_blobs[FW_BLOBS] = {
|
|
|
{ .name = FW_FILE_ISP21XX, .segs = { 0x1000, 0 }, },
|
|
@@ -2665,7 +2666,7 @@ qla2x00_request_firmware(scsi_qla_host_t *ha)
|
|
|
blob = &qla_fw_blobs[FW_ISP25XX];
|
|
|
}
|
|
|
|
|
|
- down(&qla_fw_lock);
|
|
|
+ mutex_lock(&qla_fw_lock);
|
|
|
if (blob->fw)
|
|
|
goto out;
|
|
|
|
|
@@ -2678,7 +2679,7 @@ qla2x00_request_firmware(scsi_qla_host_t *ha)
|
|
|
}
|
|
|
|
|
|
out:
|
|
|
- up(&qla_fw_lock);
|
|
|
+ mutex_unlock(&qla_fw_lock);
|
|
|
return blob;
|
|
|
}
|
|
|
|
|
@@ -2687,11 +2688,11 @@ qla2x00_release_firmware(void)
|
|
|
{
|
|
|
int idx;
|
|
|
|
|
|
- down(&qla_fw_lock);
|
|
|
+ mutex_lock(&qla_fw_lock);
|
|
|
for (idx = 0; idx < FW_BLOBS; idx++)
|
|
|
if (qla_fw_blobs[idx].fw)
|
|
|
release_firmware(qla_fw_blobs[idx].fw);
|
|
|
- up(&qla_fw_lock);
|
|
|
+ mutex_unlock(&qla_fw_lock);
|
|
|
}
|
|
|
|
|
|
static pci_ers_result_t
|