Subject: Re: local_irq_save not masking interrupts

From: Scott Wood <[email-masked]>
Date: Tue, 26 Sep 2006 11:27:04 -0500

Alex Zeffertt wrote:
> I agree this indicates an intent to make it atomic, but I don't see how
> this could cause interrupts to become re-enabled during the request_irq()
> call.  Also, since I am calling request_irq at insmod time, i.e. in process
> context, both GFP_ flags *should* work.

You're effectively not in process context when you disable IRQs (at 
least, if you want them to stay that way).  By specifying GFP_KERNEL, 
you're giving the allocator permission to go to sleep, enable IRQs, etc. 
  The IRQ enabling will happen any time cache_grow() is called with 
GFP_WAIT (which is part of GFP_KERNEL), assuming a growable slab.

-Scott