Subject: Re: irq_disable() not working

From: Benjamin Herrenschmidt <[email-masked]>
Date: Tue, 23 Sep 2008 19:20:34 +1000

On Tue, 2008-09-23 at 11:08 +0200, Wolfgang Grandegger wrote:
> I'm trying to understand how irq_disable() is supposed to work on
> PowerPC systems. Most PowerPC PIC do *not* implement the enable and
> disable, but just the unmask and mask methods, e.g:
> 
>   http://lxr.linux.no/linux+v2.6.26.5/arch/powerpc/sysdev/mpic.c#L867
> 
> The irq_disable() function will then call the default function
> default_disable():
> 
>   http://lxr.linux.no/linux+v2.6.26.5/kernel/irq/chip.c#L234
> 
> which does not *nothing*. I do not see how the interrupt gets disabled
> on the hardware level. Obviously I have missed something. TIA for
> clarification.

Lazy masking ? ie, look what happens if the irq happens while disabled.

Ben.