> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of Michal > Swiatkowski > Sent: Thursday, June 6, 2024 1:25 PM > To: [email protected] > Cc: [email protected]; Fijalkowski, Maciej <[email protected]>; > [email protected]; Samudrala, Sridhar <[email protected]>; > Polchlopek, Mateusz <[email protected]>; [email protected]; > [email protected]; [email protected]; Kubiak, Michal > <[email protected]>; [email protected]; Kitszel, Przemyslaw > <[email protected]>; Keller, Jacob E <[email protected]>; > Drewek, Wojciech <[email protected]> > Subject: [Intel-wired-lan] [iwl-next v5 03/15] ice: add basic devlink > subfunctions > support > > From: Piotr Raczynski <[email protected]> > > Implement devlink port handlers responsible for ethernet type devlink > subfunctions. Create subfunction devlink port and setup all resources needed > for > a subfunction netdev to operate. Configure new VSI for each new subfunction, > initialize and configure interrupts and Tx/Rx resources. > Set correct MAC filters and create new netdev. > > For now, subfunction is limited to only one Tx/Rx queue pair. > > Only allocate new subfunction VSI with devlink port new command. > Allocate and free subfunction MSIX interrupt vectors using new API calls with > pci_msix_alloc_irq_at and pci_msix_free_irq. > > Support both automatic and manual subfunction numbers. If no subfunction > number is provided, use xa_alloc to pick a number automatically. This will > find the > first free index and use that as the number. This reduces burden on users in > the > simple case where a specific number is not required. It may also be slightly > faster > to check that a number exists since xarray lookup should be faster than a > linear > scan of the dyn_ports xarray. > > Reviewed-by: Simon Horman <[email protected]> > Reviewed-by: Wojciech Drewek <[email protected]> > Co-developed-by: Jacob Keller <[email protected]> > Signed-off-by: Jacob Keller <[email protected]> > Signed-off-by: Piotr Raczynski <[email protected]> > Signed-off-by: Michal Swiatkowski <[email protected]> > --- > .../net/ethernet/intel/ice/devlink/devlink.c | 3 + > .../ethernet/intel/ice/devlink/devlink_port.c | 288 ++++++++++++++++++ > .../ethernet/intel/ice/devlink/devlink_port.h | 34 +++ > drivers/net/ethernet/intel/ice/ice.h | 4 + > drivers/net/ethernet/intel/ice/ice_lib.c | 5 +- > drivers/net/ethernet/intel/ice/ice_lib.h | 2 + > drivers/net/ethernet/intel/ice/ice_main.c | 7 + > 7 files changed, 341 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/intel/ice/devlink/devlink.c > b/drivers/net/ethernet/intel/ice/devlink/devlink.c > index f774781ab514..bfb3d5b59a62 100644 > --- a/drivers/net/ethernet/intel/ice/devlink/devlink.c > +++ b/drivers/net/ethernet/intel/ice/devlink/devlink.c > @@ -6,6 +6,7 @@
Tested-by: Rafal Romanowski <[email protected]>
