Re: [PATCH 3.17-rc4 v5 2/6] arm: fiq: Replace default FIQ handler

From: Russell King - ARM Linux
Date: Fri Sep 12 2014 - 13:07:31 EST


On Fri, Sep 12, 2014 at 06:03:07PM +0100, Russell King - ARM Linux wrote:
> On Thu, Sep 11, 2014 at 12:31:14PM +0100, Daniel Thompson wrote:
> > - .macro svc_entry, stack_hole=0
> > + .macro svc_entry, stack_hole=0, call_trace=1
> > UNWIND(.fnstart )
> > UNWIND(.save {r0 - pc} )
> > sub sp, sp, #(S_FRAME_SIZE + \stack_hole - 4)
> > @@ -183,7 +183,9 @@ ENDPROC(__und_invalid)
> > stmia r7, {r2 - r6}
> >
> > #ifdef CONFIG_TRACE_IRQFLAGS
> > + .if \call_trace
> > bl trace_hardirqs_off
> > + .endif
> > #endif
>
> Good, you picked this up from my patch. But what about the call into
> lockdep from usr_entry?
>
> Yes, it should be safe if we're entering from user mode, because by
> definition, the kernel can't be holding any locks at that point.
> However, I'd much prefer to keep to a set of simple rules here: avoid
> lockdep in FIQ code altogether.
>
> That's much easier to understand than "we can call into lockdep provided
> we've been entered from user mode".
>
> The other thing you miss is that /potentially/ call into the scheduler
> as well from a FIQ. Do we /really/ want to do that kind of work here?
>
> Not happy.

And you're also missing a .cantunwind for __fiq_usr, which means that the
Dwarf doesn't contain an explicit point to stop unwinding.

Lastly, don't thread your new patches to the old ones. I utterly hate
that behaviour. It makes subject lines totally pointless because all
I end up seeing is "[PAT" on the very right hand of the screen. Far
from useful.

--
FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up
according to speedtest.net.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/