Merge "soc: qcom: fix null pointer dereference issue"

This commit is contained in:
qctecmdr 2021-05-28 04:37:49 -07:00 • committed by Gerrit - the friendly Code Review server
commit a92cfc31ce

View file

@ -617,29 +617,29 @@ static void qos_cores_init(struct device *dev)
dev_err(dev,
"kcalloc failed for cpucores\n");
gcdsprm.b_silver_en = false;
}
} else {
for (i = 0; i < gcdsprm.corecount; i++) {
err = of_property_read_u32_index(dev->of_node,
"qcom,qos-cores", i, &cpucores[i]);
if (err) {
dev_err(dev,
"%s: failed to read QOS coree for core:%d\n",
__func__, i);
gcdsprm.b_silver_en = false;
}
}
for (i = 0; i < gcdsprm.corecount; i++) {
err = of_property_read_u32_index(dev->of_node,
"qcom,qos-cores", i, &cpucores[i]);
if (err) {
gcdsprm.coreno = cpucores;
gcdsprm.dev_pm_qos_req = kcalloc(gcdsprm.corecount,
sizeof(struct dev_pm_qos_request), GFP_KERNEL);
if (gcdsprm.dev_pm_qos_req == NULL) {
dev_err(dev,
"%s: failed to read QOS coree for core:%d\n",
__func__, i);
"kcalloc failed for dev_pm_qos_req\n");
gcdsprm.b_silver_en = false;
}
}
gcdsprm.coreno = cpucores;
gcdsprm.dev_pm_qos_req = kcalloc(gcdsprm.corecount,
sizeof(struct dev_pm_qos_request), GFP_KERNEL);
if (gcdsprm.dev_pm_qos_req == NULL) {
dev_err(dev,
"kcalloc failed for dev_pm_qos_req\n");
gcdsprm.b_silver_en = false;
}
}
}
@ -875,11 +875,11 @@ static int process_cdsp_request_thread(void *data)
msg = &req->msg;
if ((msg->feature_id == SYSMON_CDSP_FEATURE_RM_RX) &&
if (msg && (msg->feature_id == SYSMON_CDSP_FEATURE_RM_RX) &&
gcdsprm.b_qosinitdone) {
process_rm_request(msg);
} else if (msg->feature_id ==
SYSMON_CDSP_FEATURE_L3_RX) {
} else if (msg && (msg->feature_id ==
SYSMON_CDSP_FEATURE_L3_RX)) {
l3_clock_khz = msg->fs.l3_struct.l3_clock_khz;
spin_lock_irqsave(&gcdsprm.l3_lock, flags);
@ -891,8 +891,8 @@ static int process_cdsp_request_thread(void *data)
pr_debug("Set L3 clock %d done\n",
l3_clock_khz);
}
} else if (msg->feature_id ==
SYSMON_CDSP_FEATURE_NPU_LIMIT_RX) {
} else if (msg && (msg->feature_id ==
SYSMON_CDSP_FEATURE_NPU_LIMIT_RX)) {
mutex_lock(&gcdsprm.npu_activity_lock);
gcdsprm.set_corner_limit_cached =
@ -936,8 +936,8 @@ static int process_cdsp_request_thread(void *data)
pr_err("rpmsg send failed %d\n", result);
else
pr_debug("NPU limit ack sent\n");
} else if (msg->feature_id ==
SYSMON_CDSP_FEATURE_VERSION_RX) {
} else if (msg && (msg->feature_id ==
SYSMON_CDSP_FEATURE_VERSION_RX)) {
cdsprm_rpmsg_send_details();
pr_debug("Sent preserved data to DSP\n");
}