summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2017-06-18 11:48:40 +0000
committerhselasky <hselasky@FreeBSD.org>2017-06-18 11:48:40 +0000
commit70c2560233fb44c48f9b75dbf481f8cd147286e6 (patch)
treeeb6d5248d43fcc9f6ef0b23046c7a42b7f208b18
parent9c0e0f4f06cb3bacce42b66f8a8c1c6b362ab9c7 (diff)
downloadFreeBSD-src-70c2560233fb44c48f9b75dbf481f8cd147286e6.zip
FreeBSD-src-70c2560233fb44c48f9b75dbf481f8cd147286e6.tar.gz
MFC r319972:
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. Sponsored by: Mellanox Technologies
-rw-r--r--sys/ofed/drivers/net/mlx4/en_netdev.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/ofed/drivers/net/mlx4/en_netdev.c b/sys/ofed/drivers/net/mlx4/en_netdev.c
index 606d2b1..4054230 100644
--- a/sys/ofed/drivers/net/mlx4/en_netdev.c
+++ b/sys/ofed/drivers/net/mlx4/en_netdev.c
@@ -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 */
@@ -2053,7 +2052,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;
OpenPOWER on IntegriCloud