lkml.org 
[lkml]   [2020]   [Jan]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 19/84] RDMA/bnxt_re: Fix Send Work Entry state check while polling completions
    Date
    From: Selvin Xavier <selvin.xavier@broadcom.com>

    commit c5275723580922e5f3264f96751337661a153c7d upstream.

    Some adapters need a fence Work Entry to handle retransmission. Currently
    the driver checks for this condition, only if the Send queue entry is
    signalled. Implement the condition check, irrespective of the signalled
    state of the Work queue entries

    Failure to add the fence can result in access to memory that is already
    marked as completed, triggering data corruption, transmission failure,
    IOMMU failures, etc.

    Fixes: 9152e0b722b2 ("RDMA/bnxt_re: HW workarounds for handling specific conditions")
    Link: https://lore.kernel.org/r/1574671174-5064-3-git-send-email-selvin.xavier@broadcom.com
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/infiniband/hw/bnxt_re/qplib_fp.c | 12 ++++++------
    1 file changed, 6 insertions(+), 6 deletions(-)

    --- a/drivers/infiniband/hw/bnxt_re/qplib_fp.c
    +++ b/drivers/infiniband/hw/bnxt_re/qplib_fp.c
    @@ -2273,13 +2273,13 @@ static int bnxt_qplib_cq_process_req(str
    /* Add qp to flush list of the CQ */
    bnxt_qplib_add_flush_qp(qp);
    } else {
    + /* Before we complete, do WA 9060 */
    + if (do_wa9060(qp, cq, cq_cons, sw_sq_cons,
    + cqe_sq_cons)) {
    + *lib_qp = qp;
    + goto out;
    + }
    if (swq->flags & SQ_SEND_FLAGS_SIGNAL_COMP) {
    - /* Before we complete, do WA 9060 */
    - if (do_wa9060(qp, cq, cq_cons, sw_sq_cons,
    - cqe_sq_cons)) {
    - *lib_qp = qp;
    - goto out;
    - }
    cqe->status = CQ_REQ_STATUS_OK;
    cqe++;
    (*budget)--;

    \
     
     \ /
      Last update: 2020-01-17 00:28    [W:4.285 / U:0.208 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site