Skip to content
Snippets Groups Projects
  1. Apr 25, 2008
  2. Apr 16, 2008
  3. Mar 28, 2008
  4. Mar 25, 2008
  5. Feb 23, 2008
  6. Feb 15, 2008
  7. Feb 11, 2008
  8. Feb 03, 2008
  9. Jan 28, 2008
  10. Jan 20, 2008
    • David S. Miller's avatar
      [NET]: Fix interrupt semaphore corruption in Intel drivers. · 49d85c50
      David S. Miller authored
      
      Several of the Intel ethernet drivers keep an atomic counter used to
      manage when to actually hit the hardware with a disable or an enable.
      
      The way the net_rx_work() breakout logic works during a pending
      napi_disable() is that it simply unschedules the poll even if it
      still has work.
      
      This can potentially leave interrupts disabled, but that is OK
      because all of the drivers are about to disable interrupts
      anyways in all such code paths that do a napi_disable().
      
      Unfortunately, this trips up the semaphore used here in the Intel
      drivers.  If you hit this case, when you try to bring the interface
      back up it won't enable interrupts.  A reload of the driver module
      fixes it of course.
      
      So what we do is make sure all the sequences now go:
      
      	napi_disable();
      	atomic_set(&adapter->irq_sem, 0);
      	*_irq_disable();
      
      which makes sure the counter is always in the correct state.
      
      Reported by Robert Olsson.
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      49d85c50
  11. Jan 17, 2008
  12. Jan 09, 2008
  13. Dec 07, 2007
Loading