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