IB/mlx5: Reorder GSI completions
authorHaggai Eran <haggaie@mellanox.com>
Mon, 29 Feb 2016 13:45:09 +0000 (15:45 +0200)
committerDoug Ledford <dledford@redhat.com>
Tue, 1 Mar 2016 16:04:07 +0000 (11:04 -0500)
commitea6dc2036224aaee887f391a1ee8833bea18c68b
tree3b9ff0b0b9b801372fc7ae351a94020d42e695b8
parent25361e02c44873a17e0148d9d5c42fa2e938a019
IB/mlx5: Reorder GSI completions

The emulated GSI QP's send completions are generated by multiple hardware
QPs, so their completions could arrive out of order with respect to the
order their work request were submitted.

Reorder the completions by keeping a list of the posted work request and
their completions. A newly received completion from the hardware updates
the list and marks its work request as completed. However, the completions
are only reported to the client according to the list order.

In order to support that, create a new private CQ to handle the hardware
completions.

Signed-off-by: Haggai Eran <haggaie@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/mlx5/gsi.c