-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sfc: Enable VF's via a write to the sysfs file sriov_numvfs
This patch adds support for the use of sriov_configure on EF10 to enable Virtual Functions while the driver is loaded. Signed-off-by: Shradha Shah <sshah@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
- Loading branch information
Shradha Shah
authored and
David S. Miller
committed
Apr 8, 2015
1 parent
d92916f
commit 25672db
Showing
9 changed files
with
87 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
/**************************************************************************** | ||
* Driver for Solarflare network controllers and boards | ||
* Copyright 2015 Solarflare Communications Inc. | ||
* | ||
* This program is free software; you can redistribute it and/or modify it | ||
* under the terms of the GNU General Public License version 2 as published | ||
* by the Free Software Foundation, incorporated herein by reference. | ||
*/ | ||
#include <linux/pci.h> | ||
#include <linux/module.h> | ||
#include "net_driver.h" | ||
#include "efx.h" | ||
#include "nic.h" | ||
#include "mcdi_pcol.h" | ||
|
||
#ifdef CONFIG_SFC_SRIOV | ||
static int efx_ef10_pci_sriov_enable(struct efx_nic *efx, int num_vfs) | ||
{ | ||
int rc = 0; | ||
struct pci_dev *dev = efx->pci_dev; | ||
|
||
efx->vf_count = num_vfs; | ||
rc = pci_enable_sriov(dev, num_vfs); | ||
if (rc) { | ||
efx->vf_count = 0; | ||
netif_err(efx, probe, efx->net_dev, | ||
"Failed to enable SRIOV VFs\n"); | ||
} | ||
return rc; | ||
} | ||
|
||
static int efx_ef10_pci_sriov_disable(struct efx_nic *efx) | ||
{ | ||
struct pci_dev *dev = efx->pci_dev; | ||
|
||
efx->vf_count = 0; | ||
pci_disable_sriov(dev); | ||
return 0; | ||
} | ||
#endif | ||
|
||
int efx_ef10_sriov_configure(struct efx_nic *efx, int num_vfs) | ||
{ | ||
#ifdef CONFIG_SFC_SRIOV | ||
if (num_vfs == 0) | ||
return efx_ef10_pci_sriov_disable(efx); | ||
else | ||
return efx_ef10_pci_sriov_enable(efx, num_vfs); | ||
#else | ||
return -EOPNOTSUPP; | ||
#endif | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters