[patch 2/2] arm: Implement l2x0 cache disable function
Catalin Marinas
catalin.marinas at arm.com
Fri Jul 2 07:47:20 EDT 2010
On Thu, 2010-07-01 at 17:05 +0100, Thomas Gleixner wrote:
> This function is called from kexec code before the inner caches are
> disabled to prevent random crashes in the new kernel.
>
> Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
> Index: linux-2.6/arch/arm/mm/cache-l2x0.c
> ===================================================================
> --- linux-2.6.orig/arch/arm/mm/cache-l2x0.c
> +++ linux-2.6/arch/arm/mm/cache-l2x0.c
> @@ -206,6 +206,12 @@ static void l2x0_flush_range(unsigned lo
> spin_unlock_irqrestore(&l2x0_lock, flags);
> }
>
> +static void l2x0_cache_disable(void)
> +{
> + l2x0_inv_all();
> + writel(0, l2x0_base + L2X0_CTRL);
> +}
Even if we go this route, we need an l2x0_flush_all() rather than
invalidate here as the latter removes dirty cache lines without evicting
them first.
--
Catalin
More information about the linux-arm-kernel
mailing list