1. 20 Mar, 2006 2 commits
  2. 23 Jan, 2006 6 commits
  3. 05 Nov, 2005 4 commits
  4. 08 Sep, 2005 1 commit
  5. 29 Aug, 2005 3 commits
    • Michael Chan's avatar
      [BNX2]: remove atomics in tx · e89bbf10
      Michael Chan authored
      
      
      Remove atomic operations in the fast tx path. Expensive atomic
      operations were used to keep track of the number of available tx
      descriptors. The new code uses the difference between the consumer
      and producer index to determine the number of free tx descriptors.
      
      As suggested by Jeff Garzik, the name of the inline function is
      changed to all lower case.
      Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e89bbf10
    • Michael Chan's avatar
      [BNX2]: speedup serdes linkup · cd339a0e
      Michael Chan authored
      
      
      This speeds up link-up time on 5706 SerDes if the link partner does
      not autoneg, a rather common scenario in blade servers. Some blade
      servers use IPMI for keyboard input and it's important to minimize
      link disruptions.
      
      The speedup is achieved by shortening the timer to (HZ / 3) during
      the transient period right after initiating a SerDes autoneg. If
      autoneg does not complete, parallel detect can be done sooner. After
      the transient period is over, the timer goes back to its normal HZ
      interval.
      
      As suggested by Jeff Garzik, the timer initialization is moved to
      bnx2_init_board() from bnx2_open().
      
      An eeprom bit is also added to allow default forced SerDes speed for
      even faster link-up time.
      Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cd339a0e
    • Michael Chan's avatar
      [BNX2]: Fix rtnl deadlock in bnx2_close · afdc08b9
      Michael Chan authored
      
      
      This fixes an rtnl deadlock problem when flush_scheduled_work() is
      called from bnx2_close(). In rare cases, linkwatch_event() may be on
      the workqueue from a previous close of a different device and it will
      try to get the rtnl lock which is already held by dev_close().
      
      The fix is to set a flag if we are in the reset task which is run
      from the workqueue. bnx2_close() will loop until the flag is cleared.
      As suggested by Jeff Garzik, the loop is changed to call msleep(1)
      instead of yield() in the original patch.
      
      flush_scheduled_work() is also moved to bnx2_remove_one() before the
      netdev is freed.
      Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      afdc08b9
  6. 26 May, 2005 1 commit