[SCSI] qla2xxx: Cleanup NPIV related functions

Removed repeated or unnecessary operations during vport
creation/deletion.

Signed-off-by: Shyam Sundar <shyam.sundar@qlogic.com>
Signed-off-by: Seokmann Ju <seokmann.ju@qlogic.com>
Signed-off-by: Ravi Anand <ravi.anand@qlogic.com>
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>

authored by

Seokmann Ju and committed by
James Bottomley
711c1d91 032d8dd7

+4 -23
-6
drivers/scsi/qla2xxx/qla_attr.c
··· 1200 1200 static int 1201 1201 qla24xx_vport_delete(struct fc_vport *fc_vport) 1202 1202 { 1203 - scsi_qla_host_t *ha = shost_priv(fc_vport->shost); 1204 1203 scsi_qla_host_t *vha = fc_vport->dd_data; 1205 1204 1206 1205 qla24xx_disable_vp(vha); 1207 1206 qla24xx_deallocate_vp_id(vha); 1208 - 1209 - mutex_lock(&ha->vport_lock); 1210 - ha->cur_vport_count--; 1211 - clear_bit(vha->vp_idx, ha->vp_idx_map); 1212 - mutex_unlock(&ha->vport_lock); 1213 1207 1214 1208 kfree(vha->node_name); 1215 1209 kfree(vha->port_name);
-1
drivers/scsi/qla2xxx/qla_def.h
··· 2170 2170 struct pci_dev *pdev; 2171 2171 2172 2172 unsigned long host_no; 2173 - unsigned long instance; 2174 2173 2175 2174 volatile struct { 2176 2175 uint32_t init_done :1;
-1
drivers/scsi/qla2xxx/qla_gbl.h
··· 62 62 extern int ql2xallocfwdump; 63 63 extern int ql2xextended_error_logging; 64 64 extern int ql2xqfullrampup; 65 - extern int num_hosts; 66 65 67 66 extern int qla2x00_loop_reset(scsi_qla_host_t *); 68 67 extern void qla2x00_abort_all_cmds(scsi_qla_host_t *, int);
+3 -8
drivers/scsi/qla2xxx/qla_mid.c
··· 43 43 44 44 set_bit(vp_id, ha->vp_idx_map); 45 45 ha->num_vhosts++; 46 + ha->cur_vport_count++; 46 47 vha->vp_idx = vp_id; 47 48 list_add_tail(&vha->vp_list, &ha->vp_list); 48 49 mutex_unlock(&ha->vport_lock); ··· 59 58 mutex_lock(&ha->vport_lock); 60 59 vp_id = vha->vp_idx; 61 60 ha->num_vhosts--; 61 + ha->cur_vport_count--; 62 62 clear_bit(vp_id, ha->vp_idx_map); 63 63 list_del(&vha->vp_list); 64 64 mutex_unlock(&ha->vport_lock); ··· 392 390 vha->parent = ha; 393 391 vha->fc_vport = fc_vport; 394 392 vha->device_flags = 0; 395 - vha->instance = num_hosts; 396 393 vha->vp_idx = qla24xx_allocate_vp_id(vha); 397 394 if (vha->vp_idx > ha->max_npiv_vports) { 398 395 DEBUG15(printk("scsi(%ld): Couldn't allocate vp_id.\n", ··· 429 428 host->max_cmd_len = MAX_CMDSZ; 430 429 host->max_channel = MAX_BUSES - 1; 431 430 host->max_lun = MAX_LUNS; 432 - host->unique_id = vha->instance; 431 + host->unique_id = host->host_no; 433 432 host->max_id = MAX_TARGETS_2200; 434 433 host->transportt = qla2xxx_transport_vport_template; 435 434 ··· 437 436 vha->host_no, vha)); 438 437 439 438 vha->flags.init_done = 1; 440 - num_hosts++; 441 - 442 - mutex_lock(&ha->vport_lock); 443 - set_bit(vha->vp_idx, ha->vp_idx_map); 444 - ha->cur_vport_count++; 445 - mutex_unlock(&ha->vport_lock); 446 439 447 440 return vha; 448 441
+1 -7
drivers/scsi/qla2xxx/qla_os.c
··· 27 27 */ 28 28 static struct kmem_cache *srb_cachep; 29 29 30 - int num_hosts; 31 30 int ql2xlogintimeout = 20; 32 31 module_param(ql2xlogintimeout, int, S_IRUGO|S_IRUSR); 33 32 MODULE_PARM_DESC(ql2xlogintimeout, ··· 1662 1663 } 1663 1664 host->can_queue = ha->request_q_length + 128; 1664 1665 1665 - /* load the F/W, read paramaters, and init the H/W */ 1666 - ha->instance = num_hosts; 1667 - 1668 1666 mutex_init(&ha->vport_lock); 1669 1667 init_completion(&ha->mbx_cmd_comp); 1670 1668 complete(&ha->mbx_cmd_comp); ··· 1709 1713 1710 1714 host->this_id = 255; 1711 1715 host->cmd_per_lun = 3; 1712 - host->unique_id = ha->instance; 1716 + host->unique_id = host->host_no; 1713 1717 host->max_cmd_len = MAX_CMDSZ; 1714 1718 host->max_channel = MAX_BUSES - 1; 1715 1719 host->max_lun = MAX_LUNS; ··· 1729 1733 1730 1734 ha->flags.init_done = 1; 1731 1735 ha->flags.online = 1; 1732 - 1733 - num_hosts++; 1734 1736 1735 1737 ret = scsi_add_host(host, &pdev->dev); 1736 1738 if (ret)