Patch "coresight: etm4x: Fix issues on trcseqevr access" has been added to the 5.9-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: etm4x: Fix issues on trcseqevr access

to the 5.9-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-etm4x-fix-issues-on-trcseqevr-access.patch
and it can be found in the queue-5.9 subdirectory.

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



commit a47c98717077ed9021970221998f41c7df0c1ce9
Author: Jonathan Zhou <jonathan.zhouwen@xxxxxxxxxx>
Date:   Wed Sep 16 13:17:32 2020 -0600

    coresight: etm4x: Fix issues on trcseqevr access
    
    [ Upstream commit 4cd83037cd957ad97756055355ab4ee63f259380 ]
    
    The TRCSEQEVR(3) is reserved, using '@nrseqstate - 1' instead to avoid
    accessing the reserved register.
    
    Fixes: f188b5e76aae ("coresight: etm4x: Save/restore state across CPU low power states")
    Cc: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>
    Cc: Suzuki K Poulose <suzuki.poulose@xxxxxxx>
    Cc: Mike Leach <mike.leach@xxxxxxxxxx>
    Cc: Shaokun Zhang <zhangshaokun@xxxxxxxxxxxxx>
    Signed-off-by: Jonathan Zhou <jonathan.zhouwen@xxxxxxxxxx>
    [Fixed capital letter in title]
    Signed-off-by: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20200916191737.4001561-12-mathieu.poirier@xxxxxxxxxx
    Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/hwtracing/coresight/coresight-etm4x.c b/drivers/hwtracing/coresight/coresight-etm4x.c
index 2bcc8d4a82c8e..944c7a7cc1d91 100644
--- a/drivers/hwtracing/coresight/coresight-etm4x.c
+++ b/drivers/hwtracing/coresight/coresight-etm4x.c
@@ -1193,7 +1193,7 @@ static int etm4_cpu_save(struct etmv4_drvdata *drvdata)
 	state->trcvdsacctlr = readl(drvdata->base + TRCVDSACCTLR);
 	state->trcvdarcctlr = readl(drvdata->base + TRCVDARCCTLR);
 
-	for (i = 0; i < drvdata->nrseqstate; i++)
+	for (i = 0; i < drvdata->nrseqstate - 1; i++)
 		state->trcseqevr[i] = readl(drvdata->base + TRCSEQEVRn(i));
 
 	state->trcseqrstevr = readl(drvdata->base + TRCSEQRSTEVR);
@@ -1298,7 +1298,7 @@ static void etm4_cpu_restore(struct etmv4_drvdata *drvdata)
 	writel_relaxed(state->trcvdsacctlr, drvdata->base + TRCVDSACCTLR);
 	writel_relaxed(state->trcvdarcctlr, drvdata->base + TRCVDARCCTLR);
 
-	for (i = 0; i < drvdata->nrseqstate; i++)
+	for (i = 0; i < drvdata->nrseqstate - 1; i++)
 		writel_relaxed(state->trcseqevr[i],
 			       drvdata->base + TRCSEQEVRn(i));
 



[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