1. 05 2月, 2007 2 次提交
    • 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
    • M
      IB: Include <linux/kref.h> explicitly in <rdma/ib_verbs.h> · 459d6e2a
      Michael S. Tsirkin 提交于
      <rdma/ib_verbs.h> uses struct kref, so it should include <linux/kref.h>
      explicitly to avoid hidden include dependencies.
      Signed-off-by: NMichael S. Tsirkin <mst@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      459d6e2a
  2. 16 12月, 2006 1 次提交
    • R
      IB: Fix ib_dma_alloc_coherent() wrapper · c59a3da1
      Roland Dreier 提交于
      The ib_dma_alloc_coherent() wrapper uses a u64* for the dma_handle
      parameter, unlike dma_alloc_coherent, which uses dma_addr_t*.  This
      means that we need a temporary variable to handle the case when
      ib_dma_alloc_coherent() just falls through directly to
      dma_alloc_coherent() on architectures where sizeof u64 != sizeof
      dma_addr_t.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      c59a3da1
  3. 14 12月, 2006 1 次提交
  4. 13 12月, 2006 1 次提交
  5. 23 9月, 2006 2 次提交
  6. 18 6月, 2006 4 次提交
  7. 11 4月, 2006 1 次提交
    • J
      IB: simplify static rate encoding · bf6a9e31
      Jack Morgenstein 提交于
      Push translation of static rate to HCA format into low-level drivers,
      where it belongs.  For static rate encoding, use encoding of rate
      field from IB standard PathRecord, with addition of value 0, for
      backwards compatibility with current usage.  The changes are:
      
       - Add enum ib_rate to midlayer includes.
       - Get rid of static rate translation in IPoIB; just use static rate
         directly from Path and MulticastGroup records.
       - Update mthca driver to translate absolute static rate into the
         format used by hardware.  This also fixes mthca's static rate
         handling for HCAs that are capable of 4X DDR.
      Signed-off-by: NJack Morgenstein <jackm@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      bf6a9e31
  8. 21 3月, 2006 5 次提交
  9. 10 1月, 2006 1 次提交
  10. 11 11月, 2005 1 次提交
    • R
      [IB] Have cq_resize() method take an int, not int* · 40de2e54
      Roland Dreier 提交于
      Change the struct ib_device.resize_cq() method to take a plain integer
      that holds the new CQ size, rather than a pointer to an integer that
      it uses to return the new size.  This makes the interface match the
      exported ib_resize_cq() signature, and allows the low-level driver to
      update the CQ size with proper locking if necessary.
      
      No in-tree drivers are exporting this method yet.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      40de2e54
  11. 26 10月, 2005 1 次提交
    • S
      [IB] Fix MAD layer DMA mappings to avoid touching data buffer once mapped · 34816ad9
      Sean Hefty 提交于
      The MAD layer was violating the DMA API by touching data buffers used
      for sends after the DMA mapping was done.  This causes problems on
      non-cache-coherent architectures, because the device doing DMA won't
      see updates to the payload buffers that exist only in the CPU cache.
      
      Fix this by having all MAD consumers use ib_create_send_mad() to
      allocate their send buffers, and moving the DMA mapping into the MAD
      layer so it can be done just before calling send (and after any
      modifications of the send buffer by the MAD layer).
      
      Tested on a non-cache-coherent PowerPC 440SPe system.
      Signed-off-by: NSean Hefty <sean.hefty@intel.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      34816ad9
  12. 18 10月, 2005 2 次提交
  13. 27 9月, 2005 1 次提交
    • R
      [IB] uverbs: Close some exploitable races · 63c47c28
      Roland Dreier 提交于
      Al Viro pointed out that the current IB userspace verbs interface
      allows userspace to cause mischief by closing file descriptors before
      we're ready, or issuing the same command twice at the same time.  This
      patch closes those races, and fixes other obvious problems such as a
      module reference leak.
      
      Some other interface bogosities will require an ABI change to fix
      properly, so I'm deferring those fixes until 2.6.15.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      63c47c28
  14. 27 8月, 2005 4 次提交
  15. 28 7月, 2005 2 次提交
  16. 08 7月, 2005 1 次提交
    • R
      [PATCH] IB uverbs: core API extensions · e2773c06
      Roland Dreier 提交于
      First of a series of patches which add support for direct userspace access to
      InfiniBand hardware -- so-called "userspace verbs." I believe these patches
      are ready to merge, but a final review would be useful.
      
      These patches should incorporate all of the feedback from the discussion when
      I posted an earlier version back in April (see
      http://lkml.org/lkml/2005/4/4/267 for the start of the thread).  In
      particular, memory pinned for use by userspace is accounted for in
      current->mm->vm_locked and requests to pin memory are checked against
      RLIMIT_MEMLOCK.
      
      This patch:
      
      Modify the ib_verbs.h header file with changes required for InfiniBand
      userspace verbs support.  We add a few structures to keep track of userspace
      context, and extend the driver API so that low-level drivers know when they're
      creating resources that will be used from userspace.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      e2773c06
  17. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4