]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
coresight: cti: Fix DT filter signals silently ignored
authorYingchao Deng <yingchao.deng@oss.qualcomm.com>
Sun, 26 Apr 2026 09:59:34 +0000 (17:59 +0800)
committerSuzuki K Poulose <suzuki.poulose@arm.com>
Wed, 6 May 2026 08:22:17 +0000 (09:22 +0100)
In cti_plat_process_filter_sigs(), after allocating a temporary
cti_trig_grp struct via kzalloc_obj(), the code never assigns tg->nr_sigs
= nr_filter_sigs. Since kzalloc zero-initialises the struct, tg->nr_sigs
remains 0. cti_plat_read_trig_group() guards with:
    if (!tgrp->nr_sigs)
        return 0;

so it returns immediately without reading any signal indices from DT.

Fix by assigning tg->nr_sigs before calling cti_plat_read_trig_group().

Fixes: a5614770ab97 ("coresight: cti: Add device tree support for custom CTI")
Signed-off-by: Yingchao Deng <yingchao.deng@oss.qualcomm.com>
Reviewed-by: Leo Yan <leo.yan@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20260426-nr_sigs-v1-1-3b9df99dab97@oss.qualcomm.com
drivers/hwtracing/coresight/coresight-cti-platform.c

index 4eff96f48594e849911e62c7c9638827a2ebbc3e..d6d5388705c3e1ac180856f16b620e14e34f1fbb 100644 (file)
@@ -329,6 +329,7 @@ static int cti_plat_process_filter_sigs(struct cti_drvdata *drvdata,
        if (!tg)
                return -ENOMEM;
 
+       tg->nr_sigs = nr_filter_sigs;
        err = cti_plat_read_trig_group(tg, fwnode, CTI_DT_FILTER_OUT_SIGS);
        if (!err)
                drvdata->config.trig_out_filter |= tg->used_mask;