From patchwork Mon Aug 24 18:14:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Selvin Xavier X-Patchwork-Id: 11733915 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3FF6C1575 for ; Mon, 24 Aug 2020 18:14:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 28AF320738 for ; Mon, 24 Aug 2020 18:14:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="aJSi7Jpa" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726664AbgHXSOw (ORCPT ); Mon, 24 Aug 2020 14:14:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40788 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725890AbgHXSOu (ORCPT ); Mon, 24 Aug 2020 14:14:50 -0400 Received: from mail-pg1-x544.google.com (mail-pg1-x544.google.com [IPv6:2607:f8b0:4864:20::544]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5F3E3C061573 for ; Mon, 24 Aug 2020 11:14:50 -0700 (PDT) Received: by mail-pg1-x544.google.com with SMTP id m34so4936755pgl.11 for ; Mon, 24 Aug 2020 11:14:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=+NMFjrrrZ5kdGGmiYr4AxMiGj88sZRju8WrPsO7rK+g=; b=aJSi7JpamexsHKHKt4AkNdZ9pQ3Buy+FhevT+5Z2nfMjg9frSnQccYzY9tcQCmho6j DgRkVEDwEx1AIuFAzRto1/aN18i1/Rgvzbyv9xt2USL1gOiL956UwzDIjkNnT8PHjVLW awol67Ea2qlw+TnNpF2uoWe/KVqBuO1Rdnfvs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=+NMFjrrrZ5kdGGmiYr4AxMiGj88sZRju8WrPsO7rK+g=; b=bQIzSKJ1tAhrTgJnhTSy5Qd++uWN9TgJfXFLGX59pfB4JnKyIOm/8aR7xc/YFqVllr +SvL44ZavzyO7w3Mi//HvIsPe474+AoYtT6p7mBeLUqf0uLN/V6s6lK6TkhHwYhMju1k rvYU/9RA5CfM55GNIl7d9Y55fMCFcQ319AuO23zlb/+9wFHHK8Ncs/V7HHULGNmOmoFD 3bGhv8nW0mq30DliYNXjCakB6O/Yoybjf+X80tDGg1EyTQAhu3Uud5qs4Em6rcCJvJvc 2Na3JbOhzoluSXqPaQ30fgNHAm5wpFqMAgId2jLKjkuF/pT+pIirnBvbDPBz1fWNLBpc a8aw== X-Gm-Message-State: AOAM532UvAomtXqNa1DaMOJaxlDysL2SVGEFkrU3oJXS4hdZKeXLk6Z7 6px9PgvU4Uel9bg7+7EYSfdiug== X-Google-Smtp-Source: ABdhPJzW2l9BCFHaGN7IWeZjD3gpELp28bwZRvqJSR1OXFeYEDY3hfKe9E6znePq057tnk4dei0dzA== X-Received: by 2002:a17:902:700b:: with SMTP id y11mr4487097plk.311.1598292889799; Mon, 24 Aug 2020 11:14:49 -0700 (PDT) Received: from dhcp-10-192-206-197.iig.avagotech.net.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id q5sm5027811pfu.16.2020.08.24.11.14.47 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Aug 2020 11:14:49 -0700 (PDT) From: Selvin Xavier To: jgg@ziepe.ca, dledford@redhat.com Cc: linux-rdma@vger.kernel.org, Selvin Xavier Subject: [PATCH for-rc 1/6] RDMA/bnxt_re: Remove the qp from list only if the qp destroy succeeds Date: Mon, 24 Aug 2020 11:14:31 -0700 Message-Id: <1598292876-26529-2-git-send-email-selvin.xavier@broadcom.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1598292876-26529-1-git-send-email-selvin.xavier@broadcom.com> References: <1598292876-26529-1-git-send-email-selvin.xavier@broadcom.com> Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org Driver crashes when destroy_qp is re-tried because of an error returned. This is because the qp entry was removed from the qp list during the first call. Remove qp from the list only if destroy_qp returns success. Fixes: 8dae419f9ec7 ("RDMA/bnxt_re: Refactor queue pair creation code") Signed-off-by: Selvin Xavier --- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.c b/drivers/infiniband/hw/bnxt_re/ib_verbs.c index 3f18efc..2f5aac0 100644 --- a/drivers/infiniband/hw/bnxt_re/ib_verbs.c +++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.c @@ -752,12 +752,6 @@ static int bnxt_re_destroy_gsi_sqp(struct bnxt_re_qp *qp) gsi_sqp = rdev->gsi_ctx.gsi_sqp; gsi_sah = rdev->gsi_ctx.gsi_sah; - /* remove from active qp list */ - mutex_lock(&rdev->qp_lock); - list_del(&gsi_sqp->list); - mutex_unlock(&rdev->qp_lock); - atomic_dec(&rdev->qp_count); - ibdev_dbg(&rdev->ibdev, "Destroy the shadow AH\n"); bnxt_qplib_destroy_ah(&rdev->qplib_res, &gsi_sah->qplib_ah, @@ -772,6 +766,12 @@ static int bnxt_re_destroy_gsi_sqp(struct bnxt_re_qp *qp) } bnxt_qplib_free_qp_res(&rdev->qplib_res, &gsi_sqp->qplib_qp); + /* remove from active qp list */ + mutex_lock(&rdev->qp_lock); + list_del(&gsi_sqp->list); + mutex_unlock(&rdev->qp_lock); + atomic_dec(&rdev->qp_count); + kfree(rdev->gsi_ctx.sqp_tbl); kfree(gsi_sah); kfree(gsi_sqp); @@ -792,11 +792,6 @@ int bnxt_re_destroy_qp(struct ib_qp *ib_qp, struct ib_udata *udata) unsigned int flags; int rc; - mutex_lock(&rdev->qp_lock); - list_del(&qp->list); - mutex_unlock(&rdev->qp_lock); - atomic_dec(&rdev->qp_count); - bnxt_qplib_flush_cqn_wq(&qp->qplib_qp); rc = bnxt_qplib_destroy_qp(&rdev->qplib_res, &qp->qplib_qp); @@ -819,6 +814,11 @@ int bnxt_re_destroy_qp(struct ib_qp *ib_qp, struct ib_udata *udata) goto sh_fail; } + mutex_lock(&rdev->qp_lock); + list_del(&qp->list); + mutex_unlock(&rdev->qp_lock); + atomic_dec(&rdev->qp_count); + ib_umem_release(qp->rumem); ib_umem_release(qp->sumem); From patchwork Mon Aug 24 18:14:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Selvin Xavier X-Patchwork-Id: 11733917 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DF5BD1575 for ; Mon, 24 Aug 2020 18:14:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C772820702 for ; Mon, 24 Aug 2020 18:14:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="HrqjN07y" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726672AbgHXSOy (ORCPT ); Mon, 24 Aug 2020 14:14:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40796 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725890AbgHXSOy (ORCPT ); Mon, 24 Aug 2020 14:14:54 -0400 Received: from mail-pf1-x442.google.com (mail-pf1-x442.google.com [IPv6:2607:f8b0:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 40BD7C061573 for ; Mon, 24 Aug 2020 11:14:53 -0700 (PDT) Received: by mail-pf1-x442.google.com with SMTP id x25so5252062pff.4 for ; Mon, 24 Aug 2020 11:14:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=IG2UD6cWot6QakSCQu81xwXqzwa8XgoLOQnIkyJmFcQ=; b=HrqjN07y9crkBrorqApzITZDhMFRQGEAsIRcyXJ4lV5MrZ7t6oda3lqqZ8oORbf+9W o60KzyVonIkU91kRMeimK6KvOvakw3HX75Gh48oGYBA1FRiXSIawGyF8zj+EcmTU12V7 UM7C6NXU9afBpXieCKBehL6bygZlRAbs3wJEw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=IG2UD6cWot6QakSCQu81xwXqzwa8XgoLOQnIkyJmFcQ=; b=n+zE5lPrmXPgvHUAo08DnYrywiCuOWsQQaNK6Fi1RBPs+j9QUvSME8sfpwhs6ZRg5m 2huNLMKYxNhUOMoezPDoFPezvTemq/Cz1gIY6j/cosurHXsmN3HlrQfq/l8z8hxmGo8+ emkoctGeFsgcilaNC6yJ11LTNcafoj1EqjuKnNck5nRwTGP49VJcGcofAYLu9XSR/04F RG9wVjrmAiWs7woleDRSeECR9n0MzoWVF/tjQhWRANe704sh8n6UvFLsAHIWvcKEzzmp P1fvD2rd30j11u8gTcbM6Hb+Qo31LS9Ou+OdQE3973ywhV74EcAHgJPdUPvcjQ2KXl+I o6xg== X-Gm-Message-State: AOAM532zzUcxTf6Z7wvGclUw0/kFaM7L0LHWmdq8t1tm8DbuZcuQPPW/ dh8ew8E8VbBB0A8i4zsaBfftAA== X-Google-Smtp-Source: ABdhPJzp2j1WBUYT8rPnbsMZOwDxICxXaBTrW1gnSR2unvwyolUmYMDOp6mIsVHcdlIRYP0b4ofc5Q== X-Received: by 2002:a63:2482:: with SMTP id k124mr4072350pgk.332.1598292892599; Mon, 24 Aug 2020 11:14:52 -0700 (PDT) Received: from dhcp-10-192-206-197.iig.avagotech.net.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id q5sm5027811pfu.16.2020.08.24.11.14.50 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Aug 2020 11:14:51 -0700 (PDT) From: Selvin Xavier To: jgg@ziepe.ca, dledford@redhat.com Cc: linux-rdma@vger.kernel.org, Selvin Xavier Subject: [PATCH for-rc 2/6] RDMA/bnxt_re: Do not report transparent vlan from QP1 Date: Mon, 24 Aug 2020 11:14:32 -0700 Message-Id: <1598292876-26529-3-git-send-email-selvin.xavier@broadcom.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1598292876-26529-1-git-send-email-selvin.xavier@broadcom.com> References: <1598292876-26529-1-git-send-email-selvin.xavier@broadcom.com> Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org QP1 Rx CQE reports transparent VLAN ID in the completion and this is used while reporting the completion for received MAD packet. Check if the vlan id is configured before reporting it in the work completion. Fixes: 84511455ac5b ("RDMA/bnxt_re: report vlan_id and sl in qp1 recv completion") Signed-off-by: Selvin Xavier --- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.c b/drivers/infiniband/hw/bnxt_re/ib_verbs.c index 2f5aac0..0c5fb79 100644 --- a/drivers/infiniband/hw/bnxt_re/ib_verbs.c +++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.c @@ -3264,6 +3264,20 @@ static void bnxt_re_process_res_rawqp1_wc(struct ib_wc *wc, wc->wc_flags |= IB_WC_GRH; } +static bool bnxt_re_check_if_vlan_valid(struct bnxt_re_dev *rdev, + u16 vlan_id) +{ + /* + * Check if the vlan is configured in the host. + * If not configured, it can be a transparent + * VLAN. So dont report the vlan id. + */ + if (!__vlan_find_dev_deep_rcu(rdev->netdev, + htons(ETH_P_8021Q), vlan_id)) + return false; + return true; +} + static bool bnxt_re_is_vlan_pkt(struct bnxt_qplib_cqe *orig_cqe, u16 *vid, u8 *sl) { @@ -3332,9 +3346,11 @@ static void bnxt_re_process_res_shadow_qp_wc(struct bnxt_re_qp *gsi_sqp, wc->src_qp = orig_cqe->src_qp; memcpy(wc->smac, orig_cqe->smac, ETH_ALEN); if (bnxt_re_is_vlan_pkt(orig_cqe, &vlan_id, &sl)) { - wc->vlan_id = vlan_id; - wc->sl = sl; - wc->wc_flags |= IB_WC_WITH_VLAN; + if (bnxt_re_check_if_vlan_valid(rdev, vlan_id)) { + wc->vlan_id = vlan_id; + wc->sl = sl; + wc->wc_flags |= IB_WC_WITH_VLAN; + } } wc->port_num = 1; wc->vendor_err = orig_cqe->status; From patchwork Mon Aug 24 18:14:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Selvin Xavier X-Patchwork-Id: 11733919 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 957C0138A for ; Mon, 24 Aug 2020 18:14:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7B18220738 for ; Mon, 24 Aug 2020 18:14:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="IwuQhRNV" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726690AbgHXSO4 (ORCPT ); Mon, 24 Aug 2020 14:14:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40808 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725890AbgHXSO4 (ORCPT ); Mon, 24 Aug 2020 14:14:56 -0400 Received: from mail-pf1-x441.google.com (mail-pf1-x441.google.com [IPv6:2607:f8b0:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 39F3CC061573 for ; Mon, 24 Aug 2020 11:14:56 -0700 (PDT) Received: by mail-pf1-x441.google.com with SMTP id u20so5265538pfn.0 for ; Mon, 24 Aug 2020 11:14:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=N+gUadkvejZKzLYmUPaVrN6rrLrgiQ5s8W3HTmNkwSg=; b=IwuQhRNVCobGLipNI/ttMV8r4ZYTKxXS9S0p7TE44502q1/295hhL2Ipxh5SvQFL3E F0Mea0u2kHZO6FVDYgEGb6gNJJbMmdaEvJJ5XSubRXCgGU2cmzwukRtH14U9izTyZoqe IJYemBzscuDmd9p8ex8MfGpm/zpOYroT//rOw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=N+gUadkvejZKzLYmUPaVrN6rrLrgiQ5s8W3HTmNkwSg=; b=ENdcbTWplMG34fO8rkrPj8tRuln0OiHSQuqrMm2LQm/nQpKVgQFnbhwtTBpmEj3+Wa FiDSmUREPVIToS4arSg9z6chvtfFxOm4ckxXm/vKys+Nb6LNFINh8HG2+Iy6x8AYaQqb mQFa/qerhkwiobSz11z1o7Z6r6+EbkzhkMu/5YIiH0jFKjhEPctvkF27mHHGRfm3TNij 8kwB9jowuYMfgcKzf07+LGDdimAx7+3esa+Q1BZLhkHI/zeaJ5Vla3qqCda6c1fHb+NV IOPZKieiifSyx9UUw/NWWVBH7mdb6KmJyGXeBRFWBapSiswZI5UcAWSMV6+M2sKOC9vz 2mFA== X-Gm-Message-State: AOAM5328xp3ZoAT49BkSWut8h49mdZYGC834qDNNcHff/SoQnSsnE3yB kvH+Z35QSzuKaco9bGuDMjPQbw== X-Google-Smtp-Source: ABdhPJyUXe5FBaqP/NzCD1sWYw3HEapw57UAnws/3L76F7m6eEEv0PCcDe/+ucZMKxTK0R+5GFJ2OA== X-Received: by 2002:a17:902:b193:: with SMTP id s19mr4829796plr.194.1598292895564; Mon, 24 Aug 2020 11:14:55 -0700 (PDT) Received: from dhcp-10-192-206-197.iig.avagotech.net.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id q5sm5027811pfu.16.2020.08.24.11.14.52 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Aug 2020 11:14:54 -0700 (PDT) From: Selvin Xavier To: jgg@ziepe.ca, dledford@redhat.com Cc: linux-rdma@vger.kernel.org, Selvin Xavier Subject: [PATCH for-rc 3/6] RDMA/bnxt_re: Fix the qp table indexing Date: Mon, 24 Aug 2020 11:14:33 -0700 Message-Id: <1598292876-26529-4-git-send-email-selvin.xavier@broadcom.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1598292876-26529-1-git-send-email-selvin.xavier@broadcom.com> References: <1598292876-26529-1-git-send-email-selvin.xavier@broadcom.com> Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org qp->id can be a value outside the max number of qp. Indexing the qp table with the id can cause out of bounds crash. So changing the qp table indexing by (qp->id % max_qp -1). Allocating one extra entry for QP1. Some adapters create one more than the max_qp requested to accommodate QP1. If the qp->id is 1, store the inforamtion in the last entry of the qp table. Fixes: f218d67ef004 ("RDMA/bnxt_re: Allow posting when QPs are in error") Signed-off-by: Selvin Xavier --- drivers/infiniband/hw/bnxt_re/qplib_fp.c | 22 ++++++++++++++-------- drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 10 ++++++---- drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 5 +++++ 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/drivers/infiniband/hw/bnxt_re/qplib_fp.c b/drivers/infiniband/hw/bnxt_re/qplib_fp.c index 117b423..3535130 100644 --- a/drivers/infiniband/hw/bnxt_re/qplib_fp.c +++ b/drivers/infiniband/hw/bnxt_re/qplib_fp.c @@ -818,6 +818,7 @@ int bnxt_qplib_create_qp1(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp) u16 cmd_flags = 0; u32 qp_flags = 0; u8 pg_sz_lvl; + u32 tbl_indx; int rc; RCFW_CMD_PREP(req, CREATE_QP1, cmd_flags); @@ -907,8 +908,9 @@ int bnxt_qplib_create_qp1(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp) rq->dbinfo.db = qp->dpi->dbr; rq->dbinfo.max_slot = bnxt_qplib_set_rq_max_slot(rq->wqe_size); } - rcfw->qp_tbl[qp->id].qp_id = qp->id; - rcfw->qp_tbl[qp->id].qp_handle = (void *)qp; + tbl_indx = map_qp_id_to_tbl_indx(qp->id, rcfw); + rcfw->qp_tbl[tbl_indx].qp_id = qp->id; + rcfw->qp_tbl[tbl_indx].qp_handle = (void *)qp; return 0; @@ -959,6 +961,7 @@ int bnxt_qplib_create_qp(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp) u16 cmd_flags = 0; u32 qp_flags = 0; u8 pg_sz_lvl; + u32 tbl_indx; u16 nsge; RCFW_CMD_PREP(req, CREATE_QP, cmd_flags); @@ -1111,8 +1114,9 @@ int bnxt_qplib_create_qp(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp) rq->dbinfo.db = qp->dpi->dbr; rq->dbinfo.max_slot = bnxt_qplib_set_rq_max_slot(rq->wqe_size); } - rcfw->qp_tbl[qp->id].qp_id = qp->id; - rcfw->qp_tbl[qp->id].qp_handle = (void *)qp; + tbl_indx = map_qp_id_to_tbl_indx(qp->id, rcfw); + rcfw->qp_tbl[tbl_indx].qp_id = qp->id; + rcfw->qp_tbl[tbl_indx].qp_handle = (void *)qp; return 0; fail: @@ -1457,10 +1461,12 @@ int bnxt_qplib_destroy_qp(struct bnxt_qplib_res *res, struct cmdq_destroy_qp req; struct creq_destroy_qp_resp resp; u16 cmd_flags = 0; + u32 tbl_indx; int rc; - rcfw->qp_tbl[qp->id].qp_id = BNXT_QPLIB_QP_ID_INVALID; - rcfw->qp_tbl[qp->id].qp_handle = NULL; + tbl_indx = map_qp_id_to_tbl_indx(qp->id, rcfw); + rcfw->qp_tbl[tbl_indx].qp_id = BNXT_QPLIB_QP_ID_INVALID; + rcfw->qp_tbl[tbl_indx].qp_handle = NULL; RCFW_CMD_PREP(req, DESTROY_QP, cmd_flags); @@ -1468,8 +1474,8 @@ int bnxt_qplib_destroy_qp(struct bnxt_qplib_res *res, rc = bnxt_qplib_rcfw_send_message(rcfw, (void *)&req, (void *)&resp, NULL, 0); if (rc) { - rcfw->qp_tbl[qp->id].qp_id = qp->id; - rcfw->qp_tbl[qp->id].qp_handle = qp; + rcfw->qp_tbl[tbl_indx].qp_id = qp->id; + rcfw->qp_tbl[tbl_indx].qp_handle = qp; return rc; } diff --git a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c index 4e21116..f7736e3 100644 --- a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c +++ b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c @@ -307,14 +307,15 @@ static int bnxt_qplib_process_qp_event(struct bnxt_qplib_rcfw *rcfw, __le16 mcookie; u16 cookie; int rc = 0; - u32 qp_id; + u32 qp_id, tbl_indx; pdev = rcfw->pdev; switch (qp_event->event) { case CREQ_QP_EVENT_EVENT_QP_ERROR_NOTIFICATION: err_event = (struct creq_qp_error_notification *)qp_event; qp_id = le32_to_cpu(err_event->xid); - qp = rcfw->qp_tbl[qp_id].qp_handle; + tbl_indx = map_qp_id_to_tbl_indx(qp_id, rcfw); + qp = rcfw->qp_tbl[tbl_indx].qp_handle; dev_dbg(&pdev->dev, "Received QP error notification\n"); dev_dbg(&pdev->dev, "qpid 0x%x, req_err=0x%x, resp_err=0x%x\n", @@ -615,8 +616,9 @@ int bnxt_qplib_alloc_rcfw_channel(struct bnxt_qplib_res *res, cmdq->bmap_size = bmap_size; - rcfw->qp_tbl_size = qp_tbl_sz; - rcfw->qp_tbl = kcalloc(qp_tbl_sz, sizeof(struct bnxt_qplib_qp_node), + /* Allocate one extra to hold the QP1 entries */ + rcfw->qp_tbl_size = qp_tbl_sz + 1; + rcfw->qp_tbl = kcalloc(rcfw->qp_tbl_size, sizeof(struct bnxt_qplib_qp_node), GFP_KERNEL); if (!rcfw->qp_tbl) goto fail; diff --git a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h index 1573876..5f2f0a5 100644 --- a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h +++ b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h @@ -216,4 +216,9 @@ int bnxt_qplib_deinit_rcfw(struct bnxt_qplib_rcfw *rcfw); int bnxt_qplib_init_rcfw(struct bnxt_qplib_rcfw *rcfw, struct bnxt_qplib_ctx *ctx, int is_virtfn); void bnxt_qplib_mark_qp_error(void *qp_handle); +static inline u32 map_qp_id_to_tbl_indx(u32 qid, struct bnxt_qplib_rcfw *rcfw) +{ + /* Last index of the qp_tbl is for QP1 ie. qp_tbl_size - 1*/ + return (qid == 1) ? rcfw->qp_tbl_size - 1 : qid % rcfw->qp_tbl_size - 2; +} #endif /* __BNXT_QPLIB_RCFW_H__ */ From patchwork Mon Aug 24 18:14:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Selvin Xavier X-Patchwork-Id: 11733921 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 120D4138A for ; Mon, 24 Aug 2020 18:15:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EE88E20738 for ; Mon, 24 Aug 2020 18:15:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="g939bglq" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726697AbgHXSPA (ORCPT ); Mon, 24 Aug 2020 14:15:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40814 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726691AbgHXSO7 (ORCPT ); Mon, 24 Aug 2020 14:14:59 -0400 Received: from mail-pj1-x1043.google.com (mail-pj1-x1043.google.com [IPv6:2607:f8b0:4864:20::1043]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 49856C061573 for ; Mon, 24 Aug 2020 11:14:59 -0700 (PDT) Received: by mail-pj1-x1043.google.com with SMTP id kr4so4734928pjb.2 for ; Mon, 24 Aug 2020 11:14:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=3Yy4FkpQ4T+NaE4SfG1omiUE5+nqdQKGBttk9E2TkE8=; b=g939bglqlxxy3mDy5l51t6XUSULZhBRi0lGruUlKat06zi7FXsjNE63Pkd62ppGTlD ctGVyW5dbStKiuDLo2PBvtlAmc3WVt1kOHQMnhfVHoIjfgCRDZQY/CUYWdRkVJsGrWHW naZ8EKiLY5634jbjp+6D2leVHnrgOwY89wQCI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=3Yy4FkpQ4T+NaE4SfG1omiUE5+nqdQKGBttk9E2TkE8=; b=nsTSo/PGCjOh6pHmiIf7BprriNkzXCbmQ+ftcYNGiMP+PhL26dqurP465WFf83BWZ8 jHJAhZmAOyXHol/zbSKsYnkH8f7EzPhswUWh4QD6CsG9D+QrlKJHD//VhBkA9Fx8T1L2 shT4zs/RXRmYKNralTlTGD5lyIfpVe5OfBLioba706ctm129pV31mq/f6+j5bCyF2BvE E6F584r9bSuuKVg6eXAcJAqTDdFY/eDEVIHRe7wrnJCqvWG0VKbD1CrJuwY5/zARpMFl oEV5cBlpAFKMnYCWcjfA6IQaTHL9swz6MMLHcRoDpWss4KQMSZxuYUhHkVokNgT4xTak AljA== X-Gm-Message-State: AOAM530FzH4Sbe7gLTzWaFDDF8ZWrx6RTxJsSXynYVE1jNgTXV/gDodw TwIuVn2w/6v5WMutG6Z4SoDuuw== X-Google-Smtp-Source: ABdhPJz0avO7UqbhfmrE7qJFcQO+Av6dAdsZuhj2DGEWZ/b6aa9dlupXdgDvvUYIL02YmMNeApss0A== X-Received: by 2002:a17:90b:1895:: with SMTP id mn21mr417378pjb.173.1598292898678; Mon, 24 Aug 2020 11:14:58 -0700 (PDT) Received: from dhcp-10-192-206-197.iig.avagotech.net.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id q5sm5027811pfu.16.2020.08.24.11.14.55 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Aug 2020 11:14:57 -0700 (PDT) From: Selvin Xavier To: jgg@ziepe.ca, dledford@redhat.com Cc: linux-rdma@vger.kernel.org, Naresh Kumar PBS , Selvin Xavier Subject: [PATCH for-rc 4/6] RDMA/bnxt_re: Static NQ depth allocation Date: Mon, 24 Aug 2020 11:14:34 -0700 Message-Id: <1598292876-26529-5-git-send-email-selvin.xavier@broadcom.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1598292876-26529-1-git-send-email-selvin.xavier@broadcom.com> References: <1598292876-26529-1-git-send-email-selvin.xavier@broadcom.com> Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Naresh Kumar PBS At first, driver allocates memory for NQ based on qplib_ctx->cq_count and qplib_ctx->srqc_count. Later when creating ring, it uses a static value of 128K -1. Fixing this with a static value for now. Fixes: b08fe048a69d ("RDMA/bnxt_re: Refactor net ring allocation function") Signed-off-by: Naresh Kumar PBS Signed-off-by: Selvin Xavier --- drivers/infiniband/hw/bnxt_re/main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/infiniband/hw/bnxt_re/main.c b/drivers/infiniband/hw/bnxt_re/main.c index 17ac8b7..13bbeb4 100644 --- a/drivers/infiniband/hw/bnxt_re/main.c +++ b/drivers/infiniband/hw/bnxt_re/main.c @@ -1037,8 +1037,7 @@ static int bnxt_re_alloc_res(struct bnxt_re_dev *rdev) struct bnxt_qplib_nq *nq; nq = &rdev->nq[i]; - nq->hwq.max_elements = (qplib_ctx->cq_count + - qplib_ctx->srqc_count + 2); + nq->hwq.max_elements = BNXT_QPLIB_NQE_MAX_CNT; rc = bnxt_qplib_alloc_nq(&rdev->qplib_res, &rdev->nq[i]); if (rc) { ibdev_err(&rdev->ibdev, "Alloc Failed NQ%d rc:%#x", From patchwork Mon Aug 24 18:14:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Selvin Xavier X-Patchwork-Id: 11733923 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DF79614E5 for ; Mon, 24 Aug 2020 18:15:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C78CB20702 for ; Mon, 24 Aug 2020 18:15:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="T0S5CDG1" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726691AbgHXSPD (ORCPT ); Mon, 24 Aug 2020 14:15:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40826 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725890AbgHXSPC (ORCPT ); Mon, 24 Aug 2020 14:15:02 -0400 Received: from mail-pf1-x441.google.com (mail-pf1-x441.google.com [IPv6:2607:f8b0:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4CED3C061573 for ; Mon, 24 Aug 2020 11:15:02 -0700 (PDT) Received: by mail-pf1-x441.google.com with SMTP id 17so5246269pfw.9 for ; Mon, 24 Aug 2020 11:15:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=YHfpMtSx+L+zcH4FDEMobBUGqWDjaPP7cyfAZoMjUIk=; b=T0S5CDG1jkGs/wznwRawhONxI+Z+LSllJVV0bgrX7gHOiYlWxjZ0s1eojrlOzltWwF +AISJpFVKOjWJu9/Ob64yvXNhjjBo5ZIw0Z+cSPv3+PghdrvVAMjTg2WmXDrH0iivZHr Ex8Sv8s262f/VhO37J6/Dtisu830LBHopx+qA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=YHfpMtSx+L+zcH4FDEMobBUGqWDjaPP7cyfAZoMjUIk=; b=qer+yLyxtJ5KIBfbatffJwReRAdmi3kGPhOhMtOGR+fFbb6Do47H0xmhJZrSPStg+5 thdfM0STBLFeor62VcJoledxccuhIOJbm+u2eN8heRl8Ru0OnFQpRDR+VbLSOuuyxwxF DSRizg1w+F8o/xXBGFyuMBchWLrx8VP5HfATctKqH2yxCytpdZHE/V2G2Z4/c9VXPIsH zSmVL73Ci+MWm30QBxRgz384RG8Gcw7g7eIyxAm8f2lqrDNUYmSdOeCC/MySNml28NWb UHXkI/rOCG9PHZFj8Jn8hqUIG4NdnyZWkIMi1cwLVxmuw4JF3yKx+13IjNyXtTk4B13b Zdfg== X-Gm-Message-State: AOAM530Zg+jWvbPQMA2pYE/w3qEcIMonv+SfHm8AAZNbEif+5JtDNsE2 iGb6Fw3bv4d0yt84du20r1i4SQ== X-Google-Smtp-Source: ABdhPJyRvVjjUSSStMM4t2ACPrsWvC22qRWXrtx7sktiexVCusZKeqASb+YwliKh+gDdx+i2+e2EkQ== X-Received: by 2002:a63:4451:: with SMTP id t17mr3545197pgk.92.1598292901669; Mon, 24 Aug 2020 11:15:01 -0700 (PDT) Received: from dhcp-10-192-206-197.iig.avagotech.net.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id q5sm5027811pfu.16.2020.08.24.11.14.59 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Aug 2020 11:15:00 -0700 (PDT) From: Selvin Xavier To: jgg@ziepe.ca, dledford@redhat.com Cc: linux-rdma@vger.kernel.org, Naresh Kumar PBS , Selvin Xavier Subject: [PATCH for-rc 5/6] RDMA/bnxt_re: Restrict the max_gids to 256 Date: Mon, 24 Aug 2020 11:14:35 -0700 Message-Id: <1598292876-26529-6-git-send-email-selvin.xavier@broadcom.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1598292876-26529-1-git-send-email-selvin.xavier@broadcom.com> References: <1598292876-26529-1-git-send-email-selvin.xavier@broadcom.com> Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Naresh Kumar PBS Some adapters report more than 256 gid entries. Restrict it to 256 for now. Fixes: 1ac5a4047975("RDMA/bnxt_re: Add bnxt_re RoCE driver") Signed-off-by: Naresh Kumar PBS Signed-off-by: Selvin Xavier --- drivers/infiniband/hw/bnxt_re/qplib_sp.c | 2 +- drivers/infiniband/hw/bnxt_re/qplib_sp.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/infiniband/hw/bnxt_re/qplib_sp.c b/drivers/infiniband/hw/bnxt_re/qplib_sp.c index 4cd475e..64d44f5 100644 --- a/drivers/infiniband/hw/bnxt_re/qplib_sp.c +++ b/drivers/infiniband/hw/bnxt_re/qplib_sp.c @@ -149,7 +149,7 @@ int bnxt_qplib_get_dev_attr(struct bnxt_qplib_rcfw *rcfw, attr->max_inline_data = le32_to_cpu(sb->max_inline_data); attr->l2_db_size = (sb->l2_db_space_size + 1) * (0x01 << RCFW_DBR_BASE_PAGE_SHIFT); - attr->max_sgid = le32_to_cpu(sb->max_gid); + attr->max_sgid = BNXT_QPLIB_NUM_GIDS_SUPPORTED; bnxt_qplib_query_version(rcfw, attr->fw_ver); diff --git a/drivers/infiniband/hw/bnxt_re/qplib_sp.h b/drivers/infiniband/hw/bnxt_re/qplib_sp.h index 6404f0d..967890c 100644 --- a/drivers/infiniband/hw/bnxt_re/qplib_sp.h +++ b/drivers/infiniband/hw/bnxt_re/qplib_sp.h @@ -47,6 +47,7 @@ struct bnxt_qplib_dev_attr { #define FW_VER_ARR_LEN 4 u8 fw_ver[FW_VER_ARR_LEN]; +#define BNXT_QPLIB_NUM_GIDS_SUPPORTED 256 u16 max_sgid; u16 max_mrw; u32 max_qp; From patchwork Mon Aug 24 18:14:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Selvin Xavier X-Patchwork-Id: 11733925 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 417F514E5 for ; Mon, 24 Aug 2020 18:15:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 293502074D for ; Mon, 24 Aug 2020 18:15:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="QDcqIO9H" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726700AbgHXSPG (ORCPT ); Mon, 24 Aug 2020 14:15:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40834 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725890AbgHXSPF (ORCPT ); Mon, 24 Aug 2020 14:15:05 -0400 Received: from mail-pg1-x542.google.com (mail-pg1-x542.google.com [IPv6:2607:f8b0:4864:20::542]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 465B7C061573 for ; Mon, 24 Aug 2020 11:15:05 -0700 (PDT) Received: by mail-pg1-x542.google.com with SMTP id g33so4947726pgb.4 for ; Mon, 24 Aug 2020 11:15:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=DtOrUQtzHbeu3ICxgKjd1EY7HVvEYdCkKdBDm56KPYs=; b=QDcqIO9HaToxSd5lCs58ZOyPtIYxP7R2AjiKIpCWBor8WhFgaABeMyrIee3lYeitfx Z0gR7VbuuEfb0obJZwzZgkLfH6EOSIVawQOMDbqZkrcgu8/7vJ8P2vi4KGG17q0wFuYC Vj7EJFnWMR3yd/JKN2n+V6YwR2AKUR4KWdWP4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=DtOrUQtzHbeu3ICxgKjd1EY7HVvEYdCkKdBDm56KPYs=; b=YiVqywgPnifS/K/QiVnok2yT6+AnKgX0JK+Oj7Cc13RuwL8IlFOSwjeB330vL9gC32 1GI8qQ3wZ4fAXCUR5y5c6/0XZRuBZxiAqtTxp0Sdm/MDbRp0KLt1pSa4ihz1VYiXnedK oBHCyvQDH7yqI6AZogyXCQBvqGhoyunj3gqE02qQ4MN3+xj7CSSTY0aZ4rv5zKFux7TN aD7fxNNeQsDHFuSi/MLqhf7p2Lm+AdlLDWlv3VXP8qpsNpU7SPgdC+XckAnxdRRwNk+D QxsgSajLUqoMfJg19VCZPaJUQD5URSEffw1uHTXXt+tnJrKc2uJsvqXw7kFJ9s5zs01t HI0A== X-Gm-Message-State: AOAM530+DvTkiqQrYapewTgZDgdPnOpH8JJO6i7wjTFWci02Q+Jd5mb2 4so7glKlmayoUl0iKpPp6mepXQ== X-Google-Smtp-Source: ABdhPJzXHR2dTD7YCWlGs3wOgKHioGOMMnRrp33hNNRKY9rcTuvbGSjKSmf1dJ7QXg4RxmcVWkyRIg== X-Received: by 2002:a63:5703:: with SMTP id l3mr1237248pgb.329.1598292904673; Mon, 24 Aug 2020 11:15:04 -0700 (PDT) Received: from dhcp-10-192-206-197.iig.avagotech.net.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id q5sm5027811pfu.16.2020.08.24.11.15.01 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Aug 2020 11:15:03 -0700 (PDT) From: Selvin Xavier To: jgg@ziepe.ca, dledford@redhat.com Cc: linux-rdma@vger.kernel.org, Naresh Kumar PBS , Selvin Xavier Subject: [PATCH for-rc 6/6] RDMA/bnxt_re: Fix driver crash on unaligned PSN entry address Date: Mon, 24 Aug 2020 11:14:36 -0700 Message-Id: <1598292876-26529-7-git-send-email-selvin.xavier@broadcom.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1598292876-26529-1-git-send-email-selvin.xavier@broadcom.com> References: <1598292876-26529-1-git-send-email-selvin.xavier@broadcom.com> Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Naresh Kumar PBS When computing the first psn entry, driver checks for page alignment. If this address is not page aligned,it attempts to compute the offset in that page for later use by using ALIGN macro. ALIGN macro does not return offset bytes but the requested aligned address and hence cannot be used directly to store as offset. Since driver was using the address itself instead of offset, it resulted in invalid address when filling the psn buffer. Fixed driver to use PAGE_MASK macro to calculate the offset. Fixes: fddcbbb02af4 ("RDMA/bnxt_re: Simplify obtaining queue entry from hw ring") Signed-off-by: Naresh Kumar PBS Signed-off-by: Selvin Xavier --- drivers/infiniband/hw/bnxt_re/qplib_fp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/infiniband/hw/bnxt_re/qplib_fp.c b/drivers/infiniband/hw/bnxt_re/qplib_fp.c index 3535130..9f90cfe 100644 --- a/drivers/infiniband/hw/bnxt_re/qplib_fp.c +++ b/drivers/infiniband/hw/bnxt_re/qplib_fp.c @@ -937,10 +937,10 @@ static void bnxt_qplib_init_psn_ptr(struct bnxt_qplib_qp *qp, int size) sq = &qp->sq; hwq = &sq->hwq; + /* First psn entry */ fpsne = (u64)bnxt_qplib_get_qe(hwq, hwq->depth, &psn_pg); if (!IS_ALIGNED(fpsne, PAGE_SIZE)) - indx_pad = ALIGN(fpsne, PAGE_SIZE) / size; - + indx_pad = (fpsne & ~PAGE_MASK) / size; hwq->pad_pgofft = indx_pad; hwq->pad_pg = (u64 *)psn_pg; hwq->pad_stride = size;