1. 16 Aug, 2006 1 commit
  2. 11 Aug, 2006 1 commit
    • Roland Dreier's avatar
      IB/mthca: Fix potential AB-BA deadlock with CQ locks · a19aa5c5
      Roland Dreier authored
      When destroying a QP, mthca locks both the QP's send CQ and receive
      CQ.  However, the following scenario is perfectly valid:
      
          QP_a: send_cq == CQ_x, recv_cq == CQ_y
          QP_b: send_cq == CQ_y, recv_cq == CQ_x
      
      The old mthca code simply locked send_cq and then recv_cq, which in
      this case could lead to an AB-BA deadlock if QP_a and QP_b were
      destroyed simultaneously.
      
      We can fix this by changing the locking code to lock the CQ with the
      lower CQ number first, which will create a consistent lock ordering.
      Also, the second CQ is locked with spin_lock_nested() to tell lockdep
      that we know what we're doing with the lock nesting.
      
      This bug was found by lockdep.
      Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
      a19aa5c5
  3. 10 Aug, 2006 1 commit
  4. 06 Aug, 2006 37 commits