Commit 971f3474 authored by Jie Gan's avatar Jie Gan Committed by Suzuki K Poulose
Browse files

coresight: tpdm: fix invalid MMIO access issue



Create the csdev_access struct only when a valid MMIO resource is
available. In tpdm_probe(), base is uninitialized for static TPDM
instances that lack an MMIO resource, causing csdev_access to be
created with a garbage address.

So far there has no register access for static instance, but this
change helps mitigate potential risks in the future.

Fixes: 14ae052f ("coresight: tpdm: add static tpdm support")
Reviewed-by: default avatarLeo Yan <leo.yan@arm.com>
Signed-off-by: default avatarJie Gan <jie.gan@oss.qualcomm.com>
Signed-off-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20260407-fix-potential-issue-in-tpdm-v2-1-1d0e0d3cb793@oss.qualcomm.com
parent ec687ba8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1430,6 +1430,7 @@ static int tpdm_probe(struct device *dev, struct resource *res)
		if (ret)
			return ret;

		desc.access = CSDEV_ACCESS_IOMEM(base);
		if (tpdm_has_dsb_dataset(drvdata))
			of_property_read_u32(drvdata->dev->of_node,
					     "qcom,dsb-msrs-num", &drvdata->dsb_msr_num);
@@ -1452,7 +1453,6 @@ static int tpdm_probe(struct device *dev, struct resource *res)
	desc.ops = &tpdm_cs_ops;
	desc.pdata = dev->platform_data;
	desc.dev = dev;
	desc.access = CSDEV_ACCESS_IOMEM(base);
	if (res)
		desc.groups = tpdm_attr_grps;
	else