From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 36AE5C433EF for ; Tue, 9 Nov 2021 22:36:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1E90560F36 for ; Tue, 9 Nov 2021 22:36:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344540AbhKIWjV (ORCPT ); Tue, 9 Nov 2021 17:39:21 -0500 Received: from mail.kernel.org ([198.145.29.99]:58688 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344690AbhKIWgL (ORCPT ); Tue, 9 Nov 2021 17:36:11 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 104CE6135E; Tue, 9 Nov 2021 22:22:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1636496558; bh=MbljPlGWIgZ6aE1b8hrYn73E3WqClBJ8p6vdASrke7Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XeLlNtN/+fgyCZBLvrHaW48hMpbMYXpFg2JTvgAGIhzicK1P2N+clONk0Qgkzrrf2 WGRq3jq+Z0AH/aY4wowFlv9VLLKwOpp5pc22rFb6jX/8ysvMv2B3OBRH+5UYIihrPH Kq7giJlv36hWwvLGmyuYFPTLIW4LDxmndCOAb7bp915zhCoNlFE570S3o5PU+pumK0 FTCxMG8tlMH/DTimg5tb+y0GED73xQgk4WAWnKxeG9tCiUmJkQRWurnaaJRgxj+Cj1 tEFwlhAbe5p9ahsFgcAVk76rEOsuYFePl1qor7u7xmTleDHAT9bpSN5ZegymJuuSuY +oMlUomBK30sg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Selvin Xavier , Jason Gunthorpe , Sasha Levin , dledford@redhat.com, sean.hefty@intel.com, hal.rosenstock@gmail.com, linux-rdma@vger.kernel.org Subject: [PATCH AUTOSEL 5.4 07/30] RDMA/bnxt_re: Check if the vlan is valid before reporting Date: Tue, 9 Nov 2021 17:22:01 -0500 Message-Id: <20211109222224.1235388-7-sashal@kernel.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20211109222224.1235388-1-sashal@kernel.org> References: <20211109222224.1235388-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Selvin Xavier [ Upstream commit 6bda39149d4b8920fdb8744090653aca3daa792d ] When VF is configured with default vlan, HW strips the vlan from the packet and driver receives it in Rx completion. VLAN needs to be reported for UD work completion only if the vlan is configured on the host. Add a check for valid vlan in the UD receive path. Link: https://lore.kernel.org/r/1631709163-2287-12-git-send-email-selvin.xavier@broadcom.com Signed-off-by: Selvin Xavier Signed-off-by: Jason Gunthorpe Signed-off-by: Sasha Levin --- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.c b/drivers/infiniband/hw/bnxt_re/ib_verbs.c index a96f9142fe08e..dd006b177b544 100644 --- a/drivers/infiniband/hw/bnxt_re/ib_verbs.c +++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.c @@ -3081,8 +3081,11 @@ static void bnxt_re_process_res_ud_wc(struct bnxt_re_qp *qp, struct ib_wc *wc, struct bnxt_qplib_cqe *cqe) { + struct bnxt_re_dev *rdev; + u16 vlan_id = 0; u8 nw_type; + rdev = qp->rdev; wc->opcode = IB_WC_RECV; wc->status = __rc_to_ib_wc_status(cqe->status); @@ -3094,9 +3097,12 @@ static void bnxt_re_process_res_ud_wc(struct bnxt_re_qp *qp, memcpy(wc->smac, cqe->smac, ETH_ALEN); wc->wc_flags |= IB_WC_WITH_SMAC; if (cqe->flags & CQ_RES_UD_FLAGS_META_FORMAT_VLAN) { - wc->vlan_id = (cqe->cfa_meta & 0xFFF); - if (wc->vlan_id < 0x1000) - wc->wc_flags |= IB_WC_WITH_VLAN; + vlan_id = (cqe->cfa_meta & 0xFFF); + } + /* Mark only if vlan_id is non zero */ + if (vlan_id && bnxt_re_check_if_vlan_valid(rdev, vlan_id)) { + wc->vlan_id = vlan_id; + wc->wc_flags |= IB_WC_WITH_VLAN; } nw_type = (cqe->flags & CQ_RES_UD_FLAGS_ROCE_IP_VER_MASK) >> CQ_RES_UD_FLAGS_ROCE_IP_VER_SFT; -- 2.33.0