Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp8379729ybl; Thu, 16 Jan 2020 15:42:09 -0800 (PST) X-Google-Smtp-Source: APXvYqzX2NJd+KMs6dlmjwbFNOgd5+s4tTMGsA3QP3lr/VzlimNFug+h0aAdPlyZIRIqNPn0M7pl X-Received: by 2002:a9d:774e:: with SMTP id t14mr4032954otl.358.1579218129121; Thu, 16 Jan 2020 15:42:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579218129; cv=none; d=google.com; s=arc-20160816; b=Auc8XZM410l2oThT+1WPSJXjBvuyba+OGS1aCa7pNgKfd94Du2cMGhIzC/KS+L99+2 ShVNYSjD9b5AV/47BeuIkiRspBaIaXj0e3GH1mDBjINgt0tUDcCqxh8y9hB+urQl21vk hG4Nmyk8zD4lMt0ly9TWrsOjBrEV6239p2q5ZO6ZesvP5/GAHpZfpnpvQatzxvDcwOaM 46prsR4+AouAKLiQxAgeBnIouLqNHMYm+xMxFsbJsb+iUnC/4h3cTYAEysaaXtv/51KT e41Hr85Swxph3NwQpamrTTPFR8+SaXuZ+eHvtUGfLhcZEdevlGhUCaUY085Ja2gBS0ay 8Sng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=SD3pFTrdz8fpKheIk4BHBsrs3mPXKhIEKXYfbyo1VRQ=; b=Ne1CVpFkSTnZEZej7otI3fBPkFlBgx3VZjYSZEgLNTKDvm8pNDAbf5v50mMO+jRmS3 27/IWnK9cPXr6arkG2MicWvZ2jfpb7z2K7RcK5L0z2sEMwKuHwylgL9FIbHyYhfhXdy5 6C86cKWJpva6OYppFVPRJSYjpB+oBjBniqrCs8Ya7Xy1b1zgI+3tQZSw44NIBLbl04qP EiMd4P9F3M3G4WoLWIder690A60j6ejMAED60AZ43Ogz+0oHzJ6U7M7Adi0ld6PZ0Dw9 8c1JC6bgQzs6mn+qnmDXUgkoc+lpvdl4C02Nre1KMki25HH2CDvyoPtdkVxjRJK0q4vi PKSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=hu++GIFJ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u16si12494858oia.233.2020.01.16.15.41.57; Thu, 16 Jan 2020 15:42:09 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=hu++GIFJ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389084AbgAPX2E (ORCPT + 99 others); Thu, 16 Jan 2020 18:28:04 -0500 Received: from mail.kernel.org ([198.145.29.99]:60456 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390442AbgAPX2C (ORCPT ); Thu, 16 Jan 2020 18:28:02 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4EDBD206D9; Thu, 16 Jan 2020 23:28:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579217281; bh=k1xW4E0PnhvTwxAb+0h6nrBd+l2dC40n2yHqfbRZWxQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hu++GIFJpeqw7/ROD8e+b3aFVj1zdW0okcFd002EvL+GwXXgZIm/H4jrtnEgI9Zsv Mb/C963L56DxiYDWatOWFteNFyZmijwd2SZuLPz2xqlCIeN+X4qyKMIGsBWx4hPhI8 pVQ3U2UTV/0Lsk5K2g19dygawtz3SfnRz2OD2p24= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Selvin Xavier , Jason Gunthorpe Subject: [PATCH 4.19 19/84] RDMA/bnxt_re: Fix Send Work Entry state check while polling completions Date: Fri, 17 Jan 2020 00:17:53 +0100 Message-Id: <20200116231715.935439547@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200116231713.087649517@linuxfoundation.org> References: <20200116231713.087649517@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Selvin Xavier 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 Signed-off-by: Jason Gunthorpe Signed-off-by: Greg Kroah-Hartman --- 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)--;