From: Jie Gan Date: Mon, 10 Mar 2025 10:27:24 +0000 (+0800) Subject: coresight: add verification process for coresight_etm_get_trace_id X-Git-Tag: v6.15-rc1~78^2^2~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ab37128ad5ed872e10048fd83f1dd59a9067fc68;p=thirdparty%2Fkernel%2Flinux.git 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 Signed-off-by: Suzuki K Poulose Link: https://lore.kernel.org/r/20250310102724.2112905-1-quic_jiegan@quicinc.com --- diff --git a/drivers/hwtracing/coresight/coresight-core.c b/drivers/hwtracing/coresight/coresight-core.c index bd0a7edd38c97..c915a055534e9 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);