aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2018-05-23 14:26:20 -0400
committerDavid S. Miller <davem@davemloft.net>2018-05-23 14:26:20 -0400
commit47de868bd62b1c9d6f7cdd50f121cf65ab3a9537 (patch)
treedba3bba3824446b244618897a4f1568eb6b1290c /drivers/net/ethernet/netronome/nfp/nfp_net_common.c
parentMerge branch 'bpfilter' (diff)
parentnfp: assign vNIC id as phys_port_name of vNICs which are not ports (diff)
downloadlinux-dev-47de868bd62b1c9d6f7cdd50f121cf65ab3a9537.tar.xz
linux-dev-47de868bd62b1c9d6f7cdd50f121cf65ab3a9537.zip
Merge branch 'nfp-abm-add-basic-support-for-advanced-buffering-NIC'
Jakub Kicinski says: ==================== nfp: abm: add basic support for advanced buffering NIC This series lays groundwork for advanced buffer management NIC feature. It makes necessary NFP core changes, spawns representors and adds devlink glue. Following series will add the actual buffering configuration (patch series size limit). First three patches add support for configuring NFP buffer pools via a mailbox. The existing devlink APIs are used for the purpose. Third patch allows us to perform small reads from the NFP memory. The rest of the patch set adds eswitch mode change support and makes the driver spawn appropriate representors. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/netronome/nfp/nfp_net_common.c')
-rw-r--r--drivers/net/ethernet/netronome/nfp/nfp_net_common.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
index d9111c077699..eea11e881bf5 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
@@ -3277,6 +3277,24 @@ nfp_net_features_check(struct sk_buff *skb, struct net_device *dev,
return features;
}
+static int
+nfp_net_get_phys_port_name(struct net_device *netdev, char *name, size_t len)
+{
+ struct nfp_net *nn = netdev_priv(netdev);
+ int n;
+
+ if (nn->port)
+ return nfp_port_get_phys_port_name(netdev, name, len);
+
+ if (!nn->dp.is_vf) {
+ n = snprintf(name, len, "%d", nn->id);
+ if (n >= len)
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
/**
* nfp_net_set_vxlan_port() - set vxlan port in SW and reconfigure HW
* @nn: NFP Net device to reconfigure
@@ -3475,7 +3493,7 @@ const struct net_device_ops nfp_net_netdev_ops = {
.ndo_set_mac_address = nfp_net_set_mac_address,
.ndo_set_features = nfp_net_set_features,
.ndo_features_check = nfp_net_features_check,
- .ndo_get_phys_port_name = nfp_port_get_phys_port_name,
+ .ndo_get_phys_port_name = nfp_net_get_phys_port_name,
.ndo_udp_tunnel_add = nfp_net_add_vxlan_port,
.ndo_udp_tunnel_del = nfp_net_del_vxlan_port,
.ndo_bpf = nfp_net_xdp,