diff options
author | Yevgeny Petrilin <yevgenyp@mellanox.co.il> | 2011-03-22 18:37:47 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-03-23 15:24:18 -0400 |
commit | 0b7ca5a928e2271bbc225e9e1ac1f22e9fbee54f (patch) | |
tree | 8a24efdb4ceb6f28a8d49e942f80d397c06f4a5f /drivers/net/mlx4/mlx4.h | |
parent | 908222655b38005483d64385e06341a38647fdf1 (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.h | 6 |
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 | ||
285 | struct mlx4_msix_ctl { | ||
286 | u64 pool_bm; | ||
287 | spinlock_t pool_lock; | ||
288 | }; | ||
289 | |||
285 | struct mlx4_priv { | 290 | struct 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 | ||
318 | static inline struct mlx4_priv *mlx4_priv(struct mlx4_dev *dev) | 324 | static inline struct mlx4_priv *mlx4_priv(struct mlx4_dev *dev) |