[parisc-linux] init_idle and local_irq_save

James Bottomley James.Bottomley at steeleye.com
Mon Mar 29 09:17:19 MST 2004


On Mon, 2004-03-29 at 11:03, Grant Grundler wrote:
> o local_irq_save()/local_irq_restore are called without an
>   obvious local_irq_disable() call in between. Is this really
>   needed for some other reason or is the local_irq_disable() missing?

local_irq_save() does do an irq disable.  You're thinking of
local_save_flags() which only saves the flags but doesn't disable
interrupts.

> o double_rq_lock() acquires the locks with lowest address first.
>   double_rq_unlock() does not release those in the inverse order.
>   Is that a problem?
>   I'm just nervous since I didn't see the local_irq_disable()
>   in init_idle() which would guarantee both unlock's happen atomically.

No.  The deadlock potential comes only from lock acquisition order, not
lock release order:  nothing can block a lock release from proceeding.

James




More information about the parisc-linux mailing list