From: Bert Kenward Date: Tue, 10 Jan 2017 16:23:56 +0000 (+0000) Subject: sfc: implement ndo_get_phys_port_name X-Git-Tag: v4.11-rc1~124^2~455^2~1 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=ac019f08953278a280cb30849c3ebab9a7df31de;p=karo-tx-linux.git sfc: implement ndo_get_phys_port_name Output is of the form p. Note that the port numbers don't necessarily map one-to-one to physical cages, partly because of 4x10G port modes on QSFP+ and partly because of hw/fw implementation details. Signed-off-by: Edward Cree Signed-off-by: David S. Miller --- diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c index eaae42fa109c..543fa488d049 100644 --- a/drivers/net/ethernet/sfc/efx.c +++ b/drivers/net/ethernet/sfc/efx.c @@ -2345,6 +2345,16 @@ int efx_get_phys_port_id(struct net_device *net_dev, return -EOPNOTSUPP; } +static int efx_get_phys_port_name(struct net_device *net_dev, + char *name, size_t len) +{ + struct efx_nic *efx = netdev_priv(net_dev); + + if (snprintf(name, len, "p%u", efx->port_num) >= len) + return -EINVAL; + return 0; +} + static int efx_vlan_rx_add_vid(struct net_device *net_dev, __be16 proto, u16 vid) { struct efx_nic *efx = netdev_priv(net_dev); @@ -2387,6 +2397,7 @@ static const struct net_device_ops efx_netdev_ops = { .ndo_set_vf_link_state = efx_sriov_set_vf_link_state, #endif .ndo_get_phys_port_id = efx_get_phys_port_id, + .ndo_get_phys_port_name = efx_get_phys_port_name, #ifdef CONFIG_NET_POLL_CONTROLLER .ndo_poll_controller = efx_netpoll, #endif