[PATCH 2/3] ARM: make disable_fiq macro optional

Russell King - ARM Linux linux at arm.linux.org.uk
Wed Feb 8 03:38:42 EST 2012


On Tue, Feb 07, 2012 at 04:52:14PM -0600, Rob Herring wrote:
> Wouldn't the fiq be masked then? rpc_init_irq masks out the interrupts
> in the same register as disable_fiq macro:
> 
> iomd_writeb(0, IOMD_FIQMASK);

The point of the stuff in disable_fiq is to catch cases where the FIQMASK
register hasn't been disabled, and we receive a spurious FIQ.  What happens
in that case (without code in disable_fiq) is that we will endlessly spin
entering and re-entering the FIQ code.

No normal interrupts will be received, and no non-FIQ handler instructions
will ever be executed.

Without this, we're 100% reliant on the FIQMASK register being correctly
set.

I would suggest that other platforms which _can_ receive FIQs should
implement the disable_fiq macro for safety against these kinds of silent
lockups.  It shouldn't be needed in the same way that printascii()
shouldn't be needed.



More information about the linux-arm-kernel mailing list