|
@@ -5639,6 +5639,13 @@ lpfc_sli4_alloc_resource_identifiers(struct lpfc_hba *phba)
|
|
|
}
|
|
|
/* RPIs. */
|
|
|
count = phba->sli4_hba.max_cfg_param.max_rpi;
|
|
|
+ if (count <= 0) {
|
|
|
+ lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
|
|
|
+ "3279 Invalid provisioning of "
|
|
|
+ "rpi:%d\n", count);
|
|
|
+ rc = -EINVAL;
|
|
|
+ goto err_exit;
|
|
|
+ }
|
|
|
base = phba->sli4_hba.max_cfg_param.rpi_base;
|
|
|
longs = (count + BITS_PER_LONG - 1) / BITS_PER_LONG;
|
|
|
phba->sli4_hba.rpi_bmask = kzalloc(longs *
|
|
@@ -5661,6 +5668,13 @@ lpfc_sli4_alloc_resource_identifiers(struct lpfc_hba *phba)
|
|
|
|
|
|
/* VPIs. */
|
|
|
count = phba->sli4_hba.max_cfg_param.max_vpi;
|
|
|
+ if (count <= 0) {
|
|
|
+ lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
|
|
|
+ "3280 Invalid provisioning of "
|
|
|
+ "vpi:%d\n", count);
|
|
|
+ rc = -EINVAL;
|
|
|
+ goto free_rpi_ids;
|
|
|
+ }
|
|
|
base = phba->sli4_hba.max_cfg_param.vpi_base;
|
|
|
longs = (count + BITS_PER_LONG - 1) / BITS_PER_LONG;
|
|
|
phba->vpi_bmask = kzalloc(longs *
|
|
@@ -5683,6 +5697,13 @@ lpfc_sli4_alloc_resource_identifiers(struct lpfc_hba *phba)
|
|
|
|
|
|
/* XRIs. */
|
|
|
count = phba->sli4_hba.max_cfg_param.max_xri;
|
|
|
+ if (count <= 0) {
|
|
|
+ lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
|
|
|
+ "3281 Invalid provisioning of "
|
|
|
+ "xri:%d\n", count);
|
|
|
+ rc = -EINVAL;
|
|
|
+ goto free_vpi_ids;
|
|
|
+ }
|
|
|
base = phba->sli4_hba.max_cfg_param.xri_base;
|
|
|
longs = (count + BITS_PER_LONG - 1) / BITS_PER_LONG;
|
|
|
phba->sli4_hba.xri_bmask = kzalloc(longs *
|
|
@@ -5706,6 +5727,13 @@ lpfc_sli4_alloc_resource_identifiers(struct lpfc_hba *phba)
|
|
|
|
|
|
/* VFIs. */
|
|
|
count = phba->sli4_hba.max_cfg_param.max_vfi;
|
|
|
+ if (count <= 0) {
|
|
|
+ lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
|
|
|
+ "3282 Invalid provisioning of "
|
|
|
+ "vfi:%d\n", count);
|
|
|
+ rc = -EINVAL;
|
|
|
+ goto free_xri_ids;
|
|
|
+ }
|
|
|
base = phba->sli4_hba.max_cfg_param.vfi_base;
|
|
|
longs = (count + BITS_PER_LONG - 1) / BITS_PER_LONG;
|
|
|
phba->sli4_hba.vfi_bmask = kzalloc(longs *
|