1. 02 May, 2013 3 commits
  2. 29 Apr, 2013 1 commit
  3. 26 Apr, 2013 2 commits
  4. 24 Apr, 2013 3 commits
  5. 22 Apr, 2013 4 commits
  6. 19 Apr, 2013 3 commits
  7. 12 Apr, 2013 1 commit
  8. 17 Mar, 2013 1 commit
  9. 15 Mar, 2013 3 commits
  10. 07 Mar, 2013 1 commit
  11. 06 Mar, 2013 1 commit
  12. 04 Feb, 2013 1 commit
  13. 29 Jan, 2013 1 commit
  14. 12 Jan, 2013 1 commit
    • Sathya Perla's avatar
      be2net: fix unconditionally returning IRQ_HANDLED in INTx · d0b9cec3
      Sathya Perla authored
      commit e49cc34f
      
       introduced an unconditional IRQ_HANDLED return in be_intx()
      to workaround Lancer and BE2 HW issues. This is bad as it prevents the kernel
      from detecting interrupt storms due to broken HW.
      
      The BE2/Lancer HW issues are:
      1) In Lancer, there is no means for the driver to detect if the interrupt
      belonged to device, other than counting and notifying events.
      2) In Lancer de-asserting INTx takes a while, causing the INTx irq handler
      to be called multiple times till the de-assert happens.
      3) In BE2, we see an occasional interrupt even when EQs are unarmed.
      
      Issue (1) can cause the notified events to be orphaned, if NAPI was already
      running.
      This patch fixes this issue by scheduling NAPI only if it is not scheduled
      already. Doing this also takes care of possible events_get() race that may be
      caused due to issue (2) and (3). Also, IRQ_HANDLED is returned only the first
      time zero events are detected.
      (Thanks Ben H. for the feedback and suggestions.)
      Signed-off-by: default avatarSathya Perla <sathya.perla@emulex.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d0b9cec3
  15. 18 Dec, 2012 2 commits
    • Sathya Perla's avatar
      be2net: fix wrong frag_idx reported by RX CQ · d23e946c
      Sathya Perla authored
      
      
      The RX CQ can report completions with invalid frag_idx when the RXQ that
      was *previously* using it, was not cleaned up properly. This hits
      a BUG_ON() in be2net.
      
      When completion coalescing is enabled on a CQ, an explicit CQ-notify
      (with rearm) is needed for each compl, to flush partially coalesced CQ
      entries that are pending DMA.
      
      In be_close(), this fix now notifies CQ for each compl, waits explicitly
      for the flush compl to arrive and complains if it doesn't arrive.
      
      Also renaming be_crit_error() to be_hw_error() as it's the more
      appropriate name and to convey that we don't wait for the flush compl
      only when a HW error has occurred.
      Signed-off-by: default avatarSathya Perla <sathya.perla@emulex.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d23e946c
    • Sathya Perla's avatar
      be2net: fix be_close() to ensure all events are ack'ed · a323d9bf
      Sathya Perla authored
      
      
      In be_close(), be_eq_clean() must be called after all RX/TX/MCC queues
      have been cleaned to ensure that any events caused while cleaning up
      completions are notified/acked. Not clearing all events can cause
      upredictable behaviour when RX rings are re-created in the subsequent
      be_open().
      Signed-off-by: default avatarSathya Perla <sathya.perla@emulex.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a323d9bf
  16. 07 Dec, 2012 1 commit
  17. 03 Dec, 2012 1 commit
  18. 28 Nov, 2012 1 commit
  19. 23 Nov, 2012 1 commit
    • Sathya Perla's avatar
      be2net: fix a possible events_get() race on BE2 · 0b545a62
      Sathya Perla authored
      
      
      On BE2 chip, an interrupt being raised even when EQ is in un-armed state has
      been observed a few times.  This is not expected and has never been
      observed on BE3/Lancer chips.
      
      As a consequence, be_msix()::events_get() and be_poll()::events_get()
      can race and notify an EQ wrongly causing a CEV UE. The other possible
      side-effect would be traffic stalling because after notifying EQ,
      napi_schedule() is ignored as NAPI is already running.
      
      This patch fixes this issue by counting events only in be_poll().
      Signed-off-by: default avatarSathya Perla <sathya.perla@emulex.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0b545a62
  20. 07 Nov, 2012 7 commits
  21. 23 Oct, 2012 1 commit