aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlx4/mlx4.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx4/mlx4.h')
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/mlx4.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/mlx4.h b/drivers/net/ethernet/mellanox/mlx4/mlx4.h
index 97941269bc14..e7eb86ecc6ea 100644
--- a/drivers/net/ethernet/mellanox/mlx4/mlx4.h
+++ b/drivers/net/ethernet/mellanox/mlx4/mlx4.h
@@ -504,12 +504,27 @@ struct slave_list {
504 struct list_head res_list[MLX4_NUM_OF_RESOURCE_TYPE]; 504 struct list_head res_list[MLX4_NUM_OF_RESOURCE_TYPE];
505}; 505};
506 506
507struct resource_allocator {
508 union {
509 int res_reserved;
510 int res_port_rsvd[MLX4_MAX_PORTS];
511 };
512 union {
513 int res_free;
514 int res_port_free[MLX4_MAX_PORTS];
515 };
516 int *quota;
517 int *allocated;
518 int *guaranteed;
519};
520
507struct mlx4_resource_tracker { 521struct mlx4_resource_tracker {
508 spinlock_t lock; 522 spinlock_t lock;
509 /* tree for each resources */ 523 /* tree for each resources */
510 struct rb_root res_tree[MLX4_NUM_OF_RESOURCE_TYPE]; 524 struct rb_root res_tree[MLX4_NUM_OF_RESOURCE_TYPE];
511 /* num_of_slave's lists, one per slave */ 525 /* num_of_slave's lists, one per slave */
512 struct slave_list *slave_list; 526 struct slave_list *slave_list;
527 struct resource_allocator res_alloc[MLX4_NUM_OF_RESOURCE_TYPE];
513}; 528};
514 529
515#define SLAVE_EVENT_EQ_SIZE 128 530#define SLAVE_EVENT_EQ_SIZE 128
@@ -1253,4 +1268,6 @@ static inline spinlock_t *mlx4_tlock(struct mlx4_dev *dev)
1253 1268
1254void mlx4_vf_immed_vlan_work_handler(struct work_struct *_work); 1269void mlx4_vf_immed_vlan_work_handler(struct work_struct *_work);
1255 1270
1271void mlx4_init_quotas(struct mlx4_dev *dev);
1272
1256#endif /* MLX4_H */ 1273#endif /* MLX4_H */