#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"
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;
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;
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);
}
{
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)
{