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();