From: sshtylyov@ru.mvista.com (Sergei Shtylyov)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: cache-v7: Disable preemption when reading CCSIDR
Date: Fri, 03 Feb 2012 15:15:45 +0400 [thread overview]
Message-ID: <4F2BC1E1.2080702@ru.mvista.com> (raw)
In-Reply-To: <alpine.LFD.2.02.1202022202470.2759@xanadu.home>
Hello.
On 03-02-2012 7:04, Nicolas Pitre wrote:
>>>>> If you simply disable/restore IRQs around the critical region then you
>>>>> don't have to worry about __v7_setup. Plus this will allow for
>>>>> v7_flush_dcache_all to still be callable from atomic context.
>>>> Ok. Here's a patch. I still need to test it. I'll send another patch
>>>> series to cleanup the get_thread_info stuff (there's two of them?).
>>>>
>>>> arch/arm/mm/cache-v7.S | 6 ++++++
>>>> 1 files changed, 6 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/arch/arm/mm/cache-v7.S b/arch/arm/mm/cache-v7.S
>>>> index 07c4bc8..654a5fc 100644
>>>> --- a/arch/arm/mm/cache-v7.S
>>>> +++ b/arch/arm/mm/cache-v7.S
>>>> @@ -54,9 +54,15 @@ loop1:
>>>> and r1, r1, #7 @ mask of the bits for current cache only
>>>> cmp r1, #2 @ see what cache we have at this level
>>>> blt skip @ skip if no cache, or just i-cache
>>>> +#ifdef CONFIG_PREEMPT
>>>> + save_and_disable_irqs r9 @ make cssr&csidr read atomic
>>>> +#endif
>>>> mcr p15, 2, r10, c0, c0, 0 @ select current cache level in cssr
>>>> isb @ isb to sych the new cssr&csidr
>>>> mrc p15, 1, r1, c0, c0, 0 @ read the new csidr
>>>> +#ifdef CONFIG_PREEMPT
>>>> + restore_irqs r9
>>>> +#endif
>>> I'd suggest using restore_irqs_notrace instead. The IRQ-off period is
>>> so small that there is no point tracing it.
>> Thanks. I'll make sure to do that before uploading to the patch tracker.
> Might be worth flagging this for the stable kernels as well
> (CC: stable at kernel.org).
The new address is stable at vger.kernel.org as Greg KH wrote.
WBR, Sergei
WARNING: multiple messages have this Message-ID (diff)
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Nicolas Pitre <nico@fluxnic.net>
Cc: Stephen Boyd <sboyd@codeaurora.org>,
Catalin Marinas <catalin.marinas@arm.com>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] ARM: cache-v7: Disable preemption when reading CCSIDR
Date: Fri, 03 Feb 2012 15:15:45 +0400 [thread overview]
Message-ID: <4F2BC1E1.2080702@ru.mvista.com> (raw)
In-Reply-To: <alpine.LFD.2.02.1202022202470.2759@xanadu.home>
Hello.
On 03-02-2012 7:04, Nicolas Pitre wrote:
>>>>> If you simply disable/restore IRQs around the critical region then you
>>>>> don't have to worry about __v7_setup. Plus this will allow for
>>>>> v7_flush_dcache_all to still be callable from atomic context.
>>>> Ok. Here's a patch. I still need to test it. I'll send another patch
>>>> series to cleanup the get_thread_info stuff (there's two of them?).
>>>>
>>>> arch/arm/mm/cache-v7.S | 6 ++++++
>>>> 1 files changed, 6 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/arch/arm/mm/cache-v7.S b/arch/arm/mm/cache-v7.S
>>>> index 07c4bc8..654a5fc 100644
>>>> --- a/arch/arm/mm/cache-v7.S
>>>> +++ b/arch/arm/mm/cache-v7.S
>>>> @@ -54,9 +54,15 @@ loop1:
>>>> and r1, r1, #7 @ mask of the bits for current cache only
>>>> cmp r1, #2 @ see what cache we have at this level
>>>> blt skip @ skip if no cache, or just i-cache
>>>> +#ifdef CONFIG_PREEMPT
>>>> + save_and_disable_irqs r9 @ make cssr&csidr read atomic
>>>> +#endif
>>>> mcr p15, 2, r10, c0, c0, 0 @ select current cache level in cssr
>>>> isb @ isb to sych the new cssr&csidr
>>>> mrc p15, 1, r1, c0, c0, 0 @ read the new csidr
>>>> +#ifdef CONFIG_PREEMPT
>>>> + restore_irqs r9
>>>> +#endif
>>> I'd suggest using restore_irqs_notrace instead. The IRQ-off period is
>>> so small that there is no point tracing it.
>> Thanks. I'll make sure to do that before uploading to the patch tracker.
> Might be worth flagging this for the stable kernels as well
> (CC: stable@kernel.org).
The new address is stable@vger.kernel.org as Greg KH wrote.
WBR, Sergei
next prev parent reply other threads:[~2012-02-03 11:15 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-02 19:24 [PATCH] ARM: cache-v7: Disable preemption when reading CCSIDR Stephen Boyd
2012-02-02 19:24 ` Stephen Boyd
2012-02-02 20:44 ` Russell King - ARM Linux
2012-02-02 20:44 ` Russell King - ARM Linux
2012-02-02 21:38 ` Nicolas Pitre
2012-02-02 21:38 ` Nicolas Pitre
2012-02-02 23:36 ` Stephen Boyd
2012-02-02 23:36 ` Stephen Boyd
2012-02-03 0:36 ` Russell King - ARM Linux
2012-02-03 0:36 ` Russell King - ARM Linux
2012-02-03 0:49 ` Stephen Boyd
2012-02-03 0:49 ` Stephen Boyd
2012-02-03 1:18 ` Nicolas Pitre
2012-02-03 1:18 ` Nicolas Pitre
2012-02-03 1:18 ` Nicolas Pitre
2012-02-03 2:03 ` Stephen Boyd
2012-02-03 2:03 ` Stephen Boyd
2012-02-03 2:35 ` Nicolas Pitre
2012-02-03 2:35 ` Nicolas Pitre
2012-02-03 2:37 ` Stephen Boyd
2012-02-03 2:37 ` Stephen Boyd
2012-02-03 3:04 ` Nicolas Pitre
2012-02-03 3:04 ` Nicolas Pitre
2012-02-03 11:15 ` Sergei Shtylyov [this message]
2012-02-03 11:15 ` Sergei Shtylyov
2012-02-04 18:00 ` Catalin Marinas
2012-02-04 18:00 ` Catalin Marinas
2012-02-13 17:54 ` Rabin Vincent
2012-02-13 17:54 ` Rabin Vincent
2012-02-13 18:09 ` Nicolas Pitre
2012-02-13 18:09 ` Nicolas Pitre
2012-02-13 18:13 ` Stephen Boyd
2012-02-13 18:13 ` Stephen Boyd
2012-02-13 18:15 ` Russell King - ARM Linux
2012-02-13 18:15 ` Russell King - ARM Linux
2012-02-13 22:23 ` Stephen Boyd
2012-02-13 22:23 ` Stephen Boyd
2012-02-13 23:29 ` Russell King - ARM Linux
2012-02-13 23:29 ` Russell King - ARM Linux
2012-02-14 14:15 ` Rabin Vincent
2012-02-14 14:15 ` Rabin Vincent
2012-02-14 17:30 ` Nicolas Pitre
2012-02-14 17:30 ` Nicolas Pitre
2012-02-14 18:07 ` Stephen Boyd
2012-02-14 18:07 ` Stephen Boyd
2012-02-03 1:16 ` Nicolas Pitre
2012-02-03 1:16 ` Nicolas Pitre
2012-02-07 3:34 ` Saravana Kannan
2012-02-07 3:34 ` Saravana Kannan
2012-02-07 17:42 ` Stephen Boyd
2012-02-07 17:42 ` Stephen Boyd
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F2BC1E1.2080702@ru.mvista.com \
--to=sshtylyov@ru.mvista.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.