summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJie Gan <quic_jiegan@quicinc.com>2025-03-10 13:27:24 +0300
committerSuzuki K Poulose <suzuki.poulose@arm.com>2025-03-10 13:33:13 +0300
commitab37128ad5ed872e10048fd83f1dd59a9067fc68 (patch)
treeb98081deed9d4ceb6b19d451c7bdf6c4bace32c6
parentf78d206f3d73446e4c3568946a26f903da2149b4 (diff)
downloadlinux-ab37128ad5ed872e10048fd83f1dd59a9067fc68.tar.xz
coresight: add verification process for coresight_etm_get_trace_id
The coresight_etm_get_trace_id function is a global function. The verification process for 'csdev' is required prior to its usage. Fixes: c367a89dec26 ("Coresight: Add trace_id function to retrieving the trace ID") Signed-off-by: Jie Gan <quic_jiegan@quicinc.com> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> Link: https://lore.kernel.org/r/20250310102724.2112905-1-quic_jiegan@quicinc.com
-rw-r--r--drivers/hwtracing/coresight/coresight-core.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/hwtracing/coresight/coresight-core.c b/drivers/hwtracing/coresight/coresight-core.c
index bd0a7edd38c9..c915a055534e 100644
--- a/drivers/hwtracing/coresight/coresight-core.c
+++ b/drivers/hwtracing/coresight/coresight-core.c
@@ -1616,9 +1616,12 @@ EXPORT_SYMBOL_GPL(coresight_remove_driver);
int coresight_etm_get_trace_id(struct coresight_device *csdev, enum cs_mode mode,
struct coresight_device *sink)
{
- int trace_id;
- int cpu = source_ops(csdev)->cpu_id(csdev);
+ int cpu, trace_id;
+
+ if (csdev->type != CORESIGHT_DEV_TYPE_SOURCE || !source_ops(csdev)->cpu_id)
+ return -EINVAL;
+ cpu = source_ops(csdev)->cpu_id(csdev);
switch (mode) {
case CS_MODE_SYSFS:
trace_id = coresight_trace_id_get_cpu_id(cpu);