• James Hogan's avatar
    MIPS: c-r4k: Exclude sibling CPUs in SMP calls · 640511ae
    James Hogan authored
    When performing SMP calls to foreign cores, exclude sibling CPUs from
    the provided map, as we already handle the local core on the current
    CPU. This prevents an SMP call from for example core 0, VPE 1 to VPE 0
    on the same core.
    
    In the process the cpu_foreign_map cpumask is turned into an array of
    cpumasks, so that each CPU has its own version of it which excludes
    sibling CPUs. r4k_op_needs_ipi() is also updated to reflect that cache
    management SMP calls are not needed when all CPUs are siblings (i.e.
    there are no foreign CPUs according to the new cpu_foreign_map[]
    semantics which exclude siblings).
    Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
    Cc: Paul Burton <paul.burton@imgtec.com>
    Cc: Leonid Yegoshin <leonid.yegoshin@imgtec.com>
    Cc: Felix Fietkau <nbd@nbd.name>
    Cc: Jayachandran C. <jchandra@broadcom.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/13801/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    640511ae
smp.c 15 KB