|
@@ -47,16 +47,15 @@ qla24xx_allocate_vp_id(scsi_qla_host_t *vha)
|
|
|
|
|
|
/* Find an empty slot and assign an vp_id */
|
|
|
down(&ha->vport_sem);
|
|
|
- vp_id = find_first_zero_bit((unsigned long *)ha->vp_idx_map,
|
|
|
- MAX_MULTI_ID_FABRIC);
|
|
|
- if (vp_id > MAX_MULTI_ID_FABRIC) {
|
|
|
- DEBUG15(printk ("vp_id %d is bigger than MAX_MULTI_ID_FABRID\n",
|
|
|
- vp_id));
|
|
|
+ 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);
|
|
|
return vp_id;
|
|
|
}
|
|
|
|
|
|
- set_bit(vp_id, (unsigned long *)ha->vp_idx_map);
|
|
|
+ set_bit(vp_id, ha->vp_idx_map);
|
|
|
ha->num_vhosts++;
|
|
|
vha->vp_idx = vp_id;
|
|
|
list_add_tail(&vha->vp_list, &ha->vp_list);
|
|
@@ -73,7 +72,7 @@ qla24xx_deallocate_vp_id(scsi_qla_host_t *vha)
|
|
|
down(&ha->vport_sem);
|
|
|
vp_id = vha->vp_idx;
|
|
|
ha->num_vhosts--;
|
|
|
- clear_bit(vp_id, (unsigned long *)ha->vp_idx_map);
|
|
|
+ clear_bit(vp_id, ha->vp_idx_map);
|
|
|
list_del(&vha->vp_list);
|
|
|
up(&ha->vport_sem);
|
|
|
}
|
|
@@ -216,11 +215,7 @@ qla2x00_alert_all_vps(scsi_qla_host_t *ha, uint16_t *mb)
|
|
|
if (ha->parent)
|
|
|
return;
|
|
|
|
|
|
- i = find_next_bit((unsigned long *)ha->vp_idx_map,
|
|
|
- MAX_MULTI_ID_FABRIC + 1, 1);
|
|
|
- for (;i <= MAX_MULTI_ID_FABRIC;
|
|
|
- i = find_next_bit((unsigned long *)ha->vp_idx_map,
|
|
|
- MAX_MULTI_ID_FABRIC + 1, i + 1)) {
|
|
|
+ for_each_mapped_vp_idx(ha, i) {
|
|
|
vp_idx_matched = 0;
|
|
|
|
|
|
list_for_each_entry(vha, &ha->vp_list, vp_list) {
|
|
@@ -311,11 +306,7 @@ qla2x00_do_dpc_all_vps(scsi_qla_host_t *ha)
|
|
|
|
|
|
clear_bit(VP_DPC_NEEDED, &ha->dpc_flags);
|
|
|
|
|
|
- i = find_next_bit((unsigned long *)ha->vp_idx_map,
|
|
|
- MAX_MULTI_ID_FABRIC + 1, 1);
|
|
|
- for (;i <= MAX_MULTI_ID_FABRIC;
|
|
|
- i = find_next_bit((unsigned long *)ha->vp_idx_map,
|
|
|
- MAX_MULTI_ID_FABRIC + 1, i + 1)) {
|
|
|
+ for_each_mapped_vp_idx(ha, i) {
|
|
|
vp_idx_matched = 0;
|
|
|
|
|
|
list_for_each_entry(vha, &ha->vp_list, vp_list) {
|
|
@@ -356,9 +347,9 @@ qla24xx_vport_create_req_sanity_check(struct fc_vport *fc_vport)
|
|
|
|
|
|
/* Check up max-npiv-supports */
|
|
|
if (ha->num_vhosts > ha->max_npiv_vports) {
|
|
|
- DEBUG15(printk("scsi(%ld): num_vhosts %d is bigger than "
|
|
|
- "max_npv_vports %d.\n", ha->host_no,
|
|
|
- (uint16_t) ha->num_vhosts, (int) ha->max_npiv_vports));
|
|
|
+ DEBUG15(printk("scsi(%ld): num_vhosts %ud is bigger than "
|
|
|
+ "max_npv_vports %ud.\n", ha->host_no,
|
|
|
+ ha->num_vhosts, ha->max_npiv_vports));
|
|
|
return VPCERR_UNSUPPORTED;
|
|
|
}
|
|
|
return 0;
|
|
@@ -450,7 +441,7 @@ qla24xx_create_vhost(struct fc_vport *fc_vport)
|
|
|
num_hosts++;
|
|
|
|
|
|
down(&ha->vport_sem);
|
|
|
- set_bit(vha->vp_idx, (unsigned long *)ha->vp_idx_map);
|
|
|
+ set_bit(vha->vp_idx, ha->vp_idx_map);
|
|
|
ha->cur_vport_count++;
|
|
|
up(&ha->vport_sem);
|
|
|
|