[PATCH v4 3/7] arm/imx: add gic_handle_irq function

Russell King - ARM Linux linux at arm.linux.org.uk
Thu Sep 29 05:34:09 EDT 2011


On Wed, Sep 28, 2011 at 05:06:44PM +0800, Shawn Guo wrote:
> +#ifdef CONFIG_SMP
> +		else if (irqnr < 16) {
> +			writel_relaxed(irqstat, gic_cpu_base_addr +
> +						GIC_CPU_EOI);
> +			do_IPI(irqnr, regs);
> +		}
> +#endif
> +#ifdef CONFIG_LOCAL_TIMERS
> +		else if (irqnr == 29) {
> +			writel_relaxed(irqstat, gic_cpu_base_addr +
> +						GIC_CPU_EOI);
> +			do_local_timer(regs);
> +		}
> +#endif

As I've said for similar patches. neither of these two functions are
designed to be called from another C function (because they're marked
__exception or __exception_irq_entry).  Both of these markers tell the
unwinder that a struct pt_regs is located directly above the functions
stack frame.



More information about the linux-arm-kernel mailing list