summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
diff options
context:
space:
mode:
authorVikas Gupta <vikas.gupta@broadcom.com>2024-04-09 14:54:30 -0700
committerJakub Kicinski <kuba@kernel.org>2024-04-10 19:55:06 -0700
commitd630624ebd708fb659b18a8d1423e8e26de075ab (patch)
treecfb6843613e6dd6ae51c9a0bf6992215fb2e433c /drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
parent2e4592dc9bee5ca4fd3da4c5451c7f97c76442bf (diff)
downloadlinux-d630624ebd708fb659b18a8d1423e8e26de075ab.tar.gz
linux-d630624ebd708fb659b18a8d1423e8e26de075ab.tar.bz2
linux-d630624ebd708fb659b18a8d1423e8e26de075ab.zip
bnxt_en: Utilize ulp client resources if RoCE is not registered
If the RoCE driver is not registered for a RoCE capable device, add flexibility to use the RoCE resources (MSIX/NQs) for L2 purposes, such as additional rings configured by the user or for XDP. Reviewed-by: Andy Gospodarek <andrew.gospodarek@broadcom.com> Signed-off-by: Vikas Gupta <vikas.gupta@broadcom.com> Signed-off-by: Michael Chan <michael.chan@broadcom.com> Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> Link: https://lore.kernel.org/r/20240409215431.41424-7-michael.chan@broadcom.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c')
-rw-r--r--drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
index de2cb1d4cd98..edb10aebd095 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
@@ -61,6 +61,13 @@ void bnxt_set_ulp_msix_num(struct bnxt *bp, int num)
bp->edev->ulp_num_msix_vec = num;
}
+int bnxt_get_ulp_msix_num_in_use(struct bnxt *bp)
+{
+ if (bnxt_ulp_registered(bp->edev))
+ return bp->edev->ulp_num_msix_vec;
+ return 0;
+}
+
int bnxt_get_ulp_stat_ctxs(struct bnxt *bp)
{
if (bp->edev)
@@ -74,6 +81,13 @@ void bnxt_set_ulp_stat_ctxs(struct bnxt *bp, int num_ulp_ctx)
bp->edev->ulp_num_ctxs = num_ulp_ctx;
}
+int bnxt_get_ulp_stat_ctxs_in_use(struct bnxt *bp)
+{
+ if (bnxt_ulp_registered(bp->edev))
+ return bp->edev->ulp_num_ctxs;
+ return 0;
+}
+
void bnxt_set_dflt_ulp_stat_ctxs(struct bnxt *bp)
{
if (bp->edev) {