1. 15 9月, 2006 1 次提交
  2. 04 8月, 2006 1 次提交
  3. 25 7月, 2006 2 次提交
  4. 01 7月, 2006 1 次提交
  5. 27 6月, 2006 1 次提交
  6. 18 6月, 2006 4 次提交
    • H
      [NET]: Add netif_tx_lock · 932ff279
      Herbert Xu 提交于
      Various drivers use xmit_lock internally to synchronise with their
      transmission routines.  They do so without setting xmit_lock_owner.
      This is fine as long as netpoll is not in use.
      
      With netpoll it is possible for deadlocks to occur if xmit_lock_owner
      isn't set.  This is because if a printk occurs while xmit_lock is held
      and xmit_lock_owner is not set can cause netpoll to attempt to take
      xmit_lock recursively.
      
      While it is possible to resolve this by getting netpoll to use
      trylock, it is suboptimal because netpoll's sole objective is to
      maximise the chance of getting the printk out on the wire.  So
      delaying or dropping the message is to be avoided as much as possible.
      
      So the only alternative is to always set xmit_lock_owner.  The
      following patch does this by introducing the netif_tx_lock family of
      functions that take care of setting/unsetting xmit_lock_owner.
      
      I renamed xmit_lock to _xmit_lock to indicate that it should not be
      used directly.  I didn't provide irq versions of the netif_tx_lock
      functions since xmit_lock is meant to be a BH-disabling lock.
      
      This is pretty much a straight text substitution except for a small
      bug fix in winbond.  It currently uses
      netif_stop_queue/spin_unlock_wait to stop transmission.  This is
      unsafe as an IRQ can potentially wake up the queue.  So it is safer to
      use netif_tx_disable.
      
      The hamradio bits used spin_lock_irq but it is unnecessary as
      xmit_lock must never be taken in an IRQ handler.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      932ff279
    • L
      IPoIB: Handle client reregister events · 508e4341
      Leonid Arsh 提交于
      Handle client reregister events by treating them just like LID or
      SM changes -- flush all cached paths and rejoin multicast groups.
      Signed-off-by: NLeonid Arsh <leonida@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      508e4341
    • J
      IPoIB: Fix kernel unaligned access on ia64 · 37c22a77
      Jack Morgenstein 提交于
      Fix misaligned access faults on ia64: never cast a misaligned
      neighbour->ha + 4 pointer to union ib_gid type; pass a void * pointer
      instead.  The memcpy was being optimized to use full word accesses
      because the compiler thought that union ib_gid is always aligned.
      
      The cast in IPOIB_GID_ARG is safe, since it is fixed to access each
      byte separately.
      Signed-off-by: NJack Morgenstein <jackm@mellanox.co.il>
      Signed-off-by: NMichael S. Tsirkin <mst@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      37c22a77
    • R
      IPoIB: Avoid using stale last_send counter when reaping AHs · 31c02e21
      Roland Dreier 提交于
      The comparisons of priv->tx_tail to ah->last_send in ipoib_free_ah()
      and ipoib_post_receive() are slightly unsafe, because priv->tx_lock is
      not held and hence a stale value of ah->last_send might be used, which
      would lead to freeing an AH before the driver was really done with it.
      The simple way to fix this is to the optimization of early free from
      ipoib_free_ah() and unconditionally queue AHs for reaping, and then
      take priv->tx_lock in __ipoib_reap_ah().
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      31c02e21
  7. 06 6月, 2006 1 次提交
  8. 10 5月, 2006 1 次提交
  9. 11 4月, 2006 5 次提交
  10. 05 4月, 2006 1 次提交
    • M
      IPoIB: Consolidate private neighbour data handling · d2e0655e
      Michael S. Tsirkin 提交于
      Consolidate IPoIB's private neighbour data handling into
      ipoib_neigh_alloc() and ipoib_neigh_free().  This will make it easier
      to keep track of the neighbour structures that IPoIB is handling, and
      is a nice cleanup of the code:
      
      add/remove: 2/1 grow/shrink: 1/8 up/down: 100/-178 (-78)
      function                                     old     new   delta
      ipoib_neigh_alloc                              -      61     +61
      ipoib_neigh_free                               -      36     +36
      ipoib_mcast_join_finish                     1288    1291      +3
      path_rec_completion                          575     573      -2
      ipoib_mcast_join_task                        664     660      -4
      ipoib_neigh_destructor                       101      92      -9
      ipoib_neigh_setup_dev                         14       3     -11
      ipoib_neigh_setup                             17       -     -17
      path_free                                    238     215     -23
      ipoib_mcast_free                             329     306     -23
      ipoib_mcast_send                             718     684     -34
      neigh_add_path                               705     650     -55
      Signed-off-by: NMichael S. Tsirkin <mst@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      d2e0655e
  11. 03 4月, 2006 1 次提交
    • R
      IPoIB: Always build debugging code unless CONFIG_EMBEDDED=y · f5545d24
      Roland Dreier 提交于
      Don't allow CONFIG_INFINIBAND_IPOIB_DEBUG to be disabled unless
      CONFIG_EMBEDDED is selected.  We want users (and especially distros)
      to have this turned on unless they really need to save space, because
      by the time we want debugging output, it's usually too late to rebuild
      a kernel.  The debugging output can be controlled at runtime via the
      debug_level module parameter in sysfs.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      f5545d24
  12. 30 3月, 2006 1 次提交
  13. 25 3月, 2006 3 次提交
  14. 21 3月, 2006 9 次提交
  15. 12 2月, 2006 1 次提交
    • R
      IPoIB: Yet another fix for send-only joins · 20b83382
      Roland Dreier 提交于
      Even after the last fix, it's still possible for a send-only join to
      start before the join for the broadcast group has finished.  This
      could cause us to create a multicast group using attributes from the
      broadcast group that haven't been initialized yet, so we would use
      garbage for the Q_Key, etc.  Fix this by waiting until the broadcast
      group's attached flag is set before starting send-only joins.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      20b83382
  16. 08 2月, 2006 2 次提交
  17. 18 1月, 2006 2 次提交
  18. 14 1月, 2006 1 次提交
  19. 13 1月, 2006 1 次提交
  20. 12 1月, 2006 1 次提交