lkml.org 
[lkml]   [2022]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 241/264] irqchip/gic-v3: Iterate over possible CPUs by for_each_possible_cpu()
    Date
    From: zijun_hu <zijun_hu@htc.com>

    [ Upstream commit 3fad4cdac235c5b13227d0c09854c689ae62c70b ]

    get_cpu_number() doesn't use existing helper to iterate over possible
    CPUs, It will cause an error in case of discontinuous @cpu_possible_mask
    such as 0b11110001, which can result from a core having failed to come
    up on a SMP machine.

    Fixed by using existing helper for_each_possible_cpu().

    Signed-off-by: zijun_hu <zijun_hu@htc.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/irqchip/irq-gic-v3.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
    index 2ab6060031a4..9ae24ffb9b09 100644
    --- a/drivers/irqchip/irq-gic-v3.c
    +++ b/drivers/irqchip/irq-gic-v3.c
    @@ -982,7 +982,7 @@ static int get_cpu_number(struct device_node *dn)
    {
    const __be32 *cell;
    u64 hwid;
    - int i;
    + int cpu;

    cell = of_get_property(dn, "reg", NULL);
    if (!cell)
    @@ -996,9 +996,9 @@ static int get_cpu_number(struct device_node *dn)
    if (hwid & ~MPIDR_HWID_BITMASK)
    return -1;

    - for (i = 0; i < num_possible_cpus(); i++)
    - if (cpu_logical_map(i) == hwid)
    - return i;
    + for_each_possible_cpu(cpu)
    + if (cpu_logical_map(cpu) == hwid)
    + return cpu;

    return -1;
    }
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-23 19:12    [W:3.441 / U:1.336 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site