|
@@ -8516,6 +8516,10 @@ static int ipr_alloc_mem(struct ipr_ioa_cfg *ioa_cfg)
|
|
|
BITS_TO_LONGS(ioa_cfg->max_devs_supported), GFP_KERNEL);
|
|
|
ioa_cfg->vset_ids = kzalloc(sizeof(unsigned long) *
|
|
|
BITS_TO_LONGS(ioa_cfg->max_devs_supported), GFP_KERNEL);
|
|
|
+
|
|
|
+ if (!ioa_cfg->target_ids || !ioa_cfg->array_ids
|
|
|
+ || !ioa_cfg->vset_ids)
|
|
|
+ goto out_free_res_entries;
|
|
|
}
|
|
|
|
|
|
for (i = 0; i < ioa_cfg->max_devs_supported; i++) {
|
|
@@ -8591,6 +8595,9 @@ out_free_vpd_cbs:
|
|
|
ioa_cfg->vpd_cbs, ioa_cfg->vpd_cbs_dma);
|
|
|
out_free_res_entries:
|
|
|
kfree(ioa_cfg->res_entries);
|
|
|
+ kfree(ioa_cfg->target_ids);
|
|
|
+ kfree(ioa_cfg->array_ids);
|
|
|
+ kfree(ioa_cfg->vset_ids);
|
|
|
goto out;
|
|
|
}
|
|
|
|