From: Dave Martin <Dave.Martin@arm.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Will Deacon <will.deacon@arm.com>,
Jonathan Austin <Jonathan.Austin@arm.com>,
"nico@linaro.org" <nico@linaro.org>,
Marc Zyngier <Marc.Zyngier@arm.com>,
Catalin Marinas <Catalin.Marinas@arm.com>,
"sboyd@codeaurora.org" <sboyd@codeaurora.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"vgupta@synopsys.com" <vgupta@synopsys.com>,
"ben.dooks@codethink.co.uk" <ben.dooks@codethink.co.uk>,
"u.kleine-koenig@pengutronix.de" <u.kleine-koenig@pengutronix.de>,
Fabrice Gasnier <fabrice.gasnier@st.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"maxime.coquelin@st.com" <maxime.coquelin@st.com>
Subject: Re: [RFC PATCH] ARM: Add imprecise abort enable/disable macro
Date: Mon, 10 Feb 2014 14:42:28 +0000 [thread overview]
Message-ID: <20140210144228.GC2794@e103592.cambridge.arm.com> (raw)
In-Reply-To: <20140210135659.GU26684@n2100.arm.linux.org.uk>
On Mon, Feb 10, 2014 at 01:56:59PM +0000, Russell King - ARM Linux wrote:
> On Mon, Feb 10, 2014 at 11:17:10AM +0000, Will Deacon wrote:
> > On Mon, Feb 10, 2014 at 08:50:16AM +0000, Fabrice Gasnier wrote:
> > > On 02/07/2014 06:09 PM, Will Deacon wrote:
> > > > On Fri, Feb 07, 2014 at 04:19:15PM +0000, Fabrice GASNIER wrote:
> > > >> diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
> > > >> index 4636d56..ef15709 100644
> > > >> --- a/arch/arm/kernel/traps.c
> > > >> +++ b/arch/arm/kernel/traps.c
> > > >> @@ -900,6 +900,10 @@ void __init early_trap_init(void *vectors_base)
> > > >>
> > > >> flush_icache_range(vectors, vectors + PAGE_SIZE * 2);
> > > >> modify_domain(DOMAIN_USER, DOMAIN_CLIENT);
> > > >> +
> > > >> + /* Enable imprecise aborts */
> > > >> + local_abt_enable();
> > > > Surely we want to enable this as early as possible? Now, putting this into
> > > > head.S is ugly, as it duplicating it across all the proc*.S files, so why
> > > > not setup_arch?
> > > Sorry, I'm not sure to understand your last comment.
> > > At least, I need it enabled before probing drivers (PCIe bus)
> > > I've added imprecise abort enable code in traps.c, following Russel
> > > King's advice, please see:
> > > http://archive.arm.linux.org.uk/lurker/message/20140131.170827.d752a1cc.en.html
> > > As abort bit is local to a cpu, i've also added it in smp.c, but this
> > > may not be the right place ?
> > >
> > > Please elaborate,
> >
> > I was just suggesting that we move your local_abt_enable() call to
> > setup_arch, since that's called before early_trap_init on the primary CPU.
>
> Why would we want to enable aborts before we've setup the vectors page
> to handle an abort? That's akin to enabling interrupts and hoping there
> isn't one pending...
Should we require CPSR.A to me masked in Booting, for all CPUs that have
it?
By definition, we cannot dispatch those exceptions for a while, until
some vectors have been set up; so it makes sense in the same way that
requiring CPSR.[IF] to be set makes sense.
The kernel should do its best to cope anyway, and immediately mask CPSR.A
on entry if it's a v6 or later kernel. safe_svcmode_maskall was
originally intended to do that, but it got watered down to cope with the
Zaurus issues, so it now looks like most code paths don't mask CPSR.A
there. I'm happy to take another look at it.
Cheers
---Dave
next prev parent reply other threads:[~2014-02-10 14:43 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-07 16:19 [RFC PATCH] ARM: Enable imprecise external aborts earlier Fabrice GASNIER
2014-02-07 16:19 ` [RFC PATCH] ARM: Add imprecise abort enable/disable macro Fabrice GASNIER
2014-02-07 17:09 ` Will Deacon
2014-02-10 8:50 ` Fabrice Gasnier
2014-02-10 9:00 ` Ben Dooks
2014-02-10 13:32 ` Fabrice Gasnier
2014-02-10 11:17 ` Will Deacon
2014-02-10 13:54 ` Fabrice Gasnier
2014-02-10 13:56 ` Russell King - ARM Linux
2014-02-10 14:12 ` Will Deacon
2014-02-10 14:42 ` Dave Martin [this message]
2014-02-10 15:19 ` Russell King - ARM Linux
2014-02-10 16:28 ` Dave Martin
2014-02-10 16:37 ` Russell King - ARM Linux
2014-02-10 17:28 ` Dave Martin
2014-02-10 13:58 ` Russell King - ARM Linux
2014-02-10 14:16 ` Dave Martin
2014-02-10 14:44 ` Fabrice Gasnier
2014-02-10 15:12 ` Dave Martin
2014-02-10 15:24 ` Russell King - ARM Linux
2014-02-10 16:36 ` Fabrice Gasnier
2014-02-10 14:54 ` Ben Dooks
2014-02-10 15:21 ` Dave Martin
2014-02-10 16:38 ` Ben Dooks
2014-02-11 15:38 ` Dave Martin
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=20140210144228.GC2794@e103592.cambridge.arm.com \
--to=dave.martin@arm.com \
--cc=Catalin.Marinas@arm.com \
--cc=Jonathan.Austin@arm.com \
--cc=Marc.Zyngier@arm.com \
--cc=ben.dooks@codethink.co.uk \
--cc=fabrice.gasnier@st.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=maxime.coquelin@st.com \
--cc=nico@linaro.org \
--cc=sboyd@codeaurora.org \
--cc=u.kleine-koenig@pengutronix.de \
--cc=vgupta@synopsys.com \
--cc=will.deacon@arm.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®