Received: by 10.213.65.68 with SMTP id h4csp217146imn; Fri, 23 Mar 2018 03:07:30 -0700 (PDT) X-Google-Smtp-Source: AG47ELtFigFSdW1ct8e9iYQNrsDz+0sQ/Qe/FA+s+W9PZwIRDxGSSMPrFlXJ0BSGn5N4E0dCu0f1 X-Received: by 10.101.97.139 with SMTP id c11mr20494206pgv.435.1521799650227; Fri, 23 Mar 2018 03:07:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521799650; cv=none; d=google.com; s=arc-20160816; b=C6HXzbx3JzAGGvTfhaVGHtBbpkOmmxyUdH5TmcMOxzjffVsrMXNUvYDiMensqMEM7D Au2vNi5xo9tyWqb47GCGX2+MyqCN0eEyoF7SNx+Iry5jHoMzZx/BoAWiawf3y8xByiXz g5TS6sb2XKD7HtnZgte4dgFGqD57rTsdL+ljbIf0u9UG+PHxOaRRewRchpPB+RaH6sH9 JUFF5xWdQS1C6by14NZ84KbEHUA7frsqrnYusTpkPWGFdanjVO8sKeuTEkXmeXxcJxHq OrEcF0btZZQ/THTK2ymuM6JN4hAnt1adWR7YYMTuNQYC6c28z9OpFPaXeuVtj7ZVNPUp wvng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=F+grc00UXFo7y8hCrRysH4gbibnx6OO5/gB3d6CUL64=; b=LRkGassxFbOO9Fii6MxN33wTbSkeH2LQW1oPpdplRseZdjzQIQ3tZ62HMnblqxaeba xy1HgguzmOzEOkesizv4XNOz/eiJYVsk5F7xNk0YCZiceCqKijLMR/qtYJipZIAYWehw 8Ba1nqEQvdHCRC1Q+iIhydz37cKB7N/NdgrPNeHdZZZCt1RmCECj//24opHvgn4ed8sj NxQ/4MJ/HcEonjzSqTlMFUhVP1DyGEBpgASee8APlJsyRpPa8uOCT5/kqEwVCqneklpI EloWVvLQvwUE97OO2z6Xo0yExo+F0DJWvVhD4Y4MEyuuPU3k8fuSauYRpWzSPleVVktR XZSw== ARC-Authentication-Results: i=1; mx.google.com; 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 19si5844990pgg.395.2018.03.23.03.07.15; Fri, 23 Mar 2018 03:07:30 -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; 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 S1755205AbeCWKGR (ORCPT + 99 others); Fri, 23 Mar 2018 06:06:17 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:40716 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755146AbeCWKGO (ORCPT ); Fri, 23 Mar 2018 06:06:14 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id CEA84C04; Fri, 23 Mar 2018 10:06:13 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Moni Shoua , Majd Dibbiny , Leon Romanovsky , Doug Ledford , Sasha Levin Subject: [PATCH 4.9 051/177] IB/mlx5: Set correct SL in completion for RoCE Date: Fri, 23 Mar 2018 10:52:59 +0100 Message-Id: <20180323094207.575845755@linuxfoundation.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180323094205.090519271@linuxfoundation.org> References: <20180323094205.090519271@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: Moni Shoua [ Upstream commit 12f8fedef2ec94c783f929126b20440a01512c14 ] There is a difference when parsing a completion entry between Ethernet and IB ports. When link layer is Ethernet the bits describe the type of L3 header in the packet. In the case when link layer is Ethernet and VLAN header is present the value of SL is equal to the 3 UP bits in the VLAN header. If VLAN header is not present then the SL is undefined and consumer of the completion should check if IB_WC_WITH_VLAN is set. While that, this patch also fills the vlan_id field in the completion if present. Signed-off-by: Moni Shoua Reviewed-by: Majd Dibbiny Signed-off-by: Leon Romanovsky Signed-off-by: Doug Ledford Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/infiniband/hw/mlx5/cq.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) --- a/drivers/infiniband/hw/mlx5/cq.c +++ b/drivers/infiniband/hw/mlx5/cq.c @@ -172,6 +172,8 @@ static void handle_responder(struct ib_w struct mlx5_ib_srq *srq; struct mlx5_ib_wq *wq; u16 wqe_ctr; + u8 roce_packet_type; + bool vlan_present; u8 g; if (qp->ibqp.srq || qp->ibqp.xrcd) { @@ -223,7 +225,6 @@ static void handle_responder(struct ib_w break; } wc->slid = be16_to_cpu(cqe->slid); - wc->sl = (be32_to_cpu(cqe->flags_rqpn) >> 24) & 0xf; wc->src_qp = be32_to_cpu(cqe->flags_rqpn) & 0xffffff; wc->dlid_path_bits = cqe->ml_path; g = (be32_to_cpu(cqe->flags_rqpn) >> 28) & 3; @@ -237,10 +238,22 @@ static void handle_responder(struct ib_w wc->pkey_index = 0; } - if (ll != IB_LINK_LAYER_ETHERNET) + if (ll != IB_LINK_LAYER_ETHERNET) { + wc->sl = (be32_to_cpu(cqe->flags_rqpn) >> 24) & 0xf; return; + } + + vlan_present = cqe->l4_l3_hdr_type & 0x1; + roce_packet_type = (be32_to_cpu(cqe->flags_rqpn) >> 24) & 0x3; + if (vlan_present) { + wc->vlan_id = (be16_to_cpu(cqe->vlan_info)) & 0xfff; + wc->sl = (be16_to_cpu(cqe->vlan_info) >> 13) & 0x7; + wc->wc_flags |= IB_WC_WITH_VLAN; + } else { + wc->sl = 0; + } - switch (wc->sl & 0x3) { + switch (roce_packet_type) { case MLX5_CQE_ROCE_L3_HEADER_TYPE_GRH: wc->network_hdr_type = RDMA_NETWORK_IB; break;