From patchwork Thu Feb 2 03:38:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 51662 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp16911wrn; Wed, 1 Feb 2023 19:42:15 -0800 (PST) X-Google-Smtp-Source: AK7set/dnsrNfw7C4M55vzC1Pw5aWX+oiFQlUWT6RXITusdH0mz9CZTJz5Wmx/2rSPlhs1k6ESIH X-Received: by 2002:a05:6402:180f:b0:4a2:45cc:b60c with SMTP id g15-20020a056402180f00b004a245ccb60cmr4842927edy.41.1675309335244; Wed, 01 Feb 2023 19:42:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675309335; cv=none; d=google.com; s=arc-20160816; b=Hp18ysKphMdq+fqKvwCrwg1jwdKY7CaCK9hStU7gAtBLmvIgwF/6ETBc4B3JubdFjc dm1ZyXJ3NX80MbsHLUylN4nEqLz5DP70pr0pe7HlpeUA8YZn4Cj0TEsjmjdEQXwI+jjL fU7pf+pEbsiFm0iTpoxkSMl10RX/TgDyl/VsoEnzNHOTyjQgoQoygann09LjTADWDpnO ZhRrvYlBw0cZ0W/lsnTnJzy0QMNA7mZ0Tq7HVwTRoNdiSUFneT0c6N8VBh80rIlMaLkT R6RG/NxKwj6AJdOHFPhLhVK3yfg+fGIUeonwS76E1SpHRWBmxDya0NcBv40L/mhiTxKx h3rg== 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=OIg/QpAq+W47v9D5z/5os/Gk2XUgzSn/bvi4iCKm9AI=; b=b++0JLMBfy3jR8Vcphc5JER4Dw/UArtNCuRlTz3bUZGRXiOK40NG8xAT+KEIsZAziM RQGrUs2vwkm+MOUIft0b8b5sfbVsN9WbA2twOSj2EM8S0uRRkJNEVrMvcOUXFoTDHSDH gO6g++cI6InuZYwbpv1XE6k5TTe+Mhml5i83K8lhbR/6XkCkaNHsnapp632s84c33WOH WYO/bLhh2DudnRq5PGEodxL3OpWFgc2L/gAreJhMS2Yxu1Kf37w0sgVk2IVbONlKjeo1 OjdVlhoDF/vm1MQUC3nhdShQwUWIsW/obFvp+WeIb7OxICDjFyWg+UAVOqgSy91ReH9C KoCQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=f8YfvXJk; 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 j4-20020a170906104400b0088e0dfe3707si3960516ejj.601.2023.02.01.19.41.50; Wed, 01 Feb 2023 19:42:14 -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=f8YfvXJk; 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 S232274AbjBBDje (ORCPT + 99 others); Wed, 1 Feb 2023 22:39:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34616 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232147AbjBBDi5 (ORCPT ); Wed, 1 Feb 2023 22:38:57 -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 3F7937CC96 for ; Wed, 1 Feb 2023 19:38:33 -0800 (PST) Received: by mail-qt1-x830.google.com with SMTP id c2so680758qtw.5 for ; Wed, 01 Feb 2023 19:38:33 -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=OIg/QpAq+W47v9D5z/5os/Gk2XUgzSn/bvi4iCKm9AI=; b=f8YfvXJk1dZZNCLq6ADypUZtbCyQ8ldav07Qqp6wJ9luofRorDx7O5CRa+9Uct/58D H2fVBfzi7WqTqnnl1rQx+YikcrAYjiNpnoIhmOAHbEaxO2HR03uiuPqpvf/6ja6btFZE YNgoftfr6mo3c5qDtnN2CMr9w50+yaK9ePYiA= 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=OIg/QpAq+W47v9D5z/5os/Gk2XUgzSn/bvi4iCKm9AI=; b=p1YJpmxafpybVWlWJb6XPyYtN5MLwBMDeWp0Y2srZQaCQlYpaU8M/CdoR92v+nU5hz UolwZwAvOgd2yYPqyIERs5PzdghQD6sfSEx5nFLyEqjYneQGyREuyl2SqbIXxkuM6Vih 5kIy6Yw2/vKWidCd9u4/2iYyRiW+eS9ImZpKs4qK8Tv3BtKKCEwYZW5JZSJJbWAcab1f Lf9bX751Vk6xUnqsl2ztRgfniJYNANI9BMC9P9/O725KhWeAMNKXO4oLboxBhhG7XBZp IhTGq3NsgxmGoPLGlLx4Mub7AG7qqXbJJq0hw7Dt7Ao2Daloy4gIkymozeShDylel2QR CgWQ== X-Gm-Message-State: AO0yUKUt7DcX9UqQKoJCviH5J3+JYBvthqXck/6kPzfnoGdEDtqWhg4J /p1onnC+D1EfGYJKWhYWhP2K9A== X-Received: by 2002:a05:622a:11c8:b0:3a5:ff6e:d425 with SMTP id n8-20020a05622a11c800b003a5ff6ed425mr9980716qtk.4.1675309112807; Wed, 01 Feb 2023 19:38:32 -0800 (PST) Received: from localhost.localdomain ([2605:a601:a780:1400:3d86:d226:5cc5:3432]) by smtp.gmail.com with ESMTPSA id p12-20020ac8408c000000b003b869f71eedsm7244487qtl.66.2023.02.01.19.38.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Feb 2023 19:38:32 -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, gregkh@linuxfoundation.org, Leon Romanovsky Subject: [PATCH net-next v11 7/8] RDMA/bnxt_re: Remove the sriov config callback Date: Wed, 1 Feb 2023 19:38:08 -0800 Message-Id: <20230202033809.3989-8-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) In-Reply-To: <20230202033809.3989-1-ajit.khaparde@broadcom.com> References: <20230202033809.3989-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?1756689161357721716?= X-GMAIL-MSGID: =?utf-8?q?1756689161357721716?= 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 132df8275ab1..9525bd368e43 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c @@ -259,16 +259,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; @@ -321,25 +311,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 c62986e4cc82..ed2832975912 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 *); };