Patch "coresight: trbe: Allocate platform data per device" has been added to the 6.5-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    coresight: trbe: Allocate platform data per device

to the 6.5-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     coresight-trbe-allocate-platform-data-per-device.patch
and it can be found in the queue-6.5 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 7e7e5f915504cb759c989c794c6b423c6320188b
Author: Suzuki K Poulose <suzuki.poulose@xxxxxxx>
Date:   Wed Aug 16 13:51:50 2023 +0100

    coresight: trbe: Allocate platform data per device
    
    [ Upstream commit 39744738a67de9153d73e11817937c0004feab2e ]
    
    Coresight TRBE driver shares a single platform data (which is empty btw).
    However, with the commit 4e8fe7e5c3a5
    ("coresight: Store pointers to connections rather than an array of them")
    the coresight core would free up the pdata, resulting in multiple attempts
    to free the same pdata for TRBE instances. Fix this by allocating a pdata per
    coresight_device.
    
    Fixes: 4e8fe7e5c3a5 ("coresight: Store pointers to connections rather than an array of them")
    Link: https://lore.kernel.org/r/20230814093813.19152-3-hejunhao3@xxxxxxxxxx
    Reported-by: Junhao He <hejunhao3@xxxxxxxxxx>
    Cc: Anshuman Khandual <anshuman.khandual@xxxxxxx>
    Cc: James Clark <james.clark@xxxxxxx>
    Tested-by: Junhao He <hejunhao3@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20230816141008.535450-2-suzuki.poulose@xxxxxxx
    Signed-off-by: Suzuki K Poulose <suzuki.poulose@xxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/hwtracing/coresight/coresight-trbe.c b/drivers/hwtracing/coresight/coresight-trbe.c
index 7720619909d65..8e4eb37e66e82 100644
--- a/drivers/hwtracing/coresight/coresight-trbe.c
+++ b/drivers/hwtracing/coresight/coresight-trbe.c
@@ -1244,10 +1244,13 @@ static void arm_trbe_register_coresight_cpu(struct trbe_drvdata *drvdata, int cp
 	if (!desc.name)
 		goto cpu_clear;
 
+	desc.pdata = coresight_get_platform_data(dev);
+	if (IS_ERR(desc.pdata))
+		goto cpu_clear;
+
 	desc.type = CORESIGHT_DEV_TYPE_SINK;
 	desc.subtype.sink_subtype = CORESIGHT_DEV_SUBTYPE_SINK_PERCPU_SYSMEM;
 	desc.ops = &arm_trbe_cs_ops;
-	desc.pdata = dev_get_platdata(dev);
 	desc.groups = arm_trbe_groups;
 	desc.dev = dev;
 	trbe_csdev = coresight_register(&desc);
@@ -1479,7 +1482,6 @@ static void arm_trbe_remove_irq(struct trbe_drvdata *drvdata)
 
 static int arm_trbe_device_probe(struct platform_device *pdev)
 {
-	struct coresight_platform_data *pdata;
 	struct trbe_drvdata *drvdata;
 	struct device *dev = &pdev->dev;
 	int ret;
@@ -1494,12 +1496,7 @@ static int arm_trbe_device_probe(struct platform_device *pdev)
 	if (!drvdata)
 		return -ENOMEM;
 
-	pdata = coresight_get_platform_data(dev);
-	if (IS_ERR(pdata))
-		return PTR_ERR(pdata);
-
 	dev_set_drvdata(dev, drvdata);
-	dev->platform_data = pdata;
 	drvdata->pdev = pdev;
 	ret = arm_trbe_probe_irq(pdev, drvdata);
 	if (ret)



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux