Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp20387ybp; Thu, 3 Oct 2019 09:36:03 -0700 (PDT) X-Google-Smtp-Source: APXvYqx+NDJ14vZpWv7rBb+/yKepHjLH1mv22IJHvo44Nnze+BUR5nXPYVtkloU/+47b5xCVJnYS X-Received: by 2002:aa7:d816:: with SMTP id v22mr10831441edq.28.1570120563876; Thu, 03 Oct 2019 09:36:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570120563; cv=none; d=google.com; s=arc-20160816; b=X9yT5DN9brVmb91f/4RKE8pwDLITXhqALyaX48kmVGlOsrfBESOpnpqbmr3CDnvU8w 6fLNolMMKDd10prL1ex3EbEY1Z6JaxsEWLeu5Fc6AWe8BGP1Roa5wIq7m4i8PPMSnrGh B3KKcc4xVpM2T2rRKm52CatIS709czTFWwjkF/X4A/hPBUDUF+i0YsQXVLp3YJSwe7MQ eJ0Qhsvvx4mhOzxyt8fGJNC9oVEumAe3OpvionwcuzILhivjAgdffaGl3UBhAip8AkHh iWVx7KneNmdPpJrKF58skyo+K9eNsabbK9RMrhH9FTkvpgmoIzMFRynRHuG+uSs/2ZFg a5JA== 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=NxEwg/I6gSIKKP+WmsgRFoBTqiBy3Pgq9cfE1hOoopA=; b=FyACVO5c9qcvpAnPhxApr2y6Y1kl7g/o8fVNPNlxCAkxwhCT+4MNDCSI5H0s4cEurM JUC6hyPmZpH3LZt5n7SUcQz2uZ39Pim3xSd6oS1PylHruywoO9Ri1VtcE6oBQWR6Qy4o H5mB4jLsKtRRcXTG2ueiI92MRSrBH/IUnaHAfEileZ21HN66JImHQIVNHezIswJ+DWoy 8oBfw8kVs/cAxI69xnXiQy4qo/tPa/1iq6hH7bY67b/aIkxhdW3AvnTw0HavZweRp1VV cDQXGCI/bNEU1L0k10Vvd9PKUrcHQWUuLdFYEWm7bI7fqOM+1peVUwLlvhluHNHSW645 FQNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=2TKNAzHe; 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 p1si1868663eda.406.2019.10.03.09.35.38; Thu, 03 Oct 2019 09:36:03 -0700 (PDT) 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=2TKNAzHe; 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 S2392096AbfJCQeF (ORCPT + 99 others); Thu, 3 Oct 2019 12:34:05 -0400 Received: from mail.kernel.org ([198.145.29.99]:42260 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2392084AbfJCQeB (ORCPT ); Thu, 3 Oct 2019 12:34:01 -0400 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 5A2E12086A; Thu, 3 Oct 2019 16:34:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570120440; bh=uzBkc+s+9oH46cUKSh2Mhd08Dd+i7rdy0iLJBcc4poo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=2TKNAzHemKIxbf4P0DUzEbYIQ1CPJu+nAUxQqdELlG1WAryyqB/eTBaKJ2qbN483W 7Crl5revkq4Y1GL3eRY6yd45phy2f5Iu0evZbyLhVLH0Cen1fkroz+fvvbT1hm86CG HnmzIqmU6jOnkg+Hiz4zFAf3yt/bhBLwiRx/hiag= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mike Marciniszyn , Kaike Wan , Jason Gunthorpe Subject: [PATCH 5.2 223/313] IB/hfi1: Do not update hcrc for a KDETH packet during fault injection Date: Thu, 3 Oct 2019 17:53:21 +0200 Message-Id: <20191003154555.004112690@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191003154533.590915454@linuxfoundation.org> References: <20191003154533.590915454@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: Kaike Wan commit b2590bdd0b1dfb91737e6cb07ebb47bd74957f7e upstream. When a KDETH packet is subject to fault injection during transmission, HCRC is supposed to be omitted from the packet so that the hardware on the receiver side would drop the packet. When creating pbc, the PbcInsertHcrc field is set to be PBC_IHCRC_NONE if the KDETH packet is subject to fault injection, but overwritten with PBC_IHCRC_LKDETH when update_hcrc() is called later. This problem is fixed by not calling update_hcrc() when the packet is subject to fault injection. Fixes: 6b6cf9357f78 ("IB/hfi1: Set PbcInsertHcrc for TID RDMA packets") Cc: Link: https://lore.kernel.org/r/20190715164546.74174.99296.stgit@awfm-01.aw.intel.com Reviewed-by: Mike Marciniszyn Signed-off-by: Kaike Wan Signed-off-by: Mike Marciniszyn Signed-off-by: Jason Gunthorpe Signed-off-by: Greg Kroah-Hartman --- drivers/infiniband/hw/hfi1/verbs.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) --- a/drivers/infiniband/hw/hfi1/verbs.c +++ b/drivers/infiniband/hw/hfi1/verbs.c @@ -874,16 +874,17 @@ int hfi1_verbs_send_dma(struct rvt_qp *q else pbc |= (ib_is_sc5(sc5) << PBC_DC_INFO_SHIFT); - if (unlikely(hfi1_dbg_should_fault_tx(qp, ps->opcode))) - pbc = hfi1_fault_tx(qp, ps->opcode, pbc); pbc = create_pbc(ppd, pbc, qp->srate_mbps, vl, plen); - /* Update HCRC based on packet opcode */ - pbc = update_hcrc(ps->opcode, pbc); + if (unlikely(hfi1_dbg_should_fault_tx(qp, ps->opcode))) + pbc = hfi1_fault_tx(qp, ps->opcode, pbc); + else + /* Update HCRC based on packet opcode */ + pbc = update_hcrc(ps->opcode, pbc); } tx->wqe = qp->s_wqe; ret = build_verbs_tx_desc(tx->sde, len, tx, ahg_info, pbc); @@ -1030,12 +1031,12 @@ int hfi1_verbs_send_pio(struct rvt_qp *q else pbc |= (ib_is_sc5(sc5) << PBC_DC_INFO_SHIFT); + pbc = create_pbc(ppd, pbc, qp->srate_mbps, vl, plen); if (unlikely(hfi1_dbg_should_fault_tx(qp, ps->opcode))) pbc = hfi1_fault_tx(qp, ps->opcode, pbc); - pbc = create_pbc(ppd, pbc, qp->srate_mbps, vl, plen); - - /* Update HCRC based on packet opcode */ - pbc = update_hcrc(ps->opcode, pbc); + else + /* Update HCRC based on packet opcode */ + pbc = update_hcrc(ps->opcode, pbc); } if (cb) iowait_pio_inc(&priv->s_iowait);