From patchwork Fri Jan 20 06:05:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 46166 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp41197wrn; Thu, 19 Jan 2023 22:24:34 -0800 (PST) X-Google-Smtp-Source: AMrXdXu5Av9yzmPmuwy70+i/7FWOo0Lnxxhb/j2/TSvBYRvP+KFoaHVo7T2DVp18lfitPpG+XP8j X-Received: by 2002:a05:6402:501c:b0:48f:68b1:db4e with SMTP id p28-20020a056402501c00b0048f68b1db4emr15749478eda.27.1674195873823; Thu, 19 Jan 2023 22:24:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1674195873; cv=none; d=google.com; s=arc-20160816; b=tn9waGsWpCPZMYGoH/mas8tKYlDFxj0hSYQV2FXP9INWdTqcganmhhPDu1Z/1Olxiv Q7/PkPQ+Vy8J3aCdpTpi/P4319gJr9JrM8lvziox89MivBY5D3BWUtmTOUH8WfDu0TmC R1PVRq9yClLtLKxMU1z6hLsiDYICgLO0gBX9urIPX2CGIaRWOtguuZCBKkTX09CnnHR4 9zbYYCCY0h28lXN5/pbiHWaVwvkf4y0nn08eE9RWfMY31ilLQ6fatProkPZdIrBa3QZP 5iMgYwaH3BbwYvB/eBo7jfagdvcv5mluJAz0ov5+SMDoGAERBRiyXNBiSz/3YOHpFey9 GuQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=ej6+0veh4+EJd7AYfd2FQ+HJ4UAxq3E50KJOFMCuP3U=; b=v86xPm498imYjCbtvmtfQeULW1Rpz4sCacbuVX0IMhhDx/n97xKtacoRUQrxvabo3r asP2Z6elq5HaFF/R3Po28YWGvmWuFV0EKM3vHKrRtiSJknhvXkwAZif47u8PGXWYNiMR xE3SUUTYO0CuKvjL0ZFomMWcc5atXSeSQjsZPLgbwQ5sWaSndn3GPZm+IgXaXh7sbd2M YpTCAsh2MwxkrhY38d8xeJa3FqCBuUw5+lnuuSxVqt/k3USZ6ARX57NypT6rD4FYrxsw OX1TnfNyfEtd4jC9TrQnMitfh4jt/W3MKwAVSNHVD+/8xkvkbLW6yjg4/CUMjkqRtFwm CTaw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=egMIhvi8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k26-20020aa7d8da000000b0048bed17d7d9si38072029eds.8.2023.01.19.22.24.09; Thu, 19 Jan 2023 22:24:32 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=egMIhvi8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229504AbjATGVt (ORCPT + 99 others); Fri, 20 Jan 2023 01:21:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56178 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229885AbjATGVS (ORCPT ); Fri, 20 Jan 2023 01:21:18 -0500 Received: from mail-qt1-x830.google.com (mail-qt1-x830.google.com [IPv6:2607:f8b0:4864:20::830]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CF46C8535C for ; Thu, 19 Jan 2023 22:20:57 -0800 (PST) Received: by mail-qt1-x830.google.com with SMTP id x7so3435257qtv.13 for ; Thu, 19 Jan 2023 22:20:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=ej6+0veh4+EJd7AYfd2FQ+HJ4UAxq3E50KJOFMCuP3U=; b=egMIhvi8zO80eJlAP8DRLPAl0w1g3WM5i72x4PvHXqmBj/tjpL5Jdg4G+/Lv/lTkR1 zrcmUZ9tEhMMszVdMCbTlZWVmCIiLhE8Tgz5z7CNzshpNjHlQe/AuT9OI3g5xuAKfmC8 wukqH9xrQ0ECvLD7zmAHy06+29sOETCukoxA8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ej6+0veh4+EJd7AYfd2FQ+HJ4UAxq3E50KJOFMCuP3U=; b=pl9qORNBkKS72N3E4sAd0JjL6igKSDlHEIpxanmXra3NxP59/JVpdS8zqrIOvfA7HB 1OZzIxMrJpM0jGbv+k0P7zCkb/Ah1VYyF+kFJETCA3M8ul+zX6Qu2xMO9STEsdv3om1A JkDH4HIr4whFMWUtW6U5Ls3wlIcgS8V9VEOkR6cg0XUkwyicjDlxtAOC/Yg7/WRmJEku bpY0hsgSYOqtZC9HXqe1EOLqRNkTOcj7m3xI3xC5XfCX2BYxLOIf3OWq/AsW+cxwv8To rfrZHb0LbzjTP9re1PQB7E2fWgVVDLOKUQiYD8Byj2XYve0+UDGYwb0n9BAmR2h2ZQZ9 lMcw== X-Gm-Message-State: AFqh2kqpYqx5B8JKnbanZjnzhRb/LBLG4Ig3/qh/OmVajdEGXrIvn5ay I8gYD3rEzZyCaEWGxrS+1a+Bow== X-Received: by 2002:a05:622a:2308:b0:3b6:3466:eee9 with SMTP id ck8-20020a05622a230800b003b63466eee9mr21095965qtb.25.1674195657070; Thu, 19 Jan 2023 22:20:57 -0800 (PST) Received: from localhost.localdomain ([2605:a601:a780:1400:641c:466b:fa8e:b05a]) by smtp.gmail.com with ESMTPSA id e26-20020ac845da000000b003a527d29a41sm6903273qto.75.2023.01.19.22.20.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Jan 2023 22:20:56 -0800 (PST) From: Ajit Khaparde To: ajit.khaparde@broadcom.com Cc: andrew.gospodarek@broadcom.com, davem@davemloft.net, edumazet@google.com, jgg@ziepe.ca, kuba@kernel.org, leon@kernel.org, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, michael.chan@broadcom.com, netdev@vger.kernel.org, pabeni@redhat.com, selvin.xavier@broadcom.com, Leon Romanovsky Subject: [PATCH net-next v8 7/8] RDMA/bnxt_re: Remove the sriov config callback Date: Thu, 19 Jan 2023 22:05:34 -0800 Message-Id: <20230120060535.83087-8-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) In-Reply-To: <20230120060535.83087-1-ajit.khaparde@broadcom.com> References: <20230120060535.83087-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1755521612878171252?= X-GMAIL-MSGID: =?utf-8?q?1755521612878171252?= Remove the SRIOV config callback which the bnxt_en was calling to reconfigure the chip resources for a PF device when VFs are created. The code is now modified to provision the VF resources based on the total VF count instead of the actual VF count. This allows the SRIOV config callback to be removed from the list of ulp_ops. Suggested-by: Leon Romanovsky Signed-off-by: Ajit Khaparde Reviewed-by: Leon Romanovsky --- drivers/infiniband/hw/bnxt_re/main.c | 11 ++++--- .../net/ethernet/broadcom/bnxt/bnxt_sriov.c | 7 +---- drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 29 ------------------- drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h | 1 - 4 files changed, 8 insertions(+), 40 deletions(-) diff --git a/drivers/infiniband/hw/bnxt_re/main.c b/drivers/infiniband/hw/bnxt_re/main.c index ed7ac6acaaff..60df6809bc60 100644 --- a/drivers/infiniband/hw/bnxt_re/main.c +++ b/drivers/infiniband/hw/bnxt_re/main.c @@ -221,13 +221,12 @@ static void bnxt_re_set_resource_limits(struct bnxt_re_dev *rdev) bnxt_re_limit_vf_res(&rdev->qplib_ctx, num_vfs); } -static void bnxt_re_sriov_config(void *p, int num_vfs) +static void bnxt_re_vf_res_config(struct bnxt_re_dev *rdev) { - struct bnxt_re_dev *rdev = p; if (test_bit(BNXT_RE_FLAG_ERR_DEVICE_DETACHED, &rdev->flags)) return; - rdev->num_vfs = num_vfs; + rdev->num_vfs = pci_sriov_get_totalvfs(rdev->en_dev->pdev); if (!bnxt_qplib_is_chip_gen_p5(rdev->chip_ctx)) { bnxt_re_set_resource_limits(rdev); bnxt_qplib_set_func_resources(&rdev->qplib_res, &rdev->rcfw, @@ -297,7 +296,6 @@ static void bnxt_re_start_irq(void *handle, struct bnxt_msix_entry *ent) } static struct bnxt_ulp_ops bnxt_re_ulp_ops = { - .ulp_sriov_config = bnxt_re_sriov_config, .ulp_irq_stop = bnxt_re_stop_irq, .ulp_irq_restart = bnxt_re_start_irq }; @@ -1369,6 +1367,11 @@ static int bnxt_re_dev_init(struct bnxt_re_dev *rdev, u8 wqe_mode) INIT_DELAYED_WORK(&rdev->worker, bnxt_re_worker); set_bit(BNXT_RE_FLAG_QOS_WORK_REG, &rdev->flags); schedule_delayed_work(&rdev->worker, msecs_to_jiffies(30000)); + /* + * Use the total VF count since the actual VF count may not be + * available at this point. + */ + bnxt_re_vf_res_config(rdev); } return 0; diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c index a4cba7cb2783..3ed3a2b3b3a9 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c @@ -749,7 +749,6 @@ int bnxt_cfg_hw_sriov(struct bnxt *bp, int *num_vfs, bool reset) *num_vfs = rc; } - bnxt_ulp_sriov_cfg(bp, *num_vfs); return 0; } @@ -823,10 +822,8 @@ static int bnxt_sriov_enable(struct bnxt *bp, int *num_vfs) goto err_out2; rc = pci_enable_sriov(bp->pdev, *num_vfs); - if (rc) { - bnxt_ulp_sriov_cfg(bp, 0); + if (rc) goto err_out2; - } return 0; @@ -872,8 +869,6 @@ void bnxt_sriov_disable(struct bnxt *bp) rtnl_lock(); bnxt_restore_pf_fw_resources(bp); rtnl_unlock(); - - bnxt_ulp_sriov_cfg(bp, 0); } int bnxt_sriov_configure(struct pci_dev *pdev, int num_vfs) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c index a5da2a1768eb..48d120ee3fab 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c @@ -260,16 +260,6 @@ int bnxt_send_msg(struct bnxt_en_dev *edev, } EXPORT_SYMBOL(bnxt_send_msg); -static void bnxt_ulp_get(struct bnxt_ulp *ulp) -{ - atomic_inc(&ulp->ref_count); -} - -static void bnxt_ulp_put(struct bnxt_ulp *ulp) -{ - atomic_dec(&ulp->ref_count); -} - void bnxt_ulp_stop(struct bnxt *bp) { struct bnxt_aux_priv *aux_priv = bp->aux_priv; @@ -322,25 +312,6 @@ void bnxt_ulp_start(struct bnxt *bp, int err) } -void bnxt_ulp_sriov_cfg(struct bnxt *bp, int num_vfs) -{ - struct bnxt_en_dev *edev = bp->edev; - struct bnxt_ulp_ops *ops; - struct bnxt_ulp *ulp; - - if (!edev) - return; - ulp = edev->ulp_tbl; - - ops = rcu_dereference(ulp->ulp_ops); - if (!ops || !ops->ulp_sriov_config) - return; - - bnxt_ulp_get(ulp); - ops->ulp_sriov_config(ulp->handle, num_vfs); - bnxt_ulp_put(ulp); -} - void bnxt_ulp_irq_stop(struct bnxt *bp) { struct bnxt_en_dev *edev = bp->edev; diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h index 9b0e50bcce27..beb64d5587d0 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h @@ -26,7 +26,6 @@ struct bnxt_msix_entry { }; struct bnxt_ulp_ops { - void (*ulp_sriov_config)(void *, int); void (*ulp_irq_stop)(void *); void (*ulp_irq_restart)(void *, struct bnxt_msix_entry *); };