In a driver I am reviewing I found the following locking constructs.
Notice how 'foo" is being called while we have suspended interrupts.

This seems wrong since we've mixed locking primitives.

Is it?

Thanks in advance.

-PWM

---------------------snip--------------------------------------
spin_lock_irqsave(global_lock, &flags);
....
foo()
{
   unsigned long lflags;

   spin_unlock(global_lock);
   ...
   {
       spin_lock_irqsave(global_lock, &lflags);
               .
               .
       spin_unlock_irqrestore(global_lock, &lflags);
   }

   spin_lock_irq(global_lock);
}

spin_unlock_irqrestore(global_lock, &flags);


- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
  • Re: Peter W. Morreale
    • Re: Ross Biro

Reply via email to