[PATCH] powerpc/mpic: Disable preemption when calling mpic_processor_id()
Scott Wood
scottwood at freescale.com
Sat Sep 28 02:15:12 EST 2013
On Fri, 2013-09-27 at 10:52 -0500, Kumar Gala wrote:
> On Sep 26, 2013, at 7:18 PM, Scott Wood wrote:
>
> > Otherwise, we get a debug traceback due to the use of
> > smp_processor_id() (or get_paca()) inside hard_smp_processor_id().
> > mpic_host_map() is just looking for a default CPU, so it doesn't matter
> > if we migrate after getting the CPU ID.
> >
> > Signed-off-by: Scott Wood <scottwood at freescale.com>
> > ---
> > arch/powerpc/sysdev/mpic.c | 8 +++++++-
> > 1 file changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
> > index 1be54fa..bdcb858 100644
> > --- a/arch/powerpc/sysdev/mpic.c
> > +++ b/arch/powerpc/sysdev/mpic.c
> > @@ -1088,8 +1088,14 @@ static int mpic_host_map(struct irq_domain *h, unsigned int virq,
> > * is done here.
> > */
> > if (!mpic_is_ipi(mpic, hw) && (mpic->flags & MPIC_NO_RESET)) {
> > + int cpu;
> > +
> > + preempt_disable();
> > + cpu = mpic_processor_id(mpic);
> > + preempt_enable();
> > +
>
> Any reason you didn't stick this inside of mpic_processor_id() ?
Because the debug check might be valid for other callers and we don't
want to defeat it. In this caller it's used only as a heuristic and
thus it doesn't matter if we re-enable preemption before using the
result.
-Scott
More information about the Linuxppc-dev
mailing list