You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.3 KiB
65 lines
2.3 KiB
From a14a9a4590a264a697d4749b4ec88ffbb9a6bc2f Mon Sep 17 00:00:00 2001
|
|
From: Jonathan Toppins <jtoppins@redhat.com>
|
|
Date: Wed, 2 Oct 2019 18:22:48 -0400
|
|
Subject: [PATCH 33/96] [netdrv] bnxt_en: Fix VNIC accounting when enabling
|
|
aRFS on 57500 chips
|
|
|
|
Message-id: <7579696a1f5495cda9cfb3e7b819d0ce20cc022b.1570027456.git.jtoppins@redhat.com>
|
|
Patchwork-id: 276453
|
|
O-Subject: [RHEL-8.2 PATCH 26/78] bnxt_en: Fix VNIC accounting when enabling aRFS on 57500 chips.
|
|
Bugzilla: 1724766
|
|
RH-Acked-by: John Linville <linville@redhat.com>
|
|
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
|
|
|
Unlike legacy chips, 57500 chips don't need additional VNIC resources
|
|
for aRFS/ntuple. Fix the code accordingly so that we don't reserve
|
|
and allocate additional VNICs on 57500 chips. Without this patch,
|
|
the driver is failing to initialize when it tries to allocate extra
|
|
VNICs.
|
|
|
|
Fixes: ac33906c67e2 ("bnxt_en: Add support for aRFS on 57500 chips.")
|
|
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
(cherry picked from commit 9b3d15e6b05e0b916be5fbd915f90300a403098b)
|
|
Bugzilla: 1724766
|
|
Build Info: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=23809532
|
|
Tested: build, boot, basic ping
|
|
Signed-off-by: Jonathan Toppins <jtoppins@redhat.com>
|
|
Signed-off-by: Bruno Meneguele <bmeneg@redhat.com>
|
|
---
|
|
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 7 +++++--
|
|
1 file changed, 5 insertions(+), 2 deletions(-)
|
|
|
|
Index: src/drivers/net/ethernet/broadcom/bnxt/bnxt.c
|
|
===================================================================
|
|
--- src.orig/drivers/net/ethernet/broadcom/bnxt/bnxt.c 2020-02-06 16:23:14.697522450 +0100
|
|
+++ src/drivers/net/ethernet/broadcom/bnxt/bnxt.c 2020-02-06 16:23:14.827521257 +0100
|
|
@@ -3080,7 +3080,7 @@
|
|
int num_vnics = 1;
|
|
|
|
#ifdef CONFIG_RFS_ACCEL
|
|
- if (bp->flags & BNXT_FLAG_RFS)
|
|
+ if ((bp->flags & (BNXT_FLAG_RFS | BNXT_FLAG_CHIP_P5)) == BNXT_FLAG_RFS)
|
|
num_vnics += bp->rx_nr_rings;
|
|
#endif
|
|
|
|
@@ -7191,6 +7191,9 @@
|
|
#ifdef CONFIG_RFS_ACCEL
|
|
int i, rc = 0;
|
|
|
|
+ if (bp->flags & BNXT_FLAG_CHIP_P5)
|
|
+ return 0;
|
|
+
|
|
for (i = 0; i < bp->rx_nr_rings; i++) {
|
|
struct bnxt_vnic_info *vnic;
|
|
u16 vnic_id = i + 1;
|
|
@@ -9650,7 +9653,7 @@
|
|
return -ENOMEM;
|
|
|
|
vnics = 1;
|
|
- if (bp->flags & BNXT_FLAG_RFS)
|
|
+ if ((bp->flags & (BNXT_FLAG_RFS | BNXT_FLAG_CHIP_P5)) == BNXT_FLAG_RFS)
|
|
vnics += rx_rings;
|
|
|
|
if (bp->flags & BNXT_FLAG_AGG_RINGS)
|