summaryrefslogtreecommitdiffstats
path: root/include/linux/mlx4
diff options
context:
space:
mode:
authorMajd Dibbiny <majd@mellanox.com>2014-09-30 12:03:48 +0300
committerDavid S. Miller <davem@davemloft.net>2014-09-30 16:27:49 -0400
commite1c00e10e92c04aa637126db2e59b092bd4878f8 (patch)
tree6a66e7de924410c7b7ea0d2d3b36757a78d9bd44 /include/linux/mlx4
parentbbb07af4cdfd0c154db4c636927bd262f71c6401 (diff)
downloadlinux-stable-e1c00e10e92c04aa637126db2e59b092bd4878f8.tar.gz
linux-stable-e1c00e10e92c04aa637126db2e59b092bd4878f8.tar.bz2
linux-stable-e1c00e10e92c04aa637126db2e59b092bd4878f8.zip
net/mlx4_core: New init and exit flow for mlx4_core
In the new flow, we separate the pci initialization and teardown from the initialization and teardown of the other resources. __mlx4_init_one handles the pci resources initialization. It then calls mlx4_load_one to initialize the remainder of the resources. When removing a device, mlx4_remove_one is invoked. However, now mlx4_remove_one calls mlx4_unload_one to free all the resources except the pci resources. When mlx4_unload_one returns, mlx4_remove_one then frees the pci resources. The above separation will allow us to implement 'reset flow' in the future. It will also enable more EQs for VFs and is a pre-step to the modern API to enable/disable SRIOV. Also added nvfs; an integer array of size MLX4_MAX_PORTS + 1; to the mlx4_dev struct. This new field is used to avoid parsing the num_vfs module parameter each time the mlx4_restart_one is called. Signed-off-by: Majd Dibbiny <majd@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/mlx4')
-rw-r--r--include/linux/mlx4/device.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h
index 03b5608a4329..b2f8ab9a57c4 100644
--- a/include/linux/mlx4/device.h
+++ b/include/linux/mlx4/device.h
@@ -707,6 +707,7 @@ struct mlx4_dev {
u64 regid_promisc_array[MLX4_MAX_PORTS + 1];
u64 regid_allmulti_array[MLX4_MAX_PORTS + 1];
struct mlx4_vf_dev *dev_vfs;
+ int nvfs[MLX4_MAX_PORTS + 1];
};
struct mlx4_eqe {