aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMartin Habets2022-05-11 17:20:25 +0100
committerJakub Kicinski2022-05-12 16:49:30 -0700
commitc374303969eac5639bd9230f1c7e7390cb92cc8e (patch)
treeaa5b2c9ee63eae0e672206c2af0c8bbcdc07b8da /drivers
parentef9b5770945ddc296a68080ab7a79aedbf0b0151 (diff)
sfc/siena: Reinstate SRIOV init/fini function calls
They were removed in the first series since they were not used for EF10. Put that code back for Siena, with the prototypes in siena_sriov.h since that file is a more applicable place for it. Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Martin Habets <habetsm.xilinx@gmail.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/sfc/siena/efx.c16
-rw-r--r--drivers/net/ethernet/sfc/siena/siena_sriov.h3
2 files changed, 19 insertions, 0 deletions
diff --git a/drivers/net/ethernet/sfc/siena/efx.c b/drivers/net/ethernet/sfc/siena/efx.c
index 01809666a3d1..63d999e63960 100644
--- a/drivers/net/ethernet/sfc/siena/efx.c
+++ b/drivers/net/ethernet/sfc/siena/efx.c
@@ -32,6 +32,9 @@
#include "io.h"
#include "selftest.h"
#include "sriov.h"
+#ifdef CONFIG_SFC_SIENA_SRIOV
+#include "siena_sriov.h"
+#endif
#include "mcdi_port_common.h"
#include "mcdi_pcol.h"
@@ -1271,6 +1274,12 @@ static int __init efx_init_module(void)
if (rc)
goto err_notifier;
+#ifdef CONFIG_SFC_SIENA_SRIOV
+ rc = efx_init_sriov();
+ if (rc)
+ goto err_sriov;
+#endif
+
rc = efx_siena_create_reset_workqueue();
if (rc)
goto err_reset;
@@ -1284,6 +1293,10 @@ static int __init efx_init_module(void)
err_pci:
efx_siena_destroy_reset_workqueue();
err_reset:
+#ifdef CONFIG_SFC_SIENA_SRIOV
+ efx_fini_sriov();
+ err_sriov:
+#endif
unregister_netdevice_notifier(&efx_netdev_notifier);
err_notifier:
return rc;
@@ -1295,6 +1308,9 @@ static void __exit efx_exit_module(void)
pci_unregister_driver(&efx_pci_driver);
efx_siena_destroy_reset_workqueue();
+#ifdef CONFIG_SFC_SIENA_SRIOV
+ efx_fini_sriov();
+#endif
unregister_netdevice_notifier(&efx_netdev_notifier);
}
diff --git a/drivers/net/ethernet/sfc/siena/siena_sriov.h b/drivers/net/ethernet/sfc/siena/siena_sriov.h
index 69a7a18e9ba0..50f6e924495e 100644
--- a/drivers/net/ethernet/sfc/siena/siena_sriov.h
+++ b/drivers/net/ethernet/sfc/siena/siena_sriov.h
@@ -60,6 +60,9 @@ static inline bool efx_siena_sriov_enabled(struct efx_nic *efx)
{
return efx->vf_init_count != 0;
}
+
+int efx_init_sriov(void);
+void efx_fini_sriov(void);
#else /* !CONFIG_SFC_SIENA_SRIOV */
static inline bool efx_siena_sriov_enabled(struct efx_nic *efx)
{