lkml.org 
[lkml]   [2021]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.13 330/800] perf/arm-cmn: Fix invalid pointer when access dtc object sharing the same IRQ number
    Date
    From: Tuan Phan <tuanphan@os.amperecomputing.com>

    [ Upstream commit 4e16f283edc289820e9b2d6f617ed8e514ee8396 ]

    When multiple dtcs share the same IRQ number, the irq_friend which
    used to refer to dtc object gets calculated incorrect which leads
    to invalid pointer.

    Fixes: 0ba64770a2f2 ("perf: Add Arm CMN-600 PMU driver")

    Signed-off-by: Tuan Phan <tuanphan@os.amperecomputing.com>
    Reviewed-by: Robin Murphy <robin.murphy@arm.com>
    Link: https://lore.kernel.org/r/1623946129-3290-1-git-send-email-tuanphan@os.amperecomputing.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/perf/arm-cmn.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
    index 56a5c355701d..49016f2f505e 100644
    --- a/drivers/perf/arm-cmn.c
    +++ b/drivers/perf/arm-cmn.c
    @@ -1212,7 +1212,7 @@ static int arm_cmn_init_irqs(struct arm_cmn *cmn)
    irq = cmn->dtc[i].irq;
    for (j = i; j--; ) {
    if (cmn->dtc[j].irq == irq) {
    - cmn->dtc[j].irq_friend = j - i;
    + cmn->dtc[j].irq_friend = i - j;
    goto next;
    }
    }
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-12 10:41    [W:2.871 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site