]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
coresight: cti: fix the check condition in inout_sel_store
authorJie Gan <jie.gan@oss.qualcomm.com>
Fri, 27 Mar 2026 06:24:14 +0000 (14:24 +0800)
committerSuzuki K Poulose <suzuki.poulose@arm.com>
Fri, 27 Mar 2026 10:08:49 +0000 (10:08 +0000)
Correct the upper bound from CTIINOUTEN_MAX to config->nr_trig_max,
since nr_trig_max varies across CTI devices. An out-of-bounds issue
occurs when a value greater than config->nr_trig_max is provided,
leading to unexpected errors.

Fixes: b5213376c240 ("coresight: cti: Add sysfs access to program function registers")
Signed-off-by: Jie Gan <jie.gan@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/20260327-fix-cti-issue-v1-1-2c8921e21fc8@oss.qualcomm.com
drivers/hwtracing/coresight/coresight-cti-sysfs.c

index 4c0a60840efb9ecc47850c1eb5a7abb41b49c5cc..bf3c73607c1c7b257af9739eae38c2dbccc75077 100644 (file)
@@ -337,10 +337,11 @@ static ssize_t inout_sel_store(struct device *dev,
 {
        unsigned long val;
        struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
+       struct cti_config *config = &drvdata->config;
 
        if (kstrtoul(buf, 0, &val))
                return -EINVAL;
-       if (val > (CTIINOUTEN_MAX - 1))
+       if (val >= config->nr_trig_max)
                return -EINVAL;
 
        guard(raw_spinlock_irqsave)(&drvdata->spinlock);