|
Thomas Bogendoerfer |
951cff |
From: Michael Chan <michael.chan@broadcom.com>
|
|
Thomas Bogendoerfer |
951cff |
Date: Tue, 16 Nov 2021 14:26:10 -0500
|
|
Thomas Bogendoerfer |
951cff |
Subject: bnxt_en: Fix compile error regression when CONFIG_BNXT_SRIOV is not
|
|
Thomas Bogendoerfer |
951cff |
set
|
|
Thomas Bogendoerfer |
951cff |
Patch-mainline: v5.16-rc2
|
|
Thomas Bogendoerfer |
951cff |
Git-commit: 9f5363916a5099e618e6e40606e91b8ce0833754
|
|
Thomas Bogendoerfer |
951cff |
References: jsc#SLE-18978
|
|
Thomas Bogendoerfer |
951cff |
|
|
Thomas Bogendoerfer |
951cff |
bp->sriov_cfg is not defined when CONFIG_BNXT_SRIOV is not set. Fix
|
|
Thomas Bogendoerfer |
951cff |
it by adding a helper function bnxt_sriov_cfg() to handle the logic
|
|
Thomas Bogendoerfer |
951cff |
with or without the config option.
|
|
Thomas Bogendoerfer |
951cff |
|
|
Thomas Bogendoerfer |
951cff |
Fixes: 46d08f55d24e ("bnxt_en: extend RTNL to VF check in devlink driver_reinit")
|
|
Thomas Bogendoerfer |
951cff |
Reported-by: kernel test robot <lkp@intel.com>
|
|
Thomas Bogendoerfer |
951cff |
Reviewed-by: Edwin Peer <edwin.peer@broadcom.com>
|
|
Thomas Bogendoerfer |
951cff |
Reviewed-by: Andy Gospodarek <gospo@broadcom.com>
|
|
Thomas Bogendoerfer |
951cff |
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
|
|
Thomas Bogendoerfer |
951cff |
Link: https://lore.kernel.org/r/1637090770-22835-1-git-send-email-michael.chan@broadcom.com
|
|
Thomas Bogendoerfer |
951cff |
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
Thomas Bogendoerfer |
951cff |
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
|
|
Thomas Bogendoerfer |
951cff |
---
|
|
Thomas Bogendoerfer |
951cff |
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 10 ++++++++++
|
|
Thomas Bogendoerfer |
951cff |
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 2 +-
|
|
Thomas Bogendoerfer |
951cff |
2 files changed, 11 insertions(+), 1 deletion(-)
|
|
Thomas Bogendoerfer |
951cff |
|
|
Thomas Bogendoerfer |
951cff |
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h
|
|
Thomas Bogendoerfer |
951cff |
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
|
|
Thomas Bogendoerfer |
951cff |
@@ -2258,6 +2258,16 @@ static inline void bnxt_db_write(struct
|
|
Thomas Bogendoerfer |
951cff |
}
|
|
Thomas Bogendoerfer |
951cff |
}
|
|
Thomas Bogendoerfer |
951cff |
|
|
Thomas Bogendoerfer |
951cff |
+/* Must hold rtnl_lock */
|
|
Thomas Bogendoerfer |
951cff |
+static inline bool bnxt_sriov_cfg(struct bnxt *bp)
|
|
Thomas Bogendoerfer |
951cff |
+{
|
|
Thomas Bogendoerfer |
951cff |
+#if defined(CONFIG_BNXT_SRIOV)
|
|
Thomas Bogendoerfer |
951cff |
+ return BNXT_PF(bp) && (bp->pf.active_vfs || bp->sriov_cfg);
|
|
Thomas Bogendoerfer |
951cff |
+#else
|
|
Thomas Bogendoerfer |
951cff |
+ return false;
|
|
Thomas Bogendoerfer |
951cff |
+#endif
|
|
Thomas Bogendoerfer |
951cff |
+}
|
|
Thomas Bogendoerfer |
951cff |
+
|
|
Thomas Bogendoerfer |
951cff |
extern const u16 bnxt_lhint_arr[];
|
|
Thomas Bogendoerfer |
951cff |
|
|
Thomas Bogendoerfer |
951cff |
int bnxt_alloc_rx_data(struct bnxt *bp, struct bnxt_rx_ring_info *rxr,
|
|
Thomas Bogendoerfer |
951cff |
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
|
|
Thomas Bogendoerfer |
951cff |
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
|
|
Thomas Bogendoerfer |
951cff |
@@ -442,7 +442,7 @@ static int bnxt_dl_reload_down(struct de
|
|
Thomas Bogendoerfer |
951cff |
switch (action) {
|
|
Thomas Bogendoerfer |
951cff |
case DEVLINK_RELOAD_ACTION_DRIVER_REINIT: {
|
|
Thomas Bogendoerfer |
951cff |
rtnl_lock();
|
|
Thomas Bogendoerfer |
951cff |
- if (BNXT_PF(bp) && (bp->pf.active_vfs || bp->sriov_cfg)) {
|
|
Thomas Bogendoerfer |
951cff |
+ if (bnxt_sriov_cfg(bp)) {
|
|
Thomas Bogendoerfer |
951cff |
NL_SET_ERR_MSG_MOD(extack,
|
|
Thomas Bogendoerfer |
951cff |
"reload is unsupported while VFs are allocated or being configured");
|
|
Thomas Bogendoerfer |
951cff |
rtnl_unlock();
|