soc: qcom: fix null pointer dereference issue
Fix the null pointer dereference issues in the cdsprm driver. Change-Id: I1c1835f265ee2364bad7e4609ed4da342c2e84e6 Signed-off-by: Bavyasritha Alahari <alahari@codeaurora.org>
This commit is contained in:
parent
0611102d4e
commit
53951c6319
@ -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");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user