1. 25 6月, 2005 2 次提交
    • D
      [TG3]: Eliminate all hw IRQ handler spinlocks. · f47c11ee
      David S. Miller 提交于
      Move all driver spinlocks to be taken at sw IRQ
      context only.
      
      This fixes the skb_copy() we were doing with hw
      IRQs disabled (which is illegal and triggers a
      BUG() with HIGHMEM enabled).  It also simplifies
      the locking all over the driver tremendously.
      
      We accomplish this feat by creating a special
      sequence to synchronize with the hw IRQ handler
      using a binary state and synchronize_irq().
      This idea is from Herbert Xu.
      
      Thanks to Michael Chan for helping to track down
      all of the race conditions in initial versions
      of this code.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f47c11ee
    • D
      [TG3]: Fix missing memory barriers and SD_STATUS_UPDATED bit clearing. · cd024c8b
      David S. Miller 提交于
      There must be a rmb() between reading the status block tag
      and calling tg3_has_work().  This was missing in tg3_mis()
      and tg3_interrupt_tagged().  tg3_poll() got it right.
      
      Also, SD_STATUS_UPDATED must be cleared in the status block
      right before we call tg3_has_work().  Only tg3_poll() got this
      wrong.
      
      Based upon patches and commentary from Grant Grundler and
      Michael Chan.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cd024c8b
  2. 24 6月, 2005 2 次提交
  3. 23 6月, 2005 2 次提交
  4. 22 6月, 2005 2 次提交
  5. 21 6月, 2005 1 次提交
  6. 14 6月, 2005 1 次提交
  7. 13 6月, 2005 1 次提交
  8. 10 6月, 2005 1 次提交
    • M
      [PATCH] iseries_veth: Supress spurious WARN_ON() at module unload · 243cd55e
      Michael Ellerman 提交于
      My patch from a few weeks back (now in mainline), called "Cleanup skbs to
      prevent unregister_netdevice() hanging", can cause our TX timeout code to
      fire on machines with lots of VLANs (because it takes > 2 seconds between
      when we stop the queues and when we're finished stopping the connections).
      
      When that happens the TX timeout code freaks out and does a WARN_ON()
      because as far as it's concerned there shouldn't be a TX timeout happening,
      which is fair enough.
      
      I have a "proper" fix for this, which is to a) do refcounting on
      connections and b) implement a proper ack timer so we don't keep unacked
      skbs lying around for ever.  But for 2.6.12 I propose just supressing the
      WARN_ON().  Users will still see the "NETDEV WATCHDOG" warning, but that's
      not nearly as bad as a WARN_ON() which users interpret as an Oops.
      Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      243cd55e
  9. 09 6月, 2005 2 次提交
  10. 07 6月, 2005 3 次提交
  11. 03 6月, 2005 2 次提交
  12. 30 5月, 2005 9 次提交
  13. 28 5月, 2005 11 次提交
  14. 27 5月, 2005 1 次提交