Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1e82b6f authored by Daniel Walker's avatar Daniel Walker Committed by James Bottomley
Browse files

[SCSI] qla2xxx: firmware semaphore to mutex

parent 0e973a24
Loading
Loading
Loading
Loading
+6 −5
Original line number Original line Diff line number Diff line
@@ -10,6 +10,7 @@
#include <linux/vmalloc.h>
#include <linux/vmalloc.h>
#include <linux/delay.h>
#include <linux/delay.h>
#include <linux/kthread.h>
#include <linux/kthread.h>
#include <linux/mutex.h>


#include <scsi/scsi_tcq.h>
#include <scsi/scsi_tcq.h>
#include <scsi/scsicam.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_ISP24XX	"ql2400_fw.bin"
#define FW_FILE_ISP25XX	"ql2500_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] = {
static struct fw_blob qla_fw_blobs[FW_BLOBS] = {
	{ .name = FW_FILE_ISP21XX, .segs = { 0x1000, 0 }, },
	{ .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];
		blob = &qla_fw_blobs[FW_ISP25XX];
	}
	}


	down(&qla_fw_lock);
	mutex_lock(&qla_fw_lock);
	if (blob->fw)
	if (blob->fw)
		goto out;
		goto out;


@@ -2678,7 +2679,7 @@ qla2x00_request_firmware(scsi_qla_host_t *ha)
	}
	}


out:
out:
	up(&qla_fw_lock);
	mutex_unlock(&qla_fw_lock);
	return blob;
	return blob;
}
}


@@ -2687,11 +2688,11 @@ qla2x00_release_firmware(void)
{
{
	int idx;
	int idx;


	down(&qla_fw_lock);
	mutex_lock(&qla_fw_lock);
	for (idx = 0; idx < FW_BLOBS; idx++)
	for (idx = 0; idx < FW_BLOBS; idx++)
		if (qla_fw_blobs[idx].fw)
		if (qla_fw_blobs[idx].fw)
			release_firmware(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
static pci_ers_result_t