diff options
author | Alejandro Lucero <alejandro.lucero-palau@amd.com> | 2023-02-15 12:08:25 +0300 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2023-02-16 14:03:12 +0300 |
commit | 25414b2a64ae7ea8742933bd7b1d056e069b15a7 (patch) | |
tree | 99f1d9537482c12d95655a8d2cd655da2b72e4e3 /drivers/net/ethernet/sfc/ef100_netdev.c | |
parent | 5227adff37af35fdc3c6f029737708c2d0921618 (diff) | |
download | linux-25414b2a64ae7ea8742933bd7b1d056e069b15a7.tar.xz |
sfc: add devlink port support for ef100
Using the data when enumerating mports, create devlink ports just before
netdevs are registered and remove those devlink ports after netdev has
been unregistered.
Signed-off-by: Alejandro Lucero <alejandro.lucero-palau@amd.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Acked-by: Martin Habets <habetsm.xilinx@gmail.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'drivers/net/ethernet/sfc/ef100_netdev.c')
-rw-r--r-- | drivers/net/ethernet/sfc/ef100_netdev.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/ethernet/sfc/ef100_netdev.c b/drivers/net/ethernet/sfc/ef100_netdev.c index 6cf74788b27a..368147359299 100644 --- a/drivers/net/ethernet/sfc/ef100_netdev.c +++ b/drivers/net/ethernet/sfc/ef100_netdev.c @@ -337,6 +337,7 @@ void ef100_remove_netdev(struct efx_probe_data *probe_data) ef100_unregister_netdev(efx); #ifdef CONFIG_SFC_SRIOV + ef100_pf_unset_devlink_port(efx); efx_fini_tc(efx); #endif @@ -422,6 +423,9 @@ int ef100_probe_netdev(struct efx_probe_data *probe_data) rc = ef100_probe_netdev_pf(efx); if (rc) goto fail; +#ifdef CONFIG_SFC_SRIOV + ef100_pf_set_devlink_port(efx); +#endif } efx->netdev_notifier.notifier_call = ef100_netdev_event; @@ -432,7 +436,13 @@ int ef100_probe_netdev(struct efx_probe_data *probe_data) goto fail; } + efx_probe_devlink_unlock(efx); + return rc; fail: +#ifdef CONFIG_SFC_SRIOV + /* remove devlink port if does exist */ + ef100_pf_unset_devlink_port(efx); +#endif efx_probe_devlink_unlock(efx); return rc; } |