[RFC PATCH] ARM: Flush L2 cache on soft_restart
Taras Kondratiuk
taras.kondratiuk at linaro.org
Wed Oct 2 13:19:30 EDT 2013
On 2 October 2013 15:49, Will Deacon <will.deacon at arm.com> wrote:
> On Wed, Oct 02, 2013 at 12:34:16PM +0100, Taras Kondratiuk wrote:
>> diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
>> index 94f6b05..e359b62 100644
>> --- a/arch/arm/kernel/process.c
>> +++ b/arch/arm/kernel/process.c
>> @@ -103,9 +103,11 @@ void soft_restart(unsigned long addr)
>> local_irq_disable();
>> local_fiq_disable();
>>
>> - /* Disable the L2 if we're the last man standing. */
>> - if (num_online_cpus() == 1)
>> + /* Flush and disable the L2 if we're the last man standing. */
>> + if (num_online_cpus() == 1) {
>> + outer_flush_all();
>> outer_disable();
>
> l2x0_disable already contains a flush, so this doesn't change anything.
Unfortunately not everybody uses l2x0_disable().
SoC's that use SMC calls for L2 cache maintenance have its own implementation
of outer_cache.disable which usually doesn't flush cache implicitly.
--
Regards,
Taras Kondratiuk
More information about the linux-arm-kernel
mailing list