From patchwork Wed Dec 7 17:53:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 30975 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp332925wrr; Wed, 7 Dec 2022 10:09:09 -0800 (PST) X-Google-Smtp-Source: AA0mqf6DL1fF04MaNkuAvF1K82R2YuH0VaF9kExIC3c+DN+daKnqZhE75WwtLcGhQOAlpR70zB5o X-Received: by 2002:a17:906:3096:b0:7ae:eae9:25a5 with SMTP id 22-20020a170906309600b007aeeae925a5mr77454737ejv.394.1670436549366; Wed, 07 Dec 2022 10:09:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1670436549; cv=none; d=google.com; s=arc-20160816; b=yxr08LCF09apedTCI6/SbwpSQzROBfEqmIjZWAvZ497GKwrg1FZT6vqXXp7jY7G2ZP 488n7b7GbAzKehqK/DRikmjtz2X0fsXl0TLCJkXfxWEc8/HPk7mOYtUHVj0BtD5YWLL/ 2PRa2SDzdh8vfiK3UyvBCMXED4WzHlFdx7TX9ELOfxlsYjTnjv9tTNTiyK7x2okU66uf 9s3jTwYkY/cBrLFlIE39BjtlqTP1ojGcVL6vGoNXCAwdhL75hhGOD8pV5QLsEtyB6b2N M6hzIzImHfQMi6bJxQefiwNhzlEn/zXT5MDcItZg5TbutFe+cdpkb4HAbHR0TPrJja4S EC5g== 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=3hiqdIA1I9YlcIQPcBlqppYeAtfPaDFb7PLfRxvaBzU=; b=G/9V9a9vguOuiOB0kYdgoLROFfnMv+VbBHDRueE3p6O1xUzaPsnVgWfHw5aCaUTy/B E0WZ8AVXVszzToqHqhxYFv2bU1T9IkypHMt+SIJVQs/RXDoehGsXHSwPLbqfz2jb1+ld flntZ/74OdXXYEPg6rzXp24Q841guqis0FP7M9spD7khfahW5/2i/jmo0WK717H4TTuY MEhsxWzl+gyIrynN1BchtX3+sSMkgIxkmGbCYZaEZYarI962f/RZa8zBhrr0cRA2LH9/ p/QpEUv4wl+HAm9ymiFCjtGVvr4sduHUnPvMrV757PvbhS0e2nEIKVs4Easu1bh60BmX rPvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=VeutLNgO; 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 eb10-20020a0564020d0a00b0046c77f0b6bcsi5129348edb.562.2022.12.07.10.08.45; Wed, 07 Dec 2022 10:09:08 -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=VeutLNgO; 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 S230032AbiLGRyi (ORCPT + 99 others); Wed, 7 Dec 2022 12:54:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56226 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230218AbiLGRxv (ORCPT ); Wed, 7 Dec 2022 12:53:51 -0500 Received: from mail-pf1-x42b.google.com (mail-pf1-x42b.google.com [IPv6:2607:f8b0:4864:20::42b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 238D05CD0F for ; Wed, 7 Dec 2022 09:53:30 -0800 (PST) Received: by mail-pf1-x42b.google.com with SMTP id a14so14081070pfa.1 for ; Wed, 07 Dec 2022 09:53:30 -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=3hiqdIA1I9YlcIQPcBlqppYeAtfPaDFb7PLfRxvaBzU=; b=VeutLNgObgpq4BvlX7uXlUBHnH8AHLVKwwyvIILwPbhULvoKh6atOV2HTKAd8SfOt+ eEZMxQLTHLebv7SGMHyUJO56PA7HnR19xieLAbyt5cBlbztEKX6oxmW4a2P0ulVyCdZB ywkhO1uyOWAqx3+PKrYsLp9nasJcqtHDROxMQ= 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=3hiqdIA1I9YlcIQPcBlqppYeAtfPaDFb7PLfRxvaBzU=; b=Aqn7HnM2tYWBfE1fuI6T58W2GGzl6zkhUr6GUQQMlG2ZqLrRlM6xIoYNaqtNhe0Mwe coOEQ/L3PK7uQsOB3RLgP13RcHUXyGOOju7zb4Kb0A8yvjS3Ozfp6pqK9GcUVOO4A8SW p180VjPQAldGiEMcobcGN2QXMSiS6MYCaRMep1TsbPNw8b34QQQwfT/9jyIN2m8F7oHU OdZkBheYF+S90IYS+R2TGgG+TneAwPWnCmHauAQlVge+x2Z+P/7JF/vSIudygpmEfSoW MIktlGwu8oVZSqFSpOFuQMyN+MLPVltF9K74dCG9jNtfsE0r8lifRb55ouPgrUoo1lga Vo2w== X-Gm-Message-State: ANoB5pk+m/ZYMAnQKTBSKm3Qr/oBgRcwp+0OHmkXyRiz9hiwahzvS9y8 PPmfBOK+7E/4Q67zkRLthjPCxw== X-Received: by 2002:a63:4944:0:b0:46f:ec9f:dcb0 with SMTP id y4-20020a634944000000b0046fec9fdcb0mr67861828pgk.202.1670435610188; Wed, 07 Dec 2022 09:53:30 -0800 (PST) Received: from C02GC2QQMD6T.wifi.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id l6-20020a622506000000b005748aca80fesm13862242pfl.32.2022.12.07.09.53.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Dec 2022 09:53:29 -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 v5 7/7] RDMA/bnxt_re: Remove the sriov config callback Date: Wed, 7 Dec 2022 09:53:10 -0800 Message-Id: <20221207175310.23656-8-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) In-Reply-To: <20221207175310.23656-1-ajit.khaparde@broadcom.com> References: <20221207175310.23656-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?1751579675046844247?= X-GMAIL-MSGID: =?utf-8?q?1751579675046844247?= 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 --- drivers/infiniband/hw/bnxt_re/main.c | 7 ++++- .../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, 7 insertions(+), 37 deletions(-) diff --git a/drivers/infiniband/hw/bnxt_re/main.c b/drivers/infiniband/hw/bnxt_re/main.c index 3251078e9fe3..5811385e0439 100644 --- a/drivers/infiniband/hw/bnxt_re/main.c +++ b/drivers/infiniband/hw/bnxt_re/main.c @@ -297,7 +297,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 }; @@ -1361,6 +1360,12 @@ static int bnxt_re_dev_init(struct bnxt_re_dev *rdev, u8 wqe_mode) set_bit(BNXT_RE_FLAG_RESOURCES_INITIALIZED, &rdev->flags); if (!rdev->is_virtfn) { + /* + * Use the total VF count since the actual VF count may not be + * available at this point. + */ + bnxt_re_sriov_config(rdev, + pci_sriov_get_totalvfs(rdev->en_dev->pdev)); rc = bnxt_re_setup_qos(rdev); if (rc) ibdev_info(&rdev->ibdev, 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 ca612a8f38c2..a7c81cb950dc 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_dev *bnxt_aux = bp->aux_dev; @@ -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 ad0c63da11d0..fd8fd419602c 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h @@ -29,7 +29,6 @@ struct bnxt_msix_entry { struct bnxt_ulp_ops { /* async_notifier() cannot sleep (in BH context) */ void (*ulp_async_notifier)(void *, struct hwrm_async_event_cmpl *); - void (*ulp_sriov_config)(void *, int); void (*ulp_irq_stop)(void *); void (*ulp_irq_restart)(void *, struct bnxt_msix_entry *); };