cnss2: Add NULL check for 'cfg_arr' pointer

Add NULL check for 'cfg_arr' pointer before passing to
'of_property_read_string_array' function

Change-Id: Ief30b57145af5842cfd8e9533fcc5d15ab5ea0f1
CRs-Fixed: 3409579
This commit is contained in:
Sai Kumar Kunchala
2023-02-17 19:24:51 +05:30
committed by Madan Koyyalamudi
父節點 dcbdb2f5fb
當前提交 3b1df6da05

查看文件

@@ -1619,13 +1619,16 @@ void cnss_power_misc_params_init(struct cnss_plat_data *plat_priv)
plat_priv->pdc_init_table = plat_priv->pdc_init_table =
kcalloc(plat_priv->pdc_init_table_len, kcalloc(plat_priv->pdc_init_table_len,
sizeof(char *), GFP_KERNEL); sizeof(char *), GFP_KERNEL);
ret = if (plat_priv->pdc_init_table) {
of_property_read_string_array(dev->of_node, ret = of_property_read_string_array(dev->of_node,
"qcom,pdc_init_table", "qcom,pdc_init_table",
plat_priv->pdc_init_table, plat_priv->pdc_init_table,
plat_priv->pdc_init_table_len); plat_priv->pdc_init_table_len);
if (ret < 0) if (ret < 0)
cnss_pr_err("Failed to get PDC Init Table\n"); cnss_pr_err("Failed to get PDC Init Table\n");
} else {
cnss_pr_err("Failed to alloc PDC Init Table mem\n");
}
} else { } else {
cnss_pr_dbg("PDC Init Table not configured\n"); cnss_pr_dbg("PDC Init Table not configured\n");
} }
@@ -1637,13 +1640,16 @@ void cnss_power_misc_params_init(struct cnss_plat_data *plat_priv)
plat_priv->vreg_pdc_map = plat_priv->vreg_pdc_map =
kcalloc(plat_priv->vreg_pdc_map_len, kcalloc(plat_priv->vreg_pdc_map_len,
sizeof(char *), GFP_KERNEL); sizeof(char *), GFP_KERNEL);
ret = if (plat_priv->vreg_pdc_map) {
of_property_read_string_array(dev->of_node, ret = of_property_read_string_array(dev->of_node,
"qcom,vreg_pdc_map", "qcom,vreg_pdc_map",
plat_priv->vreg_pdc_map, plat_priv->vreg_pdc_map,
plat_priv->vreg_pdc_map_len); plat_priv->vreg_pdc_map_len);
if (ret < 0) if (ret < 0)
cnss_pr_err("Failed to get VReg PDC Mapping\n"); cnss_pr_err("Failed to get VReg PDC Mapping\n");
} else {
cnss_pr_err("Failed to alloc VReg PDC mem\n");
}
} else { } else {
cnss_pr_dbg("VReg PDC Mapping not configured\n"); cnss_pr_dbg("VReg PDC Mapping not configured\n");
} }
@@ -1654,12 +1660,16 @@ void cnss_power_misc_params_init(struct cnss_plat_data *plat_priv)
if (plat_priv->pmu_vreg_map_len > 0) { if (plat_priv->pmu_vreg_map_len > 0) {
plat_priv->pmu_vreg_map = kcalloc(plat_priv->pmu_vreg_map_len, plat_priv->pmu_vreg_map = kcalloc(plat_priv->pmu_vreg_map_len,
sizeof(char *), GFP_KERNEL); sizeof(char *), GFP_KERNEL);
ret = if (plat_priv->pmu_vreg_map) {
of_property_read_string_array(dev->of_node, "qcom,pmu_vreg_map", ret = of_property_read_string_array(dev->of_node,
plat_priv->pmu_vreg_map, "qcom,pmu_vreg_map",
plat_priv->pmu_vreg_map_len); plat_priv->pmu_vreg_map,
if (ret < 0) plat_priv->pmu_vreg_map_len);
cnss_pr_err("Fail to get PMU VReg Mapping\n"); if (ret < 0)
cnss_pr_err("Fail to get PMU VReg Mapping\n");
} else {
cnss_pr_err("Failed to alloc PMU VReg mem\n");
}
} else { } else {
cnss_pr_dbg("PMU VReg Mapping not configured\n"); cnss_pr_dbg("PMU VReg Mapping not configured\n");
} }
@@ -1684,13 +1694,16 @@ void cnss_power_misc_params_init(struct cnss_plat_data *plat_priv)
if (ret > 0) { if (ret > 0) {
cfg_arr_size = ret; cfg_arr_size = ret;
cfg_arr = kcalloc(cfg_arr_size, sizeof(*cfg_arr), GFP_KERNEL); cfg_arr = kcalloc(cfg_arr_size, sizeof(*cfg_arr), GFP_KERNEL);
if (cfg_arr) {
ret = of_property_read_u32_array(plat_priv->plat_dev->dev.of_node, ret = of_property_read_u32_array(plat_priv->plat_dev->dev.of_node,
"qcom,on-chip-pmic-support", cfg_arr, "qcom,on-chip-pmic-support",
cfg_arr_size); cfg_arr, cfg_arr_size);
if (!ret) { if (!ret) {
plat_priv->on_chip_pmic_devices_count = cfg_arr_size; plat_priv->on_chip_pmic_devices_count = cfg_arr_size;
plat_priv->on_chip_pmic_board_ids = cfg_arr; plat_priv->on_chip_pmic_board_ids = cfg_arr;
}
} else {
cnss_pr_err("Failed to alloc cfg table mem\n");
} }
} else { } else {
cnss_pr_dbg("On chip PMIC device ids not configured\n"); cnss_pr_dbg("On chip PMIC device ids not configured\n");