On 6/24/2019 2:52 PM, Jason Gunthorpe wrote:
On Tue, Jun 18, 2019 at 08:15:37PM +0300, Leon Romanovsky wrote:
void __mlx5_ib_remove(struct mlx5_ib_dev *dev,
diff --git a/drivers/infiniband/hw/mlx5/mlx5_ib.h b/drivers/infiniband/hw/mlx5/mlx5_ib.h
index 9cf23ae6324e..556af34b788b 100644
+++ b/drivers/infiniband/hw/mlx5/mlx5_ib.h
@@ -944,6 +944,13 @@ struct mlx5_ib_pf_eq {
mempool_t *pool;
};
+struct mlx5_devx_event_table {
+ struct mlx5_nb devx_nb;
+ /* serialize updating the event_xa */
+ struct mutex event_xa_lock;
+ struct xarray event_xa;
+};
+
struct mlx5_ib_dev {
struct ib_device ib_dev;
struct mlx5_core_dev *mdev;
@@ -994,6 +1001,7 @@ struct mlx5_ib_dev {
struct mlx5_srq_table srq_table;
struct mlx5_async_ctx async_ctx;
int free_port;
+ struct mlx5_devx_event_table devx_event_table;
I really question if adding all these structs really does anything for
readability..
I would prefer this option to add only one structure (i.e.
mlx5_devx_event_table) on ib_dev, it will hold internally the other
related stuff.