Message ID | 20240118205040.346632-1-mschmidt@redhat.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 359724fa3ab79fbe9f42c6263cddc2afae32eef3 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] idpf: distinguish vports by the dev_port attribute | expand |
On 1/18/2024 12:50 PM, Michal Schmidt wrote: > idpf registers multiple netdevs (virtual ports) for one PCI function, > but it does not provide a way for userspace to distinguish them with > sysfs attributes. Per Documentation/ABI/testing/sysfs-class-net, it is > a bug not to set dev_port for independent ports on the same PCI bus, > device and function. > > Without dev_port set, systemd-udevd's default naming policy attempts > to assign the same name ("ens2f0") to all four idpf netdevs on my test > system and obviously fails, leaving three of them with the initial > eth<N> name. > > With this patch, systemd-udevd is able to assign unique names to the > netdevs (e.g. "ens2f0", "ens2f0d1", "ens2f0d2", "ens2f0d3"). > > The Intel-provided out-of-tree idpf driver already sets dev_port. In > this patch I chose to do it in the same place in the idpf_cfg_netdev > function. > > Fixes: 0fe45467a104 ("idpf: add create vport and netdev configuration") > Signed-off-by: Michal Schmidt <mschmidt@redhat.com> LGTM! Thanks Michal! I checked our latest internal development branch and it matches what you've added here. Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Hello: This patch was applied to netdev/net.git (main) by David S. Miller <davem@davemloft.net>: On Thu, 18 Jan 2024 21:50:40 +0100 you wrote: > idpf registers multiple netdevs (virtual ports) for one PCI function, > but it does not provide a way for userspace to distinguish them with > sysfs attributes. Per Documentation/ABI/testing/sysfs-class-net, it is > a bug not to set dev_port for independent ports on the same PCI bus, > device and function. > > Without dev_port set, systemd-udevd's default naming policy attempts > to assign the same name ("ens2f0") to all four idpf netdevs on my test > system and obviously fails, leaving three of them with the initial > eth<N> name. > > [...] Here is the summary with links: - [net] idpf: distinguish vports by the dev_port attribute https://git.kernel.org/netdev/net/c/359724fa3ab7 You are awesome, thank you!
diff --git a/drivers/net/ethernet/intel/idpf/idpf_lib.c b/drivers/net/ethernet/intel/idpf/idpf_lib.c index 5fea2fd957eb..58179bd733ff 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_lib.c +++ b/drivers/net/ethernet/intel/idpf/idpf_lib.c @@ -783,6 +783,8 @@ static int idpf_cfg_netdev(struct idpf_vport *vport) /* setup watchdog timeout value to be 5 second */ netdev->watchdog_timeo = 5 * HZ; + netdev->dev_port = idx; + /* configure default MTU size */ netdev->min_mtu = ETH_MIN_MTU; netdev->max_mtu = vport->max_mtu;
idpf registers multiple netdevs (virtual ports) for one PCI function, but it does not provide a way for userspace to distinguish them with sysfs attributes. Per Documentation/ABI/testing/sysfs-class-net, it is a bug not to set dev_port for independent ports on the same PCI bus, device and function. Without dev_port set, systemd-udevd's default naming policy attempts to assign the same name ("ens2f0") to all four idpf netdevs on my test system and obviously fails, leaving three of them with the initial eth<N> name. With this patch, systemd-udevd is able to assign unique names to the netdevs (e.g. "ens2f0", "ens2f0d1", "ens2f0d2", "ens2f0d3"). The Intel-provided out-of-tree idpf driver already sets dev_port. In this patch I chose to do it in the same place in the idpf_cfg_netdev function. Fixes: 0fe45467a104 ("idpf: add create vport and netdev configuration") Signed-off-by: Michal Schmidt <mschmidt@redhat.com> --- drivers/net/ethernet/intel/idpf/idpf_lib.c | 2 ++ 1 file changed, 2 insertions(+)