1. 04 4月, 2012 1 次提交
  2. 22 3月, 2012 1 次提交
    • M
      tg3: Fix RSS ring refill race condition · 7ae52890
      Michael Chan 提交于
      The RSS feature in tg3 hardware has only one rx producer ring for all
      RSS rings.  NAPI vector 1 is special and handles the refilling of the
      rx producer ring on behalf of all RSS rings.  There is a race condition
      between these RSS NAPIs and the NAPI[1].  If NAPI[1] finishes checking
      for refill and then another RSS ring empties the rx producer ring
      before NAPI[1] exits NAPI, the chip will be completely out of SKBs in
      the rx producer ring.
      
      We fix this by adding a flag tp->rx_refill and rely on napi_schedule()/
      napi_complete() to help synchronize it to close the race condition.
      
      Update driver version to 3.123.
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7ae52890
  3. 06 3月, 2012 1 次提交
  4. 05 3月, 2012 4 次提交
  5. 01 3月, 2012 1 次提交
    • M
      tg3: Fix tg3_get_stats64 for 5700 / 5701 devs · 65ec698d
      Matt Carlson 提交于
      tg3_get_stats64() takes tp->lock when dealing with non-serdes bcm5700
      and bcm5701 devices.  However, functions that call tg3_halt() have
      already acquired tp->lock.  When tg3_get_stats64() is called in
      tg3_halt(), deadlock will occur.
      
      This patch fixes the problem by separating the stat gathering code into
      a new tg3_get_nstats() function.  tg3_get_stats64() is recoded to call
      this function and take tp->lock.  The code that takes tp->lock in
      tg3_calc_crc_errors() has been removed.  Function signatures have been
      cleaned up too.
      Signed-off-by: NMatt Carlson <mcarlson@broadcom.com>
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      65ec698d
  6. 24 2月, 2012 1 次提交
  7. 23 2月, 2012 5 次提交
  8. 14 2月, 2012 18 次提交
  9. 01 2月, 2012 1 次提交
  10. 24 1月, 2012 1 次提交
  11. 18 1月, 2012 1 次提交
    • M
      tg3: Fix single-vector MSI-X code · c3b5003b
      Matt Carlson 提交于
      Kdump kernels leave MSI-X interrupts (as setup by the crashed kernel)
      enabled.  However, kdump only enables one CPU in the new environment,
      thus causing tg3 to abort MSI-X setup.  When the driver attempts to
      enable INTA or MSI interrupt modes on a kdump kernel, interrupt
      delivery fails.
      
      This patch attempts to workaround the problem by forcing the driver
      to enable a single MSI-X interrupt.  In such a configuration, the
      device's multivector interrupt mode must be disabled.
      Signed-off-by: NMatt Carlson <mcarlson@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c3b5003b
  12. 20 12月, 2011 2 次提交
  13. 16 12月, 2011 3 次提交