1. 30 11月, 2006 2 次提交
  2. 17 10月, 2006 1 次提交
    • A
      IB/mthca: Use mmiowb after doorbell ring · 1f5c23e2
      Arthur Kepner 提交于
      We discovered a problem when running IPoIB applications on multiple
      CPUs on an Altix system. Many messages such as:
      
      ib_mthca 0002:01:00.0: SQ 000014 full (19941644 head, 19941707 tail, 64 max, 0 nreq)
      
      appear in syslog, and the driver wedges up.
      
      Apparently this is because writes to the doorbells from different CPUs
      reach the device out of order. The following patch adds mmiowb() calls
      after doorbell rings to ensure the doorbell writes are ordered.
      Signed-off-by: NArthur Kepner <akepner@sgi.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      1f5c23e2
  3. 11 10月, 2006 1 次提交
  4. 23 9月, 2006 1 次提交
  5. 24 7月, 2006 1 次提交
  6. 18 6月, 2006 1 次提交
    • R
      IB/mthca: Make all device methods truly reentrant · c93b6fba
      Roland Dreier 提交于
      Documentation/infiniband/core_locking.txt says:
      
        All of the methods in struct ib_device exported by a low-level
        driver must be fully reentrant.  The low-level driver is required to
        perform all synchronization necessary to maintain consistency, even
        if multiple function calls using the same object are run
        simultaneously.
      
      However, mthca's modify_qp, modify_srq and resize_cq methods are
      currently not reentrant.  Add a mutex to the QP, SRQ and CQ structures
      so that these calls can be properly serialized.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      c93b6fba
  7. 25 5月, 2006 1 次提交
  8. 10 5月, 2006 1 次提交
    • R
      IB/mthca: Fix race in reference counting · a3285aa4
      Roland Dreier 提交于
      Fix races in in destroying various objects.  If a destroy routine
      waits for an object to become free by doing
      
      	wait_event(&obj->wait, !atomic_read(&obj->refcount));
      	/* now clean up and destroy the object */
      
      and another place drops a reference to the object by doing
      
      	if (atomic_dec_and_test(&obj->refcount))
      		wake_up(&obj->wait);
      
      then this is susceptible to a race where the wait_event() and final
      freeing of the object occur between the atomic_dec_and_test() and the
      wake_up().  And this is a use-after-free, since wake_up() will be
      called on part of the already-freed object.
      
      Fix this in mthca by replacing the atomic_t refcounts with plain old
      integers protected by a spinlock.  This makes it possible to do the
      decrement of the reference count and the wake_up() so that it appears
      as a single atomic operation to the code waiting on the wait queue.
      
      While touching this code, also simplify mthca_cq_clean(): the CQ being
      cleaned cannot go away, because it still has a QP attached to it.  So
      there's no reason to be paranoid and look up the CQ by number; it's
      perfectly safe to use the pointer that the callers already have.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      a3285aa4
  9. 13 4月, 2006 1 次提交
    • J
      IB/mthca: Fix max_srq_sge returned by ib_query_device for Tavor devices · 59fef3b1
      Jack Morgenstein 提交于
      The driver allocates SRQ WQEs size with a power of 2 size both for
      Tavor and for memfree. For Tavor, however, the hardware only requires
      the WQE size to be a multiple of 16, not a power of 2, and the max
      number of scatter-gather allowed is reported accordingly by the
      firmware (and this is the value currently returned by
      ib_query_device() and ibv_query_device()).
      
      If the max number of scatter/gather entries reported by the FW is used
      when creating an SRQ, the creation will fail for Tavor, since the
      required WQE size will be increased to the next power of 2, which
      turns out to be larger than the device permitted max WQE size (which
      is not a power of 2).
      
      This patch reduces the reported SRQ max wqe size so that it can be used
      successfully in creating an SRQ on Tavor HCAs.
      Signed-off-by: NJack Morgenstein <jackm@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      59fef3b1
  10. 30 3月, 2006 2 次提交
  11. 25 3月, 2006 2 次提交
  12. 21 3月, 2006 5 次提交
  13. 05 1月, 2006 1 次提交
  14. 11 11月, 2005 1 次提交
  15. 07 11月, 2005 1 次提交
  16. 31 10月, 2005 1 次提交
  17. 18 10月, 2005 3 次提交
  18. 20 9月, 2005 1 次提交
  19. 19 9月, 2005 2 次提交
  20. 27 8月, 2005 1 次提交