android_kernel_motorola_sm6225/drivers/infiniband/hw/cxgb4
Steve Wise 1cf24dcef4 RDMA/cxgb4: Fix QP flush logic
This patch makes following fixes in QP flush logic:

- correctly flushes unsignaled WRs followed by a signaled WR
- supports for flushing a CQ bound to multiple QPs
- resets cidx_flush if a active queue starts getting HW CQEs again
- marks WQ in error when we leave RTS. This was only being done for
  user queues, but we need it for kernel queues too so that
  post_send/post_recv will start returning the appropriate error
  synchronously
- eats unsignaled read resp CQEs. HW always inserts CQEs so we must
  silently discard them if the read work request was unsignaled.
- handles QP flushes with pending SW CQEs. The flush and out of order
  completion logic has a bug where if out of order completions are
  flushed but not yet polled by the consumer and the qp is then
  flushed then we end up inserting duplicate completions.
- c4iw_flush_sq() should only flush wrs that have not already been
  flushed.  Since we already track where in the SQ we've flushed via
  sq.cidx_flush, just start at that point and flush any remaining.
  This bug only caused a problem in the presence of unsignaled work
  requests.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Vipul Pandya <vipul@chelsio.com>

[ Fixed sparse warning due to htonl/ntohl confusion.  - Roland ]

Signed-off-by: Roland Dreier <roland@purestorage.com>
2013-08-13 11:55:45 -07:00
..
cm.c RDMA/cxgb4: Handle newer firmware changes 2013-08-13 11:55:44 -07:00
cq.c RDMA/cxgb4: Fix QP flush logic 2013-08-13 11:55:45 -07:00
device.c RDMA/cxgb4: Add support for active and passive open connection with IPv6 address 2013-08-13 11:55:06 -07:00
ev.c RDMA/cxgb4: Handle newer firmware changes 2013-08-13 11:55:44 -07:00
id_table.c drivers/infiniband/hw: rename random32() to prandom_u32() 2013-05-07 18:38:27 -07:00
iw_cxgb4.h RDMA/cxgb4: Fix QP flush logic 2013-08-13 11:55:45 -07:00
Kconfig RDMA/cxgb4: Add support for active and passive open connection with IPv6 address 2013-08-13 11:55:06 -07:00
Makefile RDMA/cxgb4: Remove kfifo usage 2012-05-18 13:22:36 -07:00
mem.c RDMA/cxgb4: Map pbl buffers for dma if using DSGL. 2013-03-14 11:35:59 -04:00
provider.c RDMA/cxgb4: Add Support for Chelsio T5 adapter 2013-03-14 11:35:58 -04:00
qp.c RDMA/cxgb4: Fix QP flush logic 2013-08-13 11:55:45 -07:00
resource.c RDMA/cxgb4: Remove kfifo usage 2012-05-18 13:22:36 -07:00
t4.h RDMA/cxgb4: Fix QP flush logic 2013-08-13 11:55:45 -07:00
t4fw_ri_api.h RDMA/cxgb4: Add module option to tweak delayed ack 2010-07-21 10:53:52 -07:00
user.h RDMA/cxgb4: Add DB Overflow Avoidance 2012-05-18 13:22:31 -07:00