Re: [PATCH 05/11] MIPS: mm: c-r4k: Ensure CCA is set to non-coherent on UP kernels.

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

 



On Thu, Nov 13, 2014 at 12:05:37AM -0600, Steven J. Hill wrote:

> diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
> index 1559360..076e660 100644
> --- a/arch/mips/mm/c-r4k.c
> +++ b/arch/mips/mm/c-r4k.c
> @@ -1595,8 +1595,17 @@ early_param("cca", cca_setup);
>  
>  static void coherency_setup(void)
>  {
> -	if (cca < 0 || cca > 7)
> -		cca = read_c0_config() & CONF_CM_CMASK;
> +	if (cca < 0 || cca > 7) {
> +		/*
> +		 * Set CCA to non-coherent to ensure that the UP kernel
> +		 * behaves properly even on MC processors where the ROM
> +		 * may have prepared the C0 registers for SMP operation.
> +		 */
> +		if (!config_enabled(CONFIG_SMP))
> +			cca = _CACHE_CACHABLE_NONCOHERENT >> _CACHE_SHIFT;
> +		else
> +			cca = read_c0_config() & CONF_CM_CMASK;
> +	}

NAK.  This would trigger falsely on pretty much every SMP platform in
MIPS history except Octeon - with usually fatal consequences.

Is there a performance disadvantage or why is this desirable?

  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