Use static device numbering instead of dynamic one when creating

mlx4en network interfaces. This prevents infinite unit number growth
typically when the mlx4en driver is used inside virtual machines which
support runtime PCI attach and detach.

MFC after:	3 days
Sponsored by:	Mellanox Technologies
This commit is contained in:
Hans Petter Selasky 2017-06-15 11:56:40 +00:00
parent b7eaed250f
commit d4a7f90c0a

View File

@ -54,7 +54,6 @@
static void mlx4_en_sysctl_stat(struct mlx4_en_priv *priv);
static void mlx4_en_sysctl_conf(struct mlx4_en_priv *priv);
static int mlx4_en_unit;
#ifdef CONFIG_NET_RX_BUSY_POLL
/* must be called with local_bh_disable()d */
@ -2052,7 +2051,8 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port,
return -ENOMEM;
}
dev->if_softc = priv;
if_initname(dev, "mlxen", atomic_fetchadd_int(&mlx4_en_unit, 1));
if_initname(dev, "mlxen", (device_get_unit(
mdev->pdev->dev.bsddev) * MLX4_MAX_PORTS) + port - 1);
dev->if_mtu = ETHERMTU;
dev->if_init = mlx4_en_open;
dev->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;