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

Shawn Guo shawn.guo at freescale.com
Sat Oct 1 09:30:03 EDT 2011


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:
> > 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.
> > 
> 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




More information about the linux-arm-kernel mailing list