diff options
author | Yonatan Cohen <yonatanc@mellanox.com> | 2016-11-16 11:39:17 +0300 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2016-11-17 04:03:44 +0300 |
commit | aa75b07b478a774b1432e2df1be5cd8ae834de0f (patch) | |
tree | 61258e0d529054999d30e085d1609ed4f4c5e0ba /drivers/infiniband/sw/rxe/rxe_queue.h | |
parent | 002e062e13db10973adb8302f231e48b477c7ccf (diff) | |
download | linux-aa75b07b478a774b1432e2df1be5cd8ae834de0f.tar.xz |
IB/rxe: Clear queue buffer when modifying QP to reset
RXE resets the send-q only once in rxe_qp_init_req() when
QP is created, but when the QP is reused after QP reset, the send-q
holds previous garbage data.
This garbage data wrongly fails CQEs that otherwise
should have completed successfully.
Fixes: 8700e3e7c485 ("Soft RoCE driver")
Signed-off-by: Yonatan Cohen <yonatanc@mellanox.com>
Reviewed-by: Moni Shoua <monis@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/sw/rxe/rxe_queue.h')
-rw-r--r-- | drivers/infiniband/sw/rxe/rxe_queue.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/infiniband/sw/rxe/rxe_queue.h b/drivers/infiniband/sw/rxe/rxe_queue.h index 239fd609c31e..8c8641c87817 100644 --- a/drivers/infiniband/sw/rxe/rxe_queue.h +++ b/drivers/infiniband/sw/rxe/rxe_queue.h @@ -84,6 +84,8 @@ int do_mmap_info(struct rxe_dev *rxe, size_t buf_size, struct rxe_mmap_info **ip_p); +void rxe_queue_reset(struct rxe_queue *q); + struct rxe_queue *rxe_queue_init(struct rxe_dev *rxe, int *num_elem, unsigned int elem_size); |