Please pull the following fix from
git.openfabrics.org/~mmarciniszyn/scm/linux-2.6.to_ofed.   This fixes an issue 
revealed during OFED 1.5.3 testing.

Mike

commit 0012f25501856cf0f47397fbb57e26bf46b11b99
Author: Mike Marciniszyn <[email protected]>
Date:   Wed Feb 16 09:47:41 2011 -0500

    IB/qib: Prevent double completions after a timeout or RNR error

    From: Mike Marciniszyn <[email protected]>

    There is a double completion associated with error handling
    for RC QP's.

    The sequence is:
    - The do_rc_ack() routine fields an RNR nack and there are 0 rnr_retries
    configured on the QP.
    - qib_error_qp() stops the pending timer
    - qib_rc_send_complete() is called from sdma_complete()
    - qib_rc_send_complete() starts the timer because the msb of the psn just
    completed says and ack is needed.
    - a bunch of flushes occur as ipoib posts wqe's to an error'ed qp
    - rc_timeout() calls qib_restart_rc()
    - qib_restart_rc() calls qib_send_complete() with a IB_WC_RETRY_EXC_ERR on a
    wqe that has already been completed in the past

    The fix avoids starting the timer since another packet will never
    arrive.

    Signed-off-by: Mike Marciniszyn <[email protected]>

________________________________
This message and any attached documents contain information from QLogic 
Corporation or its wholly-owned subsidiaries that may be confidential. If you 
are not the intended recipient, you may not read, copy, distribute, or use this 
information. If you have received this transmission in error, please notify the 
sender immediately by reply e-mail and then delete this message.
_______________________________________________
ewg mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg

Reply via email to