1. 18 6月, 2006 1 次提交
    • 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
  2. 06 6月, 2006 1 次提交
  3. 11 4月, 2006 1 次提交
  4. 25 3月, 2006 2 次提交
    • L
      IPoIB: P_Key change event handling · 7a343d4c
      Leonid Arsh 提交于
      This patch causes the network interface to respond to P_Key change
      events correctly.  As a result, you'll see a child interface in the
      "RUNNING" state (netif_carrier_on()) only when the corresponding P_Key
      is configured by the SM.  When SM removes a P_Key, the "RUNNING" state
      will be disabled for the corresponding network interface.  To
      implement this, I added IB_EVENT_PKEY_CHANGE event handling.  To
      prevent flushing the device before the device is open by the "delay
      open" mechanism, I added an additional device flag called
      IPOIB_FLAG_INITIALIZED.
      
      This also prevents the child network interface from trying to join to
      multicast groups until the PKEY is configured.  We used to get error
      messages like:
      
          ib0.f2f2: couldn't attach QP to multicast group ff12:401b:f2f2:0:0:0:ffff:ffff
      
      in this case.  To fix this, I just check IPOIB_FLAG_OPER_UP flag in
      ipoib_set_mcast_list().
      Signed-off-by: NLeonid Arsh <leonida@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      7a343d4c
    • L
      IPoIB: Pass correct pointer when flushing child interfaces · 6f633c8d
      Leonid Arsh 提交于
      ipoib_ib_dev_flush() should get passed cpriv->dev, not &cpriv->dev.
      Signed-off-by: NLeonid Arsh <leonida@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      6f633c8d
  5. 21 3月, 2006 2 次提交
  6. 14 1月, 2006 1 次提交
  7. 13 1月, 2006 1 次提交
  8. 30 11月, 2005 1 次提交
  9. 03 11月, 2005 1 次提交
  10. 31 10月, 2005 1 次提交
  11. 29 10月, 2005 1 次提交
    • R
      [IPoIB] Drop RX packets when out of memory · 1993d683
      Roland Dreier 提交于
      Change the way IPoIB handles RX packets when it can't allocate a new
      receive skbuff.  If the allocation of a new receive skb fails, we now
      drop the packet we just received and repost the original receive skb.
      This means that the receive ring always stays full and we don't have
      to monkey around with trying to schedule a refill task for later.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      1993d683
  12. 18 10月, 2005 1 次提交
  13. 21 9月, 2005 1 次提交
    • R
      [PATCH] IPoIB: Don't flush workqueue from within workqueue · 8d2cae06
      Roland Dreier 提交于
      ipoib_mcast_restart_task() is always called from within the
      single-threaded IPoIB workqueue, so flushing the workqueue from within
      the function can lead to a recursion overflow.  But since we're
      running in a single-threaded workqueue, we're already synchronized
      against other items in the workqueue, so just get rid of the flush in
      ipoib_mcast_restart_task().
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      8d2cae06
  14. 27 8月, 2005 2 次提交
  15. 28 7月, 2005 1 次提交
  16. 17 4月, 2005 2 次提交