2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-22 12:14:01 +08:00
linux-next/drivers/infiniband/hw
Mike Marciniszyn c0af2c057d IB/qib: Prevent double completions after a timeout or RNR error
There is a double completion associated with error handling for RC QPs.

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 an ack is needed.
 - a bunch of flushes occur as ipoib posts WQEs 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 <mike.marciniszyn@qlogic.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2011-02-17 14:04:50 -08:00
..
amso1100 RDMA/amso1100: Fix compile warnings 2011-01-28 15:40:25 -08:00
cxgb3 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-01-13 10:05:56 -08:00
cxgb4 RDMA/cxgb4: Set the correct device physical function for iWARP connections 2011-01-28 15:34:28 -08:00
ehca RDMA: Use vzalloc() to replace vmalloc()+memset(0) 2011-01-12 11:11:58 -08:00
ipath RDMA: Update workqueue usage 2011-01-16 21:16:31 -08:00
mlx4 IB/mlx4: Handle protocol field in multicast table 2011-01-12 14:49:17 -08:00
mthca kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT 2011-01-20 17:02:05 -08:00
nes RDMA/nes: Fix incorrect SFP+ link status detection on driver init 2011-01-16 13:23:35 -08:00
qib IB/qib: Prevent double completions after a timeout or RNR error 2011-02-17 14:04:50 -08:00