1. 17 2月, 2007 2 次提交
    • S
      IB/sa: Track multicast join/leave requests · faec2f7b
      Sean Hefty 提交于
      The IB SA tracks multicast join/leave requests on a per port basis and
      does not do any reference counting: if two users of the same port join
      the same group, and one leaves that group, then the SA will remove the
      port from the group even though there is one user who wants to stay a
      member left.  Therefore, in order to support multiple users of the
      same multicast group from the same port, we need to perform reference
      counting locally.
      
      To do this, add an multicast submodule to ib_sa to perform reference
      counting of multicast join/leave operations.  Modify ib_ipoib (the
      only in-kernel user of multicast) to use the new interface.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      faec2f7b
    • S
      RDMA/iwcm: iw_cm_id destruction race fixes · ebb90986
      Steve Wise 提交于
      iwcm iw_cm_id destruction race condition fixes:
      
      - iwcm_deref_id() always wakes up if there's another reference.
      - clean up race condition in cm_work_handler().
      - create static void free_cm_id() which deallocs the work entries and then
        kfrees the cm_id memory.  This reduces code replication.
      - rem_ref() if this is the last reference -and- the IWCM owns freeing the
        cm_id, then free it.
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NTom Tucker <tom@opengridcomputing.com>
      Acked-by: NKrishna Kumar <krkumar2@in.ibm.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      ebb90986
  2. 15 2月, 2007 1 次提交
    • T
      [PATCH] remove many unneeded #includes of sched.h · cd354f1a
      Tim Schmielau 提交于
      After Al Viro (finally) succeeded in removing the sched.h #include in module.h
      recently, it makes sense again to remove other superfluous sched.h includes.
      There are quite a lot of files which include it but don't actually need
      anything defined in there.  Presumably these includes were once needed for
      macros that used to live in sched.h, but moved to other header files in the
      course of cleaning it up.
      
      To ease the pain, this time I did not fiddle with any header files and only
      removed #includes from .c-files, which tend to cause less trouble.
      
      Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
      arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
      allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
      configs in arch/arm/configs on arm.  I also checked that no new warnings were
      introduced by the patch (actually, some warnings are removed that were emitted
      by unnecessarily included header files).
      Signed-off-by: NTim Schmielau <tim@physik3.uni-rostock.de>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cd354f1a
  3. 13 2月, 2007 1 次提交
  4. 11 2月, 2007 3 次提交
  5. 05 2月, 2007 2 次提交
    • S
      RDMA/addr: Handle ethernet neighbour updates during route resolution · 1f126670
      Steve Wise 提交于
      The iWARP connection manager uses the ib_addr services to do route
      resolution (neighbour discovery in the IP world).  The ib_addr
      netevent callback routine, however, currently only acts on InfiniBand
      neighbour updates.  It needs to act on ethernet neighbour updates as
      well.
      
      This patch just removes filtering on device type altogether and will
      trigger on any neighour updates where the nud_type is valid.  This
      simplifies the code some.
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      1f126670
    • M
      IB: Return qp pointer as part of ib_wc · 062dbb69
      Michael S. Tsirkin 提交于
      struct ib_wc currently only includes the local QP number: this matches
      the IB spec, but seems mostly useless. The following patch replaces
      this with the pointer to qp itself, and updates all low level drivers
      and all users.
      
      This has the following advantages:
      - Ability to get a per-qp context through wc->qp->qp_context
      - Existing drivers already have the qp pointer ready in poll cq, so
        this change actually saves a tiny bit (extra memory read) on data path
        (for ehca it would actually be expensive to find the QP pointer when
        polling a CQ, but ehca does not support SRQ so we can leave wc->qp as
        NULL for ehca)
      - Users that need the QP number can still get it through wc->qp->qp_num
      
      Use case:
      
      In IPoIB connected mode code, I have a common CQ shared by multiple
      QPs.  To track connection usage, I need a way to get at some per-QP
      context upon the completion, and I would like to avoid allocating
      context object per work request just to stick a QP pointer into it.
      With this code, I can just use wc->qp->qp_context.
      Signed-off-by: NMichael S. Tsirkin <mst@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      062dbb69
  6. 08 1月, 2007 3 次提交
  7. 13 12月, 2006 7 次提交
  8. 09 12月, 2006 1 次提交
  9. 30 11月, 2006 16 次提交
  10. 22 11月, 2006 1 次提交
  11. 14 11月, 2006 1 次提交
    • R
      IB/mad: Fix race between cancel and receive completion · 39798695
      Roland Dreier 提交于
      When ib_cancel_mad() is called, it puts the canceled send on a list
      and schedules a "flushed" callback from process context.  However,
      this leaves a window where a receive completion could be processed
      before the send is fully flushed.
      
      This is fine, except that ib_find_send_mad() will find the MAD and
      return it to the receive processing, which results in the sender
      getting both a successful receive and a "flushed" send completion for
      the same request.  Understandably, this confuses the sender, which is
      expecting only one of these two callbacks, and leads to grief such as
      a use-after-free in IPoIB.
      
      Fix this by changing ib_find_send_mad() to return a send struct only
      if the status is still successful (and not "flushed").  The search of
      the send_list already had this check, so this patch just adds the same
      check to the search of the wait_list.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      39798695
  12. 03 11月, 2006 1 次提交
  13. 31 10月, 2006 1 次提交