[PATCH] coresight: Don't allocate pdata->conns when there is no output port

Qi Liu liuqi115 at huawei.com
Tue Sep 8 03:31:28 EDT 2020


When there is no output port, coresight_alloc_conns() still do the following
copy connection information to pdata->conns, and this may cause kernel panic.
Let's fix it.

Signed-off-by: Qi Liu <liuqi115 at huawei.com>
---
 drivers/hwtracing/coresight/coresight-platform.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/drivers/hwtracing/coresight/coresight-platform.c b/drivers/hwtracing/coresight/coresight-platform.c
index bfd4423..cdc8824 100644
--- a/drivers/hwtracing/coresight/coresight-platform.c
+++ b/drivers/hwtracing/coresight/coresight-platform.c
@@ -26,12 +26,13 @@
 static int coresight_alloc_conns(struct device *dev,
 				 struct coresight_platform_data *pdata)
 {
-	if (pdata->nr_outport) {
-		pdata->conns = devm_kcalloc(dev, pdata->nr_outport,
-					    sizeof(*pdata->conns), GFP_KERNEL);
-		if (!pdata->conns)
-			return -ENOMEM;
-	}
+	if (!pdata->nr_outport)
+		return -ENOMEM;
+
+	pdata->conns = devm_kcalloc(dev, pdata->nr_outport,
+				    sizeof(*pdata->conns), GFP_KERNEL);
+	if (!pdata->conns)
+		return -ENOMEM;

 	return 0;
 }
--
2.8.1




More information about the linux-arm-kernel mailing list