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:03:21 EST


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.

--
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/