[PATCH v4 3/7] arm/imx: add gic_handle_irq function
From: Shawn Guo <hidden>
Date: 2011-10-01 13:30:03
On Thu, Sep 29, 2011 at 10:27:30PM +0800, Shawn Guo wrote:
On Thu, Sep 29, 2011 at 10:34:09AM +0100, Russell King - ARM Linux wrote:quoted
On Wed, Sep 28, 2011 at 05:06:44PM +0800, Shawn Guo wrote:quoted
+#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); + } +#endifAs 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.I'm also wondering the consequence of not doing so, because we are seeing icip_handle_irq() and ichp_handle_irq() (arch/arm/mach-pxa/irq.c) are doing the same thing, and we are not running into any problem with above code.
Sorry. Please ignore the above. -- Regards, Shawn