mbox series

[v4,net-next,0/2] ionic: add sriov support

Message ID 20200103175508.32176-1-snelson@pensando.io
Headers show
Series ionic: add sriov support | expand

Message

Shannon Nelson Jan. 3, 2020, 5:55 p.m. UTC
Set up the basic support for enabling SR-IOV devices in the
ionic driver.  Since most of the management work happens in
the NIC firmware, the driver becomes mostly a pass-through
for the network stack commands that want to control and
configure the VFs.

v4:	changed "vf too big" checks to use pci_num_vf()
	changed from vf[] array of pointers of individually allocated
	  vf structs to single allocated vfs[] array of vf structs
	added clean up of vfs[] on probe fail
	added setup for vf stats dma

v3:	added check in probe for pre-existing VFs
	split out the alloc and dealloc of vf structs to better deal
	  with pre-existing VFs (left enabled on remove)
	restored the checks for vf too big because of a potential
	  case where VFs are already enabled but driver failed to
	  alloc the vf structs

v2:	use pci_num_vf() and kcalloc()
	remove checks for vf too big
	add locking for the VF operations
	disable VFs in ionic_remove() if they are still running


Shannon Nelson (2):
  ionic: ionic_if bits for sr-iov support
  ionic: support sr-iov operations

 drivers/net/ethernet/pensando/ionic/ionic.h   |  17 +-
 .../ethernet/pensando/ionic/ionic_bus_pci.c   | 113 ++++++++
 .../net/ethernet/pensando/ionic/ionic_dev.c   |  58 ++++
 .../net/ethernet/pensando/ionic/ionic_dev.h   |   7 +
 .../net/ethernet/pensando/ionic/ionic_if.h    |  97 +++++++
 .../net/ethernet/pensando/ionic/ionic_lif.c   | 247 +++++++++++++++++-
 .../net/ethernet/pensando/ionic/ionic_main.c  |   4 +
 7 files changed, 535 insertions(+), 8 deletions(-)

Comments

David Miller Jan. 5, 2020, 10:51 p.m. UTC | #1
From: Shannon Nelson <snelson@pensando.io>
Date: Fri,  3 Jan 2020 09:55:06 -0800

> Set up the basic support for enabling SR-IOV devices in the
> ionic driver.  Since most of the management work happens in
> the NIC firmware, the driver becomes mostly a pass-through
> for the network stack commands that want to control and
> configure the VFs.
> 
> v4:	changed "vf too big" checks to use pci_num_vf()
> 	changed from vf[] array of pointers of individually allocated
> 	  vf structs to single allocated vfs[] array of vf structs
> 	added clean up of vfs[] on probe fail
> 	added setup for vf stats dma
> 
> v3:	added check in probe for pre-existing VFs
> 	split out the alloc and dealloc of vf structs to better deal
> 	  with pre-existing VFs (left enabled on remove)
> 	restored the checks for vf too big because of a potential
> 	  case where VFs are already enabled but driver failed to
> 	  alloc the vf structs
> 
> v2:	use pci_num_vf() and kcalloc()
> 	remove checks for vf too big
> 	add locking for the VF operations
> 	disable VFs in ionic_remove() if they are still running

Series applied, thanks Shannon.