Re: [PATCH] MIPS: smp.c: Fix uninitialised temp_foreign_map

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

 



Please fix your scripts to not repost patches.

  Ralf

On Mon, Mar 14, 2016 at 02:12:58PM +0800, miles.chen@xxxxxxxxxxxx wrote:

> From: miles.chen@xxxxxxxxxxxx
> To: Miles <miles.chen@xxxxxxxxxxxx>
> CC: James Hogan <james.hogan@xxxxxxxxxx>, Paul Burton
>  <paul.burton@xxxxxxxxxx>, linux-mips@xxxxxxxxxxxxxx, Ralf Baechle
>  <ralf@xxxxxxxxxxxxxx>
> Subject: [PATCH] MIPS: smp.c: Fix uninitialised temp_foreign_map
> Content-Type: text/plain
> 
> From: James Hogan <james.hogan@xxxxxxxxxx>
> 
> When calculate_cpu_foreign_map() recalculates the cpu_foreign_map
> cpumask it uses the local variable temp_foreign_map without initialising
> it to zero. Since the calculation only ever sets bits in this cpumask
> any existing bits at that memory location will remain set and find their
> way into cpu_foreign_map too. This could potentially lead to cache
> operations suboptimally doing smp calls to multiple VPEs in the same
> core, even though the VPEs share primary caches.
> 
> Therefore initialise temp_foreign_map using cpumask_clear() before use.
> 
> Fixes: cccf34e9411c ("MIPS: c-r4k: Fix cache flushing for MT cores")
> Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx>
> Cc: Paul Burton <paul.burton@xxxxxxxxxx>
> Cc: linux-mips@xxxxxxxxxxxxxx
> Patchwork: https://patchwork.linux-mips.org/patch/12759/
> Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
> ---
>  arch/mips/kernel/smp.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
> index bd4385a..2b521e0 100644
> --- a/arch/mips/kernel/smp.c
> +++ b/arch/mips/kernel/smp.c
> @@ -121,6 +121,7 @@ static inline void calculate_cpu_foreign_map(void)
>  	cpumask_t temp_foreign_map;
>  
>  	/* Re-calculate the mask */
> +	cpumask_clear(&temp_foreign_map);
>  	for_each_online_cpu(i) {
>  		core_present = 0;
>  		for_each_cpu(k, &temp_foreign_map)
> -- 
> 1.9.1

  Ralf




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux