RDMA/bnxt_re: Fixing the Control path command and response handling
authorDevesh Sharma <devesh.sharma@broadcom.com>
Mon, 22 May 2017 10:15:31 +0000 (03:15 -0700)
committerDoug Ledford <dledford@redhat.com>
Tue, 13 Jun 2017 20:09:04 +0000 (16:09 -0400)
commitcc1ec769b87c7dea9092fb537c512e0b6b7a5dac
treeb23240aa3ea52a47e455fba62f37d8bb51feacb8
parent79e25959403e6a79552db28a87abed34de32a1df
RDMA/bnxt_re: Fixing the Control path command and response handling

Fixing a concurrency issue with creq handling. Each caller
was given a globally managed crsq element, which was
accessed outside a lock. This could result in corruption,
if lot of applications are simultaneously issuing Control Path
commands. Now, each caller will provide its own response buffer
and the responses will be copied under a lock.
Also, Fixing the queue full condition check for the CMDQ.

As a part of these changes, the control path code is refactored
to remove the code replication in the response status checking.

Signed-off-by: Devesh Sharma <devesh.sharma@broadcom.com>
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/bnxt_re/qplib_fp.c
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h
drivers/infiniband/hw/bnxt_re/qplib_res.h
drivers/infiniband/hw/bnxt_re/qplib_sp.c