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

Commit 6c2f527c authored by matthias@kaehlcke.net's avatar matthias@kaehlcke.net Committed by James Bottomley
Browse files

[SCSI] qla2xxx: Convert vport_sem to a mutex



The semaphore vport_sem is used as a mutex.  Convert it to the
mutex API.

Signed-off-by: default avatarMatthias Kaehlcke <matthias@kaehlcke.net>
Signed-off-by: default avatarAndrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent e1e82b6f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1176,10 +1176,10 @@ qla24xx_vport_delete(struct fc_vport *fc_vport)
	qla24xx_disable_vp(vha);
	qla24xx_deallocate_vp_id(vha);

	down(&ha->vport_sem);
	mutex_lock(&ha->vport_lock);
	ha->cur_vport_count--;
	clear_bit(vha->vp_idx, ha->vp_idx_map);
	up(&ha->vport_sem);
	mutex_unlock(&ha->vport_lock);

	kfree(vha->node_name);
	kfree(vha->port_name);
+1 −1
Original line number Diff line number Diff line
@@ -2457,7 +2457,7 @@ typedef struct scsi_qla_host {
#define MBX_INTR_WAIT	2
#define MBX_UPDATE_FLASH_ACTIVE	3

	struct semaphore vport_sem;	/* Virtual port synchronization */
	struct mutex vport_lock;	/* Virtual port synchronization */
	struct completion mbx_cmd_comp;	/* Serialize mbx access */
	struct completion mbx_intr_comp;  /* Used for completion notification */

+2 −2
Original line number Diff line number Diff line
@@ -2807,9 +2807,9 @@ qla24xx_control_vp(scsi_qla_host_t *vha, int cmd)
	 */
	map = (vp_index - 1) / 8;
	pos = (vp_index - 1) & 7;
	down(&ha->vport_sem);
	mutex_lock(&ha->vport_lock);
	vce->vp_idx_map[map] |= 1 << pos;
	up(&ha->vport_sem);
	mutex_unlock(&ha->vport_lock);

	rval = qla2x00_issue_iocb(ha, vce, vce_dma, 0);
	if (rval != QLA_SUCCESS) {
+9 −9
Original line number Diff line number Diff line
@@ -32,12 +32,12 @@ qla24xx_allocate_vp_id(scsi_qla_host_t *vha)
	scsi_qla_host_t *ha = vha->parent;

	/* Find an empty slot and assign an vp_id */
	down(&ha->vport_sem);
	mutex_lock(&ha->vport_lock);
	vp_id = find_first_zero_bit(ha->vp_idx_map, ha->max_npiv_vports + 1);
	if (vp_id > ha->max_npiv_vports) {
		DEBUG15(printk ("vp_id %d is bigger than max-supported %d.\n",
		    vp_id, ha->max_npiv_vports));
		up(&ha->vport_sem);
		mutex_unlock(&ha->vport_lock);
		return vp_id;
	}

@@ -45,7 +45,7 @@ qla24xx_allocate_vp_id(scsi_qla_host_t *vha)
	ha->num_vhosts++;
	vha->vp_idx = vp_id;
	list_add_tail(&vha->vp_list, &ha->vp_list);
	up(&ha->vport_sem);
	mutex_unlock(&ha->vport_lock);
	return vp_id;
}

@@ -55,12 +55,12 @@ qla24xx_deallocate_vp_id(scsi_qla_host_t *vha)
	uint16_t vp_id;
	scsi_qla_host_t *ha = vha->parent;

	down(&ha->vport_sem);
	mutex_lock(&ha->vport_lock);
	vp_id = vha->vp_idx;
	ha->num_vhosts--;
	clear_bit(vp_id, ha->vp_idx_map);
	list_del(&vha->vp_list);
	up(&ha->vport_sem);
	mutex_unlock(&ha->vport_lock);
}

static scsi_qla_host_t *
@@ -145,9 +145,9 @@ qla24xx_enable_vp(scsi_qla_host_t *vha)
	}

	/* Initialize the new vport unless it is a persistent port */
	down(&ha->vport_sem);
	mutex_lock(&ha->vport_lock);
	ret = qla24xx_modify_vp_config(vha);
	up(&ha->vport_sem);
	mutex_unlock(&ha->vport_lock);

	if (ret != QLA_SUCCESS) {
		fc_vport_set_state(vha->fc_vport, FC_VPORT_FAILED);
@@ -437,10 +437,10 @@ qla24xx_create_vhost(struct fc_vport *fc_vport)
	vha->flags.init_done = 1;
	num_hosts++;

	down(&ha->vport_sem);
	mutex_lock(&ha->vport_lock);
	set_bit(vha->vp_idx, ha->vp_idx_map);
	ha->cur_vport_count++;
	up(&ha->vport_sem);
	mutex_unlock(&ha->vport_lock);

	return vha;

+1 −1
Original line number Diff line number Diff line
@@ -1632,7 +1632,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
	/* load the F/W, read paramaters, and init the H/W */
	ha->instance = num_hosts;

	init_MUTEX(&ha->vport_sem);
	mutex_init(&ha->vport_lock);
	init_completion(&ha->mbx_cmd_comp);
	complete(&ha->mbx_cmd_comp);
	init_completion(&ha->mbx_intr_comp);