aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/mlx4/mlx4.h
diff options
context:
space:
mode:
authorYevgeny Petrilin <yevgenyp@mellanox.co.il>2011-03-22 18:37:47 -0400
committerDavid S. Miller <davem@davemloft.net>2011-03-23 15:24:18 -0400
commit0b7ca5a928e2271bbc225e9e1ac1f22e9fbee54f (patch)
tree8a24efdb4ceb6f28a8d49e942f80d397c06f4a5f /drivers/net/mlx4/mlx4.h
parent908222655b38005483d64385e06341a38647fdf1 (diff)
mlx4: Changing interrupt scheme
Adding a pool of MSI-X vectors and EQs that can be used explicitly by mlx4_core customers (mlx4_ib, mlx4_en). The consumers will assign their own names to the interrupt vectors. Those vectors are not opened at mlx4 device initialization, opened by demand. Changed the max number of possible EQs according to the new scheme, no longer relies on on number of cores. The new functionality is exposed through mlx4_assign_eq() and mlx4_release_eq(). Customers that do not use the new API will get completion vectors as before. Signed-off-by: Markuze Alex <markuze@mellanox.co.il> Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/mlx4/mlx4.h')
-rw-r--r--drivers/net/mlx4/mlx4.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/mlx4/mlx4.h b/drivers/net/mlx4/mlx4.h
index 0da5bb7285b4..67ee8dacae79 100644
--- a/drivers/net/mlx4/mlx4.h
+++ b/drivers/net/mlx4/mlx4.h
@@ -282,6 +282,11 @@ struct mlx4_sense {
282 struct delayed_work sense_poll; 282 struct delayed_work sense_poll;
283}; 283};
284 284
285struct mlx4_msix_ctl {
286 u64 pool_bm;
287 spinlock_t pool_lock;
288};
289
285struct mlx4_priv { 290struct mlx4_priv {
286 struct mlx4_dev dev; 291 struct mlx4_dev dev;
287 292
@@ -313,6 +318,7 @@ struct mlx4_priv {
313 struct mlx4_port_info port[MLX4_MAX_PORTS + 1]; 318 struct mlx4_port_info port[MLX4_MAX_PORTS + 1];
314 struct mlx4_sense sense; 319 struct mlx4_sense sense;
315 struct mutex port_mutex; 320 struct mutex port_mutex;
321 struct mlx4_msix_ctl msix_ctl;
316}; 322};
317 323
318static inline struct mlx4_priv *mlx4_priv(struct mlx4_dev *dev) 324static inline struct mlx4_priv *mlx4_priv(struct mlx4_dev *dev)